說起排序,可能很多程式設計師多會想起冒泡和選擇,這兩種是最基本的排序,也最容易實現,但是當我們需要對海量資料進行排序時,這幾種演算法是否依然適合呢?沒錯,他們的時間複雜度是最不起眼的,那麼我們應該如何來提高效率呢?這裡整理了六種排序演算法,時間的優越性能由低到高!
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(leftpelse break;
}quicksort(array,left,leftp-1);
quicksort(array,leftp,right);
}
程式設計師必須掌握的六種基本排序演算法
說起排序,可能很多程式設計師多會想起冒泡和選擇,這兩種是最基本的排序,也最容易實現,但是當我們需要對海量資料進行排序時,這幾種演算法是否依然適合呢?沒錯,他們的時間複雜度是最不起眼的,那麼我們應該如何來提高效率呢?這裡整理了六種排序演算法,時間的優越性能由低到高!1.氣泡排序 氣泡排序 演算法 每一...
程式設計師必須掌握的排序演算法
氣泡排序 bubble sort 是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越大的元素會...
程式設計師的六種境界 摘抄
五流程式設計師比技術和工具 五流程式設計師關心的是用什麼工具可以產生什麼結果,追逐他聽過最新 最好 最時髦的技術,沉浸於一些小的練習,卻很少走出象牙塔和客戶或市場進行真正的溝通,甚至完成大型的真實案例。四流程式設計師比整合和管理 四流程式設計師比前者更關心在什麼地方使用什麼,他的心裡放著整合各種技術...