1 class bu {
 2 public:
 3     int num = 0;
 4     bu(int val) {
 5         this->num = val;
 6     }
 7 };
 8 
 9 template <class T>
10 void bubble(T* arr, int len) {
11 
12     for (int j = 0; j < len; j++)
13     {
14         for (int i = 0; i < len - j - 1; i++)
15         {
16             if (arr[i + 1]->num < arr[i]->num) {
17                 T temp = arr[i];
18                 arr[i] = arr[i + 1];
19                 arr[i + 1] = temp;
20             }
21         }
22 
23     }
24 }
25 
26 
27 int main() 
28 {
29     bu i1(1), i2(2), i3(3), i4(4), i5(5);
30     bu* bus[6] = { &i3, &i2, &i4, &i1 };
31     
32     for (int i = 0; i < 4; i++)
33     {
34         printf("[%d]\t", bus[i]->num);
35     }
36     printf("\n");
37 
38     bubble(bus,4);
39     
40     for (int i = 0; i < 4; i++)
41     {
42         printf("[%d]\t", bus[i]->num);
43     }
44     printf("\n");
45 
46     return 0;
47 }

 普通冒泡排序:

 1 void bubble(int* arr,int len) {
 2     for (int j = 0; j < len; j ++)
 3     {
 4         for (int i = 0; i < len - j -1; i ++)
 5         {
 6             if (arr[i + 1] < arr[i]) {
 7                 int temp = arr[i];
 8                 arr[i] = arr[i + 1];
 9                 arr[i + 1] = temp;
10             }
11         }
12         
13     }
14 }
15 void main() {
16     int arr[10] = { 1,5,4,9,6,8,7 };
17     int len = sizeof(arr) / 4;
18     bubble(arr, len);
19     for (int i = 0; i < len; i++)
20     {
21         printf("[%d]\t", arr[i]);
22     }
23     printf("\n");
24 
25 }

 

 posted on 2022-04-11 14:15  laremehpe  阅读(47)  评论(0编辑  收藏  举报