冒泡排序(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,
时间: 2024-11-23 00:02:35