冒泡排序作用:最常用的排序算法,对数组内元素进行排序
思路:
- 比较相邻的元素,如果第一个比第二个大,就交换他们两个。
- 对每一个相邻元素做同样的工作,执行完毕后,找到第一个最大值。
- 重复以上的步骤,每次比较次数-1,知道不需要比较。
过程:
题目:输入n个数,进行冒泡排序
#include <iostream>
using namespace std;
int main()
{
//利用冒泡排序实现升序序列
int n, t;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
cout << "排序前:" << endl;
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << "\n";
//开始冒泡排序
//外循环是总共排序轮数为:元素个数-1
for (int i = 0; i < n; i++)
{
//内循环是比较次数
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
cout << "排序后:" << endl;
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << "\n";
system("pause");
return 0;
}
总结:
- 排序总轮数 = 元素个数 - 1;
- 每轮比较次数 = 元素个数 - 排序轮数 -1;