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]);
bubble(arr,length);

本文详细介绍了冒泡排序的工作原理,通过分析外层与内层循环来解析其过程。同时,提供了冒泡排序的代码示例,并对其时间复杂度进行了分析,指出在最好和最坏情况下的时间复杂度分别为O(n)和O(n^2)。最后,文章探讨了如何通过设置开关优化冒泡排序,避免不必要的比较操作。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



