#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 對正常插入排序演算法的改進,...