算法描述:
1、比较相邻两个元素大小,如果前一个比后一个大,则交换这两个元素的位置;
2、对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大的值;
3、重复上述步骤,每次比较的次数减1,直到不需要比较为止。
每轮排序结束后,数组末尾都会得到一个本组内最大的值,即最大值冒了出来,形象地比喻为冒泡排序。
定义一个数组,int nums[] = { 4,2,9,7,3,0,1,8,6,5 };
以下为冒泡排序,每轮排序后的结果。
代码实现:
#include<iostream>
using namespace std;
int main()
{
int nums[] = { 4,2,9,7,3,0,1,8,6,5 };
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10 - i - 1; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
for (int i = 0; i < 10; i++)
{
cout << nums[i] << " " ;
}
cout << endl;
system("pause");
return 0;
}
输出结果
0 1 2 3 4 5 6 7 8 9