冒泡排序
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码示例:
#include<iostream>
using namespace std;
int main()
{
int arr[8] = { 9,5,6,1,7,8,0,3 };//建立一个8个元素的数组
int len = (sizeof arr) / (sizeof arr[0]);
for (int i = 0;i < len - 1;i++)//对每一对相邻元素做比较的工作,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较,所以共需(元素-1)次
{
for (int j = 0;j < len - 1 - i;j++)//对每一对相邻元素做比较的工作,所以要比较(元素-i)次
{
int a;
if (arr[j + 1] < arr[j])//比较相邻的元素。如果第一个比第二个大,就交换他们两个
{
a = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = a;
}
}
}
for (int j = 0;j < 8;j++)
{
cout << arr[j] << " ";
}
return 0;
}
结果
时间复杂度
两次嵌套的for循环