目錄
歸并排序——有遞歸的:
基本思想:
思路分析:?
代碼分析:??
劃分區間思路:
代碼思路分析:?
歸并排序——有遞歸的:
基本思想:
歸并排序(MERGE-SORT)是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。
將已有序的子序列合并,得到完全有序的序列;即先使 每個子序列內部 有序,再使每個子序列段 間 有序。若將兩個有序表合并成一個有序表,稱為二路歸并。 ?
思路分析:?
而放到排序中,我們歸并的前提是要左右區間有序,而對于一個無序的數組而言左右區間并不是有序的,而要將他變得有序,則可以采取遞歸的方法。
- 那么,做法便成為了使用遞歸的方法,將序列區間連續的對半劃分,直到不能劃分位置,隨后這些被劃分的區間再進行排序組成一個有序的序列區間,隨后再歸并回去。
- 而再這些被劃分區間組成一個有序的序列區間其實也會用到歸并的思想
- 所以本質上就是大區間變成了小區間,數個小區間排列層有序的區間后和另一個相同等級的序列區間再度進行排序,直到變成有序的數組為止。?
代碼分析:??
代碼就是將大區間變小區間,然后小區間的元素進行尾插到新數組內排序,而后新數組的元素拷貝到原來的小區間內
然后小區間在和它同級的小區間進行相同的操作變成一個更大的有序的區間,然后再和其他更大的區間進行相同的操作,最后的最后變成一個有序的數組并拷貝回原來的數組空間?
劃分區間思路:
代碼思路分析:?
?