1、插入排序演算法
/** ****** insertion sort.
* @param a an array of comparable items.
*/public static void insertionsort(comparable a)
}
時間複雜度是:o(n*n),如果輸入被預先排序,執行時間將是o(n)。
演算法思路:首先將需要插入排序的元素放入臨時變數,然後將所有比它大的元素都向右移動乙個位置,最後將臨時變數複製進騰出的位置上。
2、快速排序
/** quicksort algorithm(driver).
*/public static void quicksort( comparable a )
/** internal quicksort method that makes recursive calls.
* uses median-of-three partitioning and a cutoff.
* 使用三者取中拆分和小陣列截斷點的快速排序
*/private static void quicksort(comparable a , int low, int high)
swap(a, i ,high-1);//確定支點的位置
quicksort(a, low, i-1);
quicksort(a, i+1, high);}}
平均時間複雜度為o(n logn)
Java 常用演算法(冒泡 選擇 插入 快排)
氣泡排序是所有排序演算法中最基本 最簡單的一種。思想就是交換排序,通過比較和交換相鄰的資料來達到排序的目的。設陣列的長度為n 1 比較前後相鄰的二個資料,如果前面資料大於後面的資料,就將這二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置...
排序演算法 插入排序(Java實現)
直接插入排序是指從第二個數字開始從後往前插入,將當前數字依次與前面的數字進行比較,到最後乙個數字完成了依次比較整個排序也就完成了。這個過程可以理解為在玩打牌遊戲的時候,插牌的過程。我們知道這個排序需要兩個迴圈,外層迴圈就是從第二個數字開始向後遍歷,而內層迴圈就是把外層迴圈的當前數字與前面的數字依次比...
Java實現插入排序演算法
插入排序適用於有初步排序的序列。對於乙個n元素的序列而言,最好的情況是序列已經是公升序排列的了,只需要比較n 1次 最壞的情況是初始序列逆序,那麼將進行n n 1 2次比較,即插入排序演算法複雜度最好為 o n 最差跟平均為 o n 2 以字串的形式讀入乙個整數序列,轉換後以插入排序實現公升序排列 ...