七大排序模板

2021-08-23 12:24:06 字數 941 閱讀 2199

目錄:冒泡,選擇,插入,希爾,歸併,快排  以及  堆排

一、冒泡

1.經典排序

for(i=0;ia[j+1])

if(flag)

break;

}

2.簡化版

for(i=0;ia[j])

二、選擇排序

for(i=0;ia[j])

min=j;

if(min!=i)

}

三、插入排序

for(i=0;i0;j--)

a[j] = temp;

}

四、希爾排序

for(incre=n/2;incre>0;incre/=2)//步長

while(j<=high)

b[k++]=a[j++];

while(i<=mid)

b[k++]=a[i++];

for(i=0;i<=high-low;i++)

a[i+low]=b[i];

}

六、快速排序 quicksort

缺陷:給出二元陣列a[maxn][2],按第乙個關鍵值從小到大排序後輸出,要求第一關鍵值相同情況下不改變原陣列次序

例如:二元 (1,0),(1,2)排序後改變位置。

void qsort(int nums,int left,int right)

}void heapsort(int nums,int len)

}

七大排序演算法

氣泡排序 void bubble int a,int n 選擇排序 void select sort int a,int n n為陣列a的元素個數 將第i 小的數,放在第i 個位置 如果剛好,就不用交換 if i min index 插入排序 typedef int elementtype void...

七大排序演算法

七大排序分類 插入排序 直接插入排序 穩定 希爾排序 不穩定 選擇排序 簡單選擇排序 穩定 堆排序 不穩定 交換排序 氣泡排序 穩定 快速排序 不穩定 歸併排序。直接插入排序 時間複雜度 o n 2 演算法穩定性 穩定void straightinsertsort int a,int n 氣泡排序 ...

七大排序演算法

首先回顧下各種排序的主要思路 一 氣泡排序 氣泡排序主要思路是 通過交換使相鄰的兩個數變成小數在前大數在後,這樣每次遍歷後,最大的數就 沉 到最後面了。重複n次即可以使陣列有序。氣泡排序改進1 在某次遍歷中如果沒有資料交換,說明整個陣列已經有序。因此通過設定標誌位來記錄此次遍歷有無資料交換就可以判斷...