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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

排序算法 之 歸并排序

2019-11-10 21:36:19
字體:
供稿:網(wǎng)友

原文地址http://www.cnblogs.com/liukemng/p/3721125.html

歸并排序也是基于分治思想的一種排序算法,是通過對(duì)兩個(gè)或兩個(gè)以上的有序序列合并來實(shí)現(xiàn)的,對(duì)兩個(gè)序列合并的叫兩路歸并,對(duì)兩個(gè)以上序列合并的叫多路歸并。歸并排序的時(shí)間復(fù)雜度也為O(N*logN)。下面來看一下兩路歸并的實(shí)現(xiàn):

基本思想:歸并排序時(shí)先找出序列的中間元素把序列分解為兩個(gè)子序列,對(duì)子序列重復(fù)這個(gè)過程直至把序列分解成為只包含單個(gè)元素的序列,然后把相鄰的序列兩兩合并使之有序,重復(fù)兩兩合并直至合并成為一個(gè)序列歸并結(jié)束序列有序。

代碼實(shí)現(xiàn):

復(fù)制代碼
/// <summary>/// 歸并排序/// </summary>/// <param name="intArray"></param>/// <param name="left"></param>/// <param name="right"></param>public static void MergeSort(int[] intArray, int left, int right){    if (left < right)    {        int mid = (left + right) / 2;        MergeSort(intArray, left, mid);        MergeSort(intArray, mid + 1, right);        int[] temp = new int[right - left + 1];        int i = left, j = mid + 1, k = right, index = 0;        //同時(shí)循環(huán)數(shù)組的前半部分和后半部分并比較        while (i <= mid && j <= k)        {            if (intArray[i] <= intArray[j])                temp[index++] = intArray[i++];            else                temp[index++] = intArray[j++];        }        //如果前半部分沒有循環(huán)完        while (i <= mid)        {            temp[index++] = intArray[i++];        }        //如果后半部分沒有循環(huán)完        while (j <= k)        {            temp[index++] = intArray[j++];        }        //把臨時(shí)數(shù)組中的元素按順序拷貝回原數(shù)組        for (int copyIndex = 0; copyIndex < index; copyIndex++)        {            intArray[left + copyIndex] = temp[copyIndex];        }    }}復(fù)制代碼

當(dāng)調(diào)用時(shí)left傳入序列開始的下標(biāo)即0,right傳入序列結(jié)束的下標(biāo)即(長度-1);

以上就是歸并排序的實(shí)現(xiàn)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湟中县| 河东区| 盈江县| 泽普县| 离岛区| 安化县| 翁牛特旗| 花莲市| 乐山市| 磐石市| 得荣县| 阿拉尔市| 福州市| 武陟县| 镇江市| 滦平县| 望城县| 和林格尔县| 界首市| 略阳县| 黑水县| 江达县| 东山县| 荔波县| 洛阳市| 山阳县| 孟连| 西宁市| 瓮安县| 南投市| 托克逊县| 湘西| 台江县| 腾冲县| 临海市| 红河县| 理塘县| 云龙县| 梁平县| 岳池县| 漳浦县|