日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法】归并排序

發布時間:2025/6/17 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法】归并排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法 系列博客

【算法】刷題范圍建議 和 代碼規范
【算法】復雜度理論 ( 時間復雜度 )

【字符串】最長回文子串 ( 蠻力算法 )
【字符串】最長回文子串 ( 中心線枚舉算法 )
【字符串】最長回文子串 ( 動態規劃算法 ) ★
【字符串】字符串查找 ( 蠻力算法 )
【字符串】字符串查找 ( Rabin-Karp 算法 )

【算法】雙指針算法 ( 雙指針算法分類 | 相向雙指針 | 有效回文串 )
【算法】雙指針算法 ( 有效回文串 II )
【算法】哈希表 ( 兩數之和 )

【算法】快速排序
【算法】歸并排序


文章目錄

  • 算法 系列博客
  • 一、歸并排序





一、歸并排序



歸并排序 : https://www.lintcode.com/problem/463



歸并排序原理 :

歸并排序 先分割為兩部分 , 然后兩邊分別排序 , 再進行合并 ;
先局部有序 , 后整體有序 ;

歸并排序 與 快速排序 比較 , 其比 快排 多花費 O(n)O(n)O(n) 的空間 , 其合并兩個數組時 , 不能在原數組中進行 ;
快速排序 , 始終都在原數組中進行 , 只涉及到交換數組中的元素 ;

正式由于該額外數組的存在 , 因此歸并排序 , 并不是排序的最優算法 ;


算法要點 :

合并數組中 , 創建數組的時機 , 不要放在遞歸中 , 遞歸要調用很多次 , 頻繁創建銷毀數組 , 很耗費時間和空間 ;


代碼示例 :

class Solution {/*** 歸并排序* @param A*/public void sortIntegers(int[] A) {if (A == null || A.length == 0) {return;}// 用于合并數組的額外空間int mergeArray[] = new int[A.length];// 遞歸調用排序算法mergeSort(A, 0, A.length - 1, mergeArray);}// 將 array 數組中 start 到 end 之間的元素進行排序private void mergeSort(int[] array, int start, int end, int[] mergeArray) {if (start >= end) {// start 如果等于 end, 說明就一個元素, 不用排序// start 正常情況下不會大于 endreturn;}// 先在中間切一刀, 左側右側進行分別排序// 左側排序mergeSort(array, start, (start + end) / 2, mergeArray);// 右側排序mergeSort(array, (start + end) / 2 + 1, end, mergeArray);// 進行歸并操作, 將已經排好序的兩側的數組進行合并merge(array, start, end, mergeArray);}// 合并兩個已經排好序的數組private void merge(int[] array, int start, int end, int[] mergeArray) {// 左右兩個數組的遍歷索引, 初值值為左右兩側的開始索引int leftIndex = start;int rightIndex = (start + end) / 2 + 1;// 記錄 mergeArray 的賦值索引int mergeIndex = leftIndex;while (leftIndex <= (start + end) / 2 && rightIndex <= end) {if (array[leftIndex] < array[rightIndex]){// 先賦值, 然后索引自增mergeArray[mergeIndex++] = array[leftIndex++];} else {mergeArray[mergeIndex++] = array[rightIndex++];}}// 上述賦值完畢后, 可能有一側還有若干元素沒有賦值完畢// 檢查左側是否賦值完畢, 如果沒有賦值完畢, 則繼續遍歷, 如果賦值完畢, 則不會進入循環while (leftIndex <= (start + end) / 2) {mergeArray[mergeIndex++] = array[leftIndex++];}// 檢查右側是否賦值完畢, 如果沒有賦值完畢, 則繼續遍歷, 如果賦值完畢, 則不會進入循環while (rightIndex <= end) {mergeArray[mergeIndex++] = array[rightIndex++];}// 上述操作將排序號的元素都放在 mergeArray 數組中, 在將其設置到 array 數組中for (int i = start; i <= end; i++) {array[i] = mergeArray[i];}} }

總結

以上是生活随笔為你收集整理的【算法】归并排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚州国产 | 日韩中文一区 | 国产一级二级三级在线 | 波多野结衣电车 | 精品久久久久国产 | 亚洲 欧美 中文字幕 | 国产精品久久久久久精 | 精品一区二区三区欧美 | 亚洲成人天堂 | 久热色| 亚洲情侣av | 久久视频在线观看免费 | 91操碰| 伊人影院在线观看视频 | 午夜电影福利网 | 黄色片小视频 | 亚洲AV无码一区二区三区少妇 | 国产成人午夜 | 午夜桃色 | 男人晚上看的视频 | 玖玖色资源| 熟睡侵犯の奶水授乳在线 | 影音先锋中文字幕在线视频 | 无码人妻aⅴ一区二区三区69岛 | 久久天堂网 | 日韩国产专区 | 国产69页| 超碰c| 黑人操中国女人视频 | www.蜜桃av.com| 成人免费自拍视频 | 国产又粗又大又爽 | 日本一区二区在线 | 99嫩草| 日本电车痴汉 | 久久久123| a v视频在线观看 | 久久久av免费| 精品久久精品 | 午夜精品视频一区二区三区在线看 | 日韩在线视频观看免费 | 青青草小视频 | 午夜三级视频 | 亚洲 欧美 综合 | 少妇高潮21p| 国精品人妻无码一区二区三区喝尿 | 亚洲视频精品在线观看 | 特黄三级又爽又粗又大 | 婚后打屁股高h1v1调教 | 日韩精品第一页 | 欧洲女女同videos | 99热免费在线观看 | 国产曰肥老太婆无遮挡 | 国产乱论 | 国产在线免费观看 | 欧美大片黄色 | 国产精品久久久久久久免费看 | 一级小毛片 | 一本—道久久a久久精品蜜桃 | 波多野结衣潜藏淫欲 | 福利所第一导航 | 在线观看免费黄视频 | 亚洲精品在线免费看 | 免费一级做a爰片久久毛片潮 | 国产av成人一区二区三区高清 | 日本少妇一级片 | 蜜桃av在线免费观看 | 丁香五香天堂网 | 久久99精品久久久久久噜噜 | 日韩一区二区不卡视频 | 制服.丝袜.亚洲.中文.综合 | 好色成人网| xx在线视频 | 深夜激情网站 | 久久精品中文闷骚内射 | 亚洲欧洲视频 | 色姑娘综合网 | 黄色资源在线观看 | 激情插插 | 国产一级片免费视频 | 国产精品后入内射日本在线观看 | a级黄色影院| 一级特黄aa大片欧美 | 中文在线资源天堂 | 欧美日韩在线中文字幕 | 亚洲怡红院av | 日韩精品一区二区三区在线播放 | 国产一区二区三区四区在线观看 | 亚洲人无码成www久久 | 亚洲欧美一区二区激情 | 欧美性大战久久久久久久 | 色婷婷av一区二区三 | 日韩欧美手机在线 | 免费av观看网站 | 精品国产二区三区 | 少妇无码一区二区三区免费 | 日韩av片在线看 | 尤物最新网址 | 亚瑟av |