冒泡排序原理:
在一个长度为n的数组中(arr[n]),从头开始直至最后一个元素,每次比较相邻的两个元素(i、i+1),如果前者比后者大,则交换两者的位置。每轮会进行n-1次比较,挑选出本轮中最大的元素并置于数组末尾,此元素不参与下一轮比较。最后一轮比较至还剩两个元素,至此冒泡排序结束,一共会进行n-1次比较。
总结一下:
数组长度为n,每次比较arr[i]、arr[i+1],一共进行n-1轮比较,每轮比较(n-轮数)组相邻两元素,每轮比较会选出最大值不参与下一轮比较。
#include <iostream>
using namespace std;
int arr[9]={2,5,7,6,1,9,8,4,3};
int main()
{
for(int i=0;i<9-1;i++)//一共进行9-1轮比较
{
for(int j=0;j<9-1-i;j++)//每一轮减少一个参与的元素,进行(9-1-轮数)次比较
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];//创建一个临时值用于储存
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<9;i++)
{
cout<<arr[i]<<" ";
}
}
//打印输出:1 2 3 4 5 6 7 8 9