3種基本排序演算法

2021-06-22 11:49:21 字數 784 閱讀 1041

1:氣泡排序:

演算法思想:相鄰比較,把大的往後移。如果相鄰的相等,不用交換。如果相等的不相鄰,因為是相鄰的進行比較和交換,所以相等的元素相對前後位置不變。所以穩定。

時間複雜度為o(n2),空間複雜度為o(1),是穩定的排序演算法。

2:選擇排序:

演算法思想:從n-i個元素中選取最小的與i交換。 舉例:4 2 4 1 5,第一次4和1交換,兩個4的相對位置發生了變化,所以不穩定。

時間複雜度為o(n2),空間複雜度為o(1),是不穩定的排序演算法。

3:插入排序:

演算法思想:從未排序的n-i個元素中取第乙個元素插入到已經拍好序的i個元素中。是穩定的。

時間複雜度為o(n2),空間複雜度為o(1),是穩定的排序演算法。

具體的實現**如下:

#include#include//包含srand()

#include//包含 time(null)

using namespace std;

void swap(int&a,int&b)

void main()

//輸出隨機數

for(i=0;i<=n-1;i++)

}*//*選擇排序

for(i=0;ia[j])

min=j;

} if(min!=i)

}*///插入排序

int temp;

for(i=0;i<=n-2;i++)

{ temp=a[i+1];

j=i;

while(j>=0)

{ if(temp

八種基本排序演算法

1 思路 對尚未排序的各元素從頭到尾依次比較相鄰的兩個元素是否逆序 與欲排順序相反 若逆序就交換這兩元素,經過第一輪比較排序後便可把最大 或最小 的元素排好 然後再用同樣的方法把剩下的元素逐個進行比較,就得到了你所要的順序 可以看出如果有 n 個元素,那麼一共要進行 n 1 輪比較,第 i 輪要進行...

排序演算法 插入排序(3種)

1.直接插入排序 思想 利用有序表的插入操作進行排序 有序表的插入 將乙個記錄插入到已排好序的有序表中,從而得到乙個新的有序表 特點 穩定 空間代價 o 1 時間代價 o n 2 1 void insertsort int array,intn 2 16 此時j後面就是記錄i的正確位置,回填 17 ...

四種基本排序演算法

思路分析 在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。實現 arr array 1,43,54,62,21,66,32,78,36,76,39 functio...