码迷,mamicode.com
首页 > 编程语言 > 详细

C++冒泡排序 (基于函数模板实现)

时间:2020-05-31 19:51:05      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:nbsp   ted   sys   c++   end   color   break   简单   system   

冒泡排序是一种简单的排序算法。

 1 #pragma once
 2 #include <iostream>
 3 #include <assert.h>
 4 using std::cout;
 5 using std::endl;
 6 template <typename T> void Swap(T &a, T &b)
 7 {
 8     T temp = a;
 9     a = b;
10     b = temp;
11 }
12 
13 template <typename T> void Bubble(T a[], unsigned int n)
14 {
15     assert(sizeof(a) / sizeof(T) != n);
16     for (int k = 0; k < n; ++k)
17         cout << a[k] << "\t";
18     cout << endl;
19 
20     int loop = 0;
21     for (int i = 1; i < n - 1; ++i)
22     {
23         bool sorted = true;
24         cout << "" << i << "次循环" << endl;
25         for (int j = 1; j < n; ++j)
26         {
27             if (a[j] < a[j - 1])
28             {
29                 Swap(a[j], a[j - 1]); 
30                 sorted = false;
31             }
32             for (int k = 0; k < n; ++k)
33                 cout << a[k] << "\t";
34             cout << endl;
35             loop++;
36         }
37         
38         if (sorted) break;
39     }
40     cout << loop << endl;
41 }
42 
43 
44 int main()
45 {
46     double arr1[10] = { 1.2,3,1,9,6,4,5.9,7.1,8,8 };
47     int len1 = sizeof(arr1)/sizeof(double);
48     Bubble(arr1, len1);
49 
50     int arr2[10] = { 1,3,1,9,6,4,5,7,8,8 };
51     int len2 = sizeof(arr2) / sizeof(int);
52     Bubble(arr2, len2);
53 
54     system("pause");
55     return 0;
56 }

 

C++冒泡排序 (基于函数模板实现)

标签:nbsp   ted   sys   c++   end   color   break   简单   system   

原文地址:https://www.cnblogs.com/zhaoliankun/p/13020458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!