程式設計師必須掌握的六種基本排序演算法

2021-06-19 03:07:58 字數 1368 閱讀 2859

說起排序,可能很多程式設計師多會想起冒泡和選擇,這兩種是最基本的排序,也最容易實現,但是當我們需要對海量資料進行排序時,這幾種演算法是否依然適合呢?沒錯,他們的時間複雜度是最不起眼的,那麼我們應該如何來提高效率呢?這裡整理了六種排序演算法,時間的優越性能由低到高!

1.氣泡排序

/**

* 氣泡排序

* 演算法:每一趟從0到j 相鄰的數進行比較

* @param array要排序的陣列

*/public static void bubblesort(int array,int length)

}} }

2.選擇排序

/**

* 選擇排序

* 演算法:每一趟從i開始,找出最小的數放在i

* @param array 要排序的陣列

* @param length 從0到length要排序的長度

*/public static void selectsort(int array,int length)

}

3.插入排序

/**

* 插入排序

* 演算法:從小標為1的數開始,假設前面的數已經排好序,將要排序的數插入其中

* @param array 要排序的陣列

* @param length 從0到length要排序的長度

*/public static void insertsort(int array,int length)

while(leftp

5.希爾排序

/*** 希爾排序

* 演算法:設定增量h,將間隔為h的元素排好序,直到將間隔為1的元素排好序為止

* @param array 要排序的陣列

* @param length 從0到length要排序的長度

*/public static void shellsort(int array,int length)

while(h>0)

array[j]=temp;

}h=(h+1)/3;

} }

6.快速排序

/*** 快速排序

* 演算法:

* @param array 要排序的陣列

* @param length 從0到length要排序的長度

* @param left 陣列初始端

* @param right 陣列末端

*/public static void quicksort(int array,int left,int right)

if(leftp

程式設計師必須掌握的六種基本排序演算法

說起排序,可能很多程式設計師多會想起冒泡和選擇,這兩種是最基本的排序,也最容易實現,但是當我們需要對海量資料進行排序時,這幾種演算法是否依然適合呢?沒錯,他們的時間複雜度是最不起眼的,那麼我們應該如何來提高效率呢?這裡整理了六種排序演算法,時間的優越性能由低到高!1.氣泡排序 氣泡排序 演算法 每一...

程式設計師必須掌握的排序演算法

氣泡排序 bubble sort 是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越大的元素會...

程式設計師的六種境界 摘抄

五流程式設計師比技術和工具 五流程式設計師關心的是用什麼工具可以產生什麼結果,追逐他聽過最新 最好 最時髦的技術,沉浸於一些小的練習,卻很少走出象牙塔和客戶或市場進行真正的溝通,甚至完成大型的真實案例。四流程式設計師比整合和管理 四流程式設計師比前者更關心在什麼地方使用什麼,他的心裡放著整合各種技術...