国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

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

2024-07-13 10:14:53
字體:
來源:轉載
供稿:網友

算法描述:對于給定的一組記錄,首先將每兩個相鄰的長度為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排序算法之歸并排序簡單實現的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜黄县| 昌黎县| 临颍县| 托里县| 宁武县| 霞浦县| 积石山| 阳江市| 隆德县| 河间市| 读书| 六安市| 凤冈县| 贵定县| 武功县| 西畴县| 新乡县| 双桥区| 卢湾区| 德钦县| 酉阳| 嘉兴市| 陇南市| 绍兴县| 德安县| 石渠县| 女性| 陵川县| 呼玛县| 莫力| 海淀区| 博乐市| 湘乡市| 乐陵市| 阿坝县| 铁岭市| 昭平县| 高阳县| 当涂县| 闽清县| 达尔|