冒泡排序(初级版)之C++实现

冒泡排序(初级版)之C++实现

一、源代码:BubbleSortLow.cpp

 1 /*冒泡排序思想:
 2 从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面;
 3 一轮比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。
 4 n个数,经过n-1轮比较后完成排序。
 5 */
 6 #include<iostream>
 7 using namespace std;
 8 
 9 /*定义输出一维数组的函数*/
10 void print(int array[], int n)
11 {
12     for (int i = 0; i < n; i++)
13     {
14         cout << array[i] << " ";
15     }
16     cout << endl;
17 }
18 
19 /*定义冒泡排序的函数,升序排序,返回交换次数*/
20 int bubbleSort(int array[],int n)
21 {
22     //定义变量,记录交换次数
23     int count = 0;
24     //定义中间变量temp
25     int temp;
26     //遍历数组(进行排序)
27     cout << "开始对数组进行排序了..." << endl;
28     for (int i = 0; i < n; i++)
29     {
30         for (int j = 0; j < n - 1 - i; j++)
31         {
32             cout << "" << (i + 1) << "趟第" << (j + 1) << "次排序" << endl;
33             //如果左边的数大于右边的数就进行交换顺序
34             if (array[j] > array[j + 1])
35             {
36                 temp = array[j];
37                 array[j] = array[j + 1];
38                 array[j + 1] = temp;
39                 cout << array[j] << "" << array[j + 1] << "互换了" << endl;
40                 //输出此时数组的顺序
41                 cout << "数组此时的顺序是:";
42                 print(array, 10);
43                 //每交换一次,记录数加1
44                 count++;
45             }
46         }
47     }
48     cout << "数组排序结束了..." << endl;
49     return count;
50 }
51 
52 int main()
53 {
54     //定义待排序的一维数组
55     int array[] = { 1, 3, 4, 5, 2, 6, 10, 9, 8, 7 };
56     //输出原始数组
57     cout << "原始数组是:" << endl;
58     print(array, 10);
59     //对数组进行排序
60     int count = bubbleSort(array, 10);
61     //输出排序后的数组
62     cout << "排序后的数组是:" << endl;
63     print(array, 10);
64     cout << "共交换" << count << "" << endl;
65 }

二、运行结果

 

posted @ 2017-08-18 16:57  勇闯天涯zfc  阅读(220)  评论(0编辑  收藏  举报