冒泡排序
对数组内相邻的元素进行对比,
如果前一个比后一个大,则交换两者位置;
这样执行完第一轮之后则可以找出整个数组内第一个最大值;
重复,比较次数较上一次减一,直到剩余两个数(一次对比),则不需再比较,得出结果。
冒泡排序非常的形象,每轮对比像冒泡一样,选出一个最大值。
比较重点的在于确定循环轮数,以及每轮里进行对比的次数
两个数据的位置的交换,需要引入临时储存temp
#include <iostream>
using namespace std;
int main()
{
int arr[9] = { 3,0,4,1,2,6,9,8,7 };
cout << "排序前" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i]<< " ";
}cout << endl;
//开始冒泡排序
for (int i = 0; i < 9-1; i++)//外层循环次数=元素个数-1
{
for (int j = 0; j < 9 - i - 1; j++)
//内存循环次数=元素次数-当前轮数-1
{
//比较相邻两个元素,第一个比第二个大交换两个的位置
if (arr[j] > arr[j + 1])
{
int temp = arr[j];//引入temp临时储存一个元素
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
cout << "排序后" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}cout << endl;
system("pause");
return 0;
}