首页 > 代码库 > 冒泡排序:

冒泡排序:

冒泡排序(Bubble Sort,泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

    这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。

 1 #include "stdafx.h"
 2 #include <iostream>
 3 using namespace std;
 4 
 5 void bubble(int[], int);   //函数声明;其间不需要具体的变量名(写也可)
 6 
 7 int main()
 8 {
 9         //定义一个10元素的数组
10     int array[] = { 12,23,45,56,78,89,96,63,25,58 };  
11     int len = sizeof(array) / sizeof(int);      //求元素个数
12     for (int i = 0; i < len; i++)                   //按原顺序输出一遍
13         cout << array[i] << ",";              //每输出一个元素用“,” 
14         cout << endl << endl;                //输出结束,两次换行
15     bubble(array, len);                               //调用冒泡函数
16 }
17 
18 void bubble(int a[], int size)                        //冒泡排序
19 {
20     int i;                                           
21     int temp;
22        //共比较size-1轮
23     for (int pass = 1; pass < size; pass++)          
24     {
25         for (i = 0; i < size - pass; i++)         //比较一轮
26             if (a[i] > a[i + 1])                     //一次交换
27             {
28                 temp = a[i];
29                 a[i] = a[i + 1];
30                 a[i + 1] = temp;
31             }
32             for (i = 0; i < size; i++)            //比较一轮后输出
33             
34                 cout << a[i] << ",";
35                 cout << endl;
36     }
37 }

运行结果:

12,23,45,56,78,89,96,63,25,58,

12,23,45,56,78,89,63,25,58,96,
12,23,45,56,78,63,25,58,89,96,
12,23,45,56,63,25,58,78,89,96,
12,23,45,56,25,58,63,78,89,96,
12,23,45,25,56,58,63,78,89,96,
12,23,25,45,56,58,63,78,89,96,
12,23,25,45,56,58,63,78,89,96,
12,23,25,45,56,58,63,78,89,96,
12,23,25,45,56,58,63,78,89,96,

冒泡排序: