冒泡排序的基本思路是(以升序为例):每次将相邻两个数字进行比较,将小的数字放在大的前边。例如已知六个数字为9,8,5,4,2,0,第一次现将最前边的9和8进行调换,其次再将9和5进行调换......如图(只进行了两趟交换)
创新互联主营蛟河网站建设的网络公司,主营网站建设方案,成都app软件开发,蛟河h5小程序制作搭建,蛟河网站营销推广欢迎蛟河等地区企业咨询如此进行下去,如果有n个数,就要进行n-1趟比较;在第一趟要进行n-1次交换,在第j次就要进行n-j次交换。
void bubble_sort(int *p,int sz) //冒泡排序 { int i = 0; int temp = 0; for(i=0; i<sz-1; i++) { int j = 0; for(j=0; j<sz-i-1; j++) { if(*(p+j) > *(p+j+1)) { temp = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = temp; } } } }
假设有一组数字:1 2 3 4 5 6 7 8 9 0,那么用上边的方法也是可以实现的,但是,对于前边9个数字来说它们已经是有序的了,如果还用这种方法就会使效率降低很多(假设有n个数),因此,在此基础上可以将代码优化——每趟比较时,如果相邻两个数字之间满足升序或者降序的要求,那就不在交换,如果不满足,就前后交换。
void bubble_sort(int *p,int sz) //冒泡排序--优化 { int flag = 1; int i = 0; int temp = 0; for(i=0; i<sz-1; i++) { int j = 0; flag = 1; for(j=0; j<sz-i-1; j++) { if(*(p+j) > *(p+j+1)) { temp = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = temp; flag = 0; } } if(flag == 1) { return ; } } }
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
当前标题:冒泡排序及其优化-创新互联
文章URL:https://www.cdcxhl.com/article6/cdojog.html
成都网站建设公司_创新互联,为您提供网页设计公司、搜索引擎优化、软件开发、静态网站、微信公众号、品牌网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联