幾種簡單的排序演算法

2022-07-26 17:39:10 字數 2120 閱讀 7032

1)插入排序(直接插入排序、希爾排序) 

2)交換排序(氣泡排序、快速排序) 

3)選擇排序(直接選擇排序、堆排序) 

4)歸併排序 

5)分配排序(基數排序)

所需輔助空間最多:歸併排序 

所需輔助空間最少:堆排序 

平均速度最快:快速排序 

不穩定:快速排序,希爾排序,堆排序。 

1.直接插入排序 

(1)基本思想:在要排序的一組數中,假設前面(n-1)[n>=2] 個數已經是排 

好順序的,現在要把第n 個數插到前面的有序數中,使得這 n個數 

也是排好順序的。如此反覆迴圈,直到全部排好順序。 

/** 

* 插入排序法

* * @param datas

*/

public static int sortinsert(int datas)

datas[j + 1] = algorithmutil.temp;

} return datas;

}

2.簡單選擇排序 

(1)基本思想:在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換; 

然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後一

個數比較為止。 

/** 

* 選擇排序

* * @return

*/

public static int sortselect(int datas)

if (i != index)

algorithmutil.swap(datas, i, index);

} return datas;

}

3.氣泡排序

(1)基本思想:在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對

相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的

數比較後發現它們的排序與排序要求相反時,就將它們互換。

/** 

* 氣泡排序

* * @return

*/

public static int sortbubble(int datas)

} return datas;

}

4.快速排序

(1)基本思想:選擇乙個基準元素,通常選擇第乙個元素或者最後乙個元素,通過一趟掃瞄,

將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其

排好序後的正確位置,然後再用同樣的方法遞迴地排序劃分的兩部分。

/** 

* 快速排序;分割陣列

* * @param datas

*/

public static int quickpartition(int datas, int left, int right)

datas[left] = pivot; // 當left == right,完成一趟快速排序,此時left位相當於空,等待pivotkey補上

return left;

} /**

* 快速排序;遞迴返回陣列

* * @param datas

*/

public static int sortquick(int datas, int left, int right)

return datas;

}

1.冒泡演算法,2.選擇演算法,3.快速演算法。4.插入演算法,5.希爾演算法,6.堆演算法

public class algorithmutil   

/**

* 擴充陣列長度

* * @param datas

* @param value

* @return

*/

public static int expandarray(int datas, int value)

datas[index] = value;

index++;

return datas;

} }

幾種簡單的排序演算法

整理了一下幾種簡單的排序演算法,暫時先貼上演算法,以後有時間在乙個乙個注釋 參考 下面是 部分 include 演算法1 氣泡排序,時間複雜度o n 2 基本思想 從最後乙個數開始,每次相鄰兩個數字比較,較小數往上浮動 void bubblesort int a,int c 演算法2 選擇排序,時間...

回顧幾種簡單的排序演算法

第一次寫部落格希望能寫的好一點把 回顧了一下幾種經典的排序演算法 氣泡排序 選擇排序 快速排序 插入排序。氣泡排序是一種簡單的排序演算法,它通過從前往後比較相鄰元素,使得較大的數向後 冒 每一趟可以確定乙個最大的數。相當於在末尾不斷排乙個反向的降序序列。從前往後比較相鄰的元素,如果前乙個元素比後乙個...

幾種簡單的排序演算法總結

注 1 以下所有排序演算法均按照從小到大的順序排列 2 以下演算法中用到的交換函式都一樣,如下 void swap int a,int i,int j 因此不在每個排序演算法中進行詳解 1.氣泡排序 1.最簡單的氣泡排序 思想 該排序演算法在排序的過程中總共進行n 1趟排序,每一趟排序都將當前的關鍵...