模板實現編譯時氣泡排序

2022-03-10 21:52:47 字數 842 閱讀 4384

看到特首寫了個編譯時的歸併,感覺挺好玩,寫了個冒泡試試,第一次用模板寫這種東西,見笑了(

#include #include #include using namespace std;

templatestruct vals {};

templatestruct valueat;

templatestruct valueat>

;templatestruct valueat<0, vals>

;templatestruct combine;

templatestruct combine, vals>

;templatestruct swapvalue;

templatestruct swapvalue>

;templatestruct swapvalue<0, vals>

;templatestruct swapvalue<0, vals>

;templatestruct bubblesort

;templatestruct bubblesort<1, 1, vals>

;templatestruct bubblesort>

;templatestruct bubblesort>

;templatestruct sort

;templatevoid print(vals)

; copy(begin(vs), end(vs), ostream_iterator(cout, " "));

endl(cout);

}int main()

**本身很簡單,就是冒泡的思路,遞迴 j 的終止條件應該還可以優化一下

C 模板實現梳排序

梳排序是一種改進的氣泡排序演算法,通過比較元素彼此之間的步長位置這種方式先對資料進行預處理,在每次移動中,步長會越來越小,直至他等於1.這一理念就是在正式排序前先將一些大元素移動至陣列的底部.之後正式排序採用氣泡排序演算法來進行.大量試驗證明,步長縮短因子為1.3時,能達到較高的效率.梳排序的良好效...

C 模板實現希爾排序

希爾排序是一種高效的排序演算法,原理是將大陣列分成若干個小陣列,對每個小陣列進行排序.之後縮短步長,對原陣列重新劃分小組,繼續對每個小組進行排序.直到步長變為1後,進行最後一次直接插入排序.此演算法高效的原因在於直接插入排序在對基本有序的序列進行排序是十分高效的.前期劃分子陣列進行排序,可以逐漸使得...

c 實現類模板實現堆排序

1 首先你要會堆排序 可以點這裡看一下堆排序過程 2.使用類模板實現堆排序 include template class t 堆排序 void heapsort t t,int len template class t 調整堆 從上到下調整堆 void adjustheap t t,int poin...