91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java排序算法之歸并排序簡單實現

發布時間:2020-09-08 14:46:38 來源:腳本之家 閱讀:150 作者:zengzhihua 欄目:編程語言

算法描述:對于給定的一組記錄,首先將每兩個相鄰的長度為1的子序列進行歸并,得到 n/2(向上取整)個長度為2或1的有序子序列,再將其兩兩歸并,反復執行此過程,直到得到一個有序序列。

package sorting;
/**
 * 歸并排序
 * 平均O(nlogn),最好O(nlogn),最壞O(nlogn);空間復雜度O(n);穩定;較復雜
 * @author zeng
 *
 */
public class MergeSort {
	public static void merge(int[] a, int start, int mid,
	      int end) {
		int[] tmp = new int[a.length];
		System.out.println("merge " + start + "~" + end);
		int i = start, j = mid + 1, k = start;
		while (i != mid + 1 && j != end + 1) {
			if (a[i] < a[j])
			        tmp[k++] = a[i++]; else
			        tmp[k++] = a[j++];
		}
		while (i != mid + 1)
		      tmp[k++] = a[i++];
		while (j != end + 1)
		      tmp[k++] = a[j++];
		for (i = start; i <= end; i++)
		      a[i] = tmp[i];
		for (int p : a)
		      System.out.print(p + " ");
		System.out.println();
	}
	static void mergeSort(int[] a, int start, int end) {
		if (start < end) {
			int mid = (start + end) / 2;
			mergeSort(a, start, mid);
			// 左邊有序
			mergeSort(a, mid + 1, end);
			// 右邊有序
			merge(a, start, mid, end);
		}
	}
	public static void main(String[] args) {
		int[] b = { 49, 38, 65, 97, 76, 13, 27, 50 };
		mergeSort(b, 0, b.length - 1);
	}
}

運行結果看一下:

Java排序算法之歸并排序簡單實現

總結

以上就是本文關于Java排序算法之歸并排序簡單實現的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西安市| 宜昌市| 万州区| 多伦县| 勃利县| 河东区| 云南省| 鹤山市| 松潘县| 连云港市| 大庆市| 大化| 鹤壁市| 定兴县| 花垣县| 长治市| 荆门市| 潼关县| 慈溪市| 潜江市| 六枝特区| 长春市| 巴南区| 富宁县| 体育| 乌兰察布市| 普陀区| 海安县| 吉安县| 焦作市| 海南省| 襄樊市| 方山县| 正宁县| 高唐县| 武清区| 阳朔县| 梨树县| 简阳市| 清徐县| 靖宇县|