1: /*
2: *Author:justinzhang
3: *Email:uestczhangchao@gmail.com
4: *Time:2011年5月11日16:17:52
5: *Discription:冒泡排序算法, change to cpp and add template @2012-9-4 22:08:26
6: */
7:
8:
9: #include <iostream>
10: using namespace std;
11:
12: template<typename T> void b_swap(T& x, T& y)
13: {
14: T tmp = x;
15: x = y;
16: y = tmp;
17: }
18:
19: template<typename T> void bubblesort(T A[],int len)
20: {
21: int i,j;
22: int flag = 0;
23: for(i=1; i<=len-1;i++)
24: {
25: flag = 0;
26: for(j=1;j<=len-i;j++)
27: {
28: if(A[j]>A[j+1])
29: {
30: b_swap<T>(A[j],A[j+1]);
31: flag = 1;
32: }
33: }
34:
35: if(flag==0)
36: break;
37: }
38:
39: }
40:
41:
42: int main()
43: {
44: /*数组元素从0开始存放*/
45: int A[] = {0,5,6,7,-3,555,88};
46: int i;
47: bubblesort<int>(A,6);
48: for(i=1; i<=6;i++)
49: printf("%d\n",A[i]);
50:
51: return 0;
52: }