挿入ソートをテンプレートにしたもの
#include <stdio.h> template<class TYPE> void Sort(TYPE a[], int n) { int i, j; for(i = 1; i < n; i++){ j = i; while(j > 0 && a[j] < a[j-1]){ Swap(a[j], a[j-1]); j--; } } } template<class TYPE> void Swap(TYPE& a, TYPE& b) { TYPE tmp = a; a = b; b = tmp; } int main() { int a[] = {3, 2, 6, 8, 5, 10}; Sort(a, 6); for(int i = 0; i < 6; i++) printf("%d ", a[i]); printf("\n"); return 0; }
実行結果 2 3 5 6 8 10