轉載來自於:九大排序算法再總結
轉載來自於:排序算法總結
排序的定義:
輸入:n個數:a1,a2,a3,...,an
輸出:n個數的排列:a1',a2',a3',...,an',使得a1'<=a2'<=a3'<=...<=an'。
In-place sort(不佔用額外內存或佔用常數的內存):插入排序、選擇排序、冒泡排序、堆排序、快速排序。
Out-place sort:歸併排序、計數排序、基數排序、桶排序。
當需要對大量數據進行排序時,In-place sort就顯示出優點,因爲只需要佔用常數的內存。
設想一下,如果要對10000個數據排序,如果使用了Out-place sort,則假設需要用200G的額外空間,則一臺老式電腦會吃不消,但是如果使用In-place sort,則不需要花費額外內存。
stable sort:插入排序、冒泡排序、歸併排序、計數排序、基數排序、桶排序。
unstable sort:選擇排序(5 8 5 2 9)、快速排序、堆排序。