冒泡 選擇 插入 希爾排序

2021-08-09 20:01:46 字數 838 閱讀 1948

#include #include #include using namespace std;

template void print(const t *a, int n)

// 氣泡排序: 每次迴圈總是將最大元素移到隊尾: o(n^2),穩定的排序演算法

templatevoid bubblesort(t *a, int n)

} }}// 雞尾酒排序:氣泡排序的改進,第一輪,從小到大,第二輪,從大到小,迴圈: o(n^2)

templatevoid cocktailsort(t *a, int n)

right--;

for(int i=right; i>left; i--)

left++; }}

// 選擇排序:每次從剩餘的元素中找出最大的元素與隊尾元素交換: o(n^2), 不穩定的排序演算法

template void selectsort(t *a, int n)

else

}a[j+1] = cur; // 找到要插入的位置進行插入 }}

// 希爾排序:插入排序的一種高效改進,按間隔h一次執行插入排序,使得原始陣列變得越來越有序,

// h逐漸遞減到1,變成正常的插入排序,插入排序對於大部分有序的數列更有效: 不穩定的排序: o(nlogn)~o(n^2)

templatevoid shellsort(t *a, int n)

while( h>=1 )

a[j+h] = cur;

} h = (h-1)/3; // 遞減間隔 }}

int main()

return 0;

}

陣列排序(冒泡,選擇,插入,希爾)

package org.owen public class sortall system.out.println 氣泡排序的結果 maopao i system.out.println system.out.println 選擇排序的結果 xuanze i system.out.println sy...

C 選擇冒泡插入希爾排序

插入排序思路與打撲克牌的思路類似,從第二項開始,比較所得的與現有序列元素的大小,插入應有的有序序列。實現時需要將比插入值大的值都往後移位,後插入,保證元素不會被覆蓋消失。插入排序的時間複雜度為o n n 且排序演算法穩定。void insertionsort int a,int n a j 1 v ...

選擇 插入 冒泡 希爾

選擇排序 include include include sorttesthelper.h using namespace std template typename t void selectionsort t arr,int n swap arr i arr min 對正常插入排序演算法的改進,...