1.冒泡排序算法
1.比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2.對每一對相鄰的元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該是最大的數。
3.針對所有的元素重復以上的步驟,除了最后一個。
4.持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
冒泡排序
2.快速排序(分治法)
選擇數組中的一個數作為基準元素(pivot),將大于基準數的放大左側,小于基準數的放到基準數的右邊。
快排的核心是找出一個基準元素,把數組中比該元素小的放到左邊數組,比該元素大的放到右邊數組,如果左邊數組和右邊數組分別有序,那么leftArray+midItem+rightArray就是我們要的排序結果了。要使得左右數組有序,只需要對它們分別調用快排函數就可以了。遞歸調用需要一個出口,當數組長度<=1的時候,就是遞歸出口。
快速排序
一次排序下來以后,基準數左面的元素都小于該基準數,右面的數都大于該基準數。
然后再對左右兩側遞歸調用算法。
3.二路歸并
1.將一個數組一分為二,
2.接著將分成的數組繼續一分為二,知道長度為1,
3.當遞歸到了盡頭,向上回溯,對于兩個有序的數組,將它們合并成一個有序數組,從而完成整個歸并排序。
二路歸并