挿入ソートをテンプレートにしたもの

#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