冒泡排序
作用:最常用的算法,对数组内元素进行排序
算法思路
- 比较相邻的元素,如果第一个比第二个大,就交换他们俩个
- 对每一个相邻元素做同样的工作,执行完毕后找到第一个最大的值
- 重复以上步骤,每次比较次数-1,直到不需要比较
9个人,排8次
排序轮数 | 对比次数 |
---|---|
0 | 8 |
1 | 7 |
2 | 6 |
3 | 5 |
4 | 4 |
5 | 3 |
6 | 2 |
7 | 1 |
所以我们的实现思路便是
排序总轮数=元素个数-1
对比次数=元素个数-排序轮数-1
#include <iostream>
using namespace std;
int main()
{
int arr[9] = { 0,6,4,8,4,5,2,9,7 };
int len = sizeof(arr) / sizeof(arr[0]);
cout << "排序前" << endl;
for (int i = 0; i < len; i++)
{
cout << arr[i] << " ";
}
cout << endl;
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
else
{
continue;
}
}
}
cout << "排序后" << endl;
for (int i = 0; i < len; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}