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...