#include<stdio.h> void bubble(int a[],int len){ // int len = sizeof(a)/sizeof(int); //这样写是错误的,因为a传进来的是个指针,sizeof(a)是8 for(int i=0;i<len-1;i++) for(int j=0;j<len-1;j++) if(a[j]>a[j+1]){ int t = a[j]; a[j] = a[j+1]; a[j+1] = t; } //优化写法 // for(int i=0;i<len-1;i++){ // int flag = 0; // for(int j=0;j<len-1-i;j++){//-i是因为后面已经排好了 // if(a[j]<a[j+1]){ // flag = 1; // int t = a[j]; // a[j] = a[j+1]; // a[j+1] = t; // } // } // if(flag==0) // break;//一次下来数组没有变化,则已完成排序 // } } void print (int a[],int len){ for(int i=0;i<len;i++) printf("%d ",a[i]); putchar('n'); } main(){ int a[]={1,3,5,9,2,4,10,8,7}; int len = sizeof(a)/sizeof(int); bubble(a,len); print(a,len); }
c/c++开发分享一文搞懂冒泡排序 C语言地址:https://blog.csdn.net/m0_45311187/article/details/109000168
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/597440.html