1、原理分析:
顾名思义,就是一次循环像冒泡一样,两两比较,最小的浮上来或者最大的沉下去;分析外层控制次数为n次,内层控制剩余比较次数为n-(i+1)次;
图片示意:
1.外层为n次
2.内层为剩余循环次数,所以应该从0开始,运行次数为n-(i+1)
2、代码展示:
#include<stdio.h>
void bubble(int *arr,int length){
int i,j,tmp;
#外层次数,所以为n次
for(i=0;i<length-1;i++){
#内层剩余次数,所以从0开始,总数为length-i-1
for(j=0;j<length-i-1;j++){
if(arr[j]>arr[j+1]){
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main(){
int z;
int arr[]={
5,4,8,0,9,100};
int length = sizeof(arr)/sizeof(arr[0]);