以升序为例的实现分析:
1、从最左端开始比较相邻两个元素的大小,若第一个数比第二个数大,交换两个数
2、对每一个相邻的元素重复上述工作,找到第一个最大值
3、重复上述步骤,每轮比较的次数-1,直到完全符合升序排列
排序总轮数=元素个数-1;
每轮比较次数=元素个数-排序轮数-1;
int main()
{
int arr[9]={4,2,8,0,5,7,1,3,10}
for(int i=0;i<9-1;i++)
{
for(int j=0;j<9-i-1;j++)
{
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]<<" "; //执行结果为:0 1 2 3 4 5 7 8 10
}