定义一个数组,让其元素按从小到大排列。思路:
int nums[5]={5,4,3,2,1}; int length=sizeof(nums)/sizeof(int);
第0轮 4 5 3 2 1
4 3 5 2 1 4次比较
4 3 2 5 1
4 3 2 1 5
第1轮 3 4 2 1 5
3 2 4 1 5 3次比较
3 2 1 4 5
第2轮 2 3 1 4 5 2次比较
2 1 3 4 5
第3轮 1 2 3 4 5 1次比较
综上 可推出 轮数=length-1-1;
次数=length-第几轮-1;
程序如下:
#include <stdio.h>
int main(){
int nums[5]={5,4,3,2,1};
int length=sizeof(nums)/sizeof(int);
for(int i=0;i<=length-1-1;i++){
for(int j=0;j<length-i-1;j++){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
for(int j=0;j<length;j++){
printf("%d ",nums[j]);
}
return 0;
}