排序算法之冒泡排序
1、算法思想
对要排序的数据,从上到下依次比较两个相邻的数并加以调整,将最大的数向下移动,较小的数向上冒起。即:每一趟依次比较相邻的两个数据元素,将较小的数放在左边,循环进行同样的操作,直到全部待排序的数据元素排完。
2、实例分析
例如:我们要将身高不等的十个人站在一排,要求他们按照身高由低到高排队,设将 10 个人编号为 0---9 ,相邻的两个人依次比较,如果左边的比右边的人高,则交换两个人的位置,否则不交换,直到最后两个人,即此时完成了一趟排序。一趟排序后,最高的人已经在最右边了。
一趟排序后的结果:(将最高者一趟排序后移动到最后位置)
如此都多趟的排序,最终就完成了整个的排序。
3、算法分析(有小到大排序)
每一趟过程中,就是依次比较两个相邻的数,若 a[i]>a[i+1],则交换两数,否则不换;
每一趟就是一重循环,而由于要经过多趟过程,即外面还有一重循环,所以就存在双重循环。
4、算法代码:(Java 版)
复制代码
版权声明: 本文为 InfoQ 作者【xcbeyond】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a1dfe091d16345ef3149a28b】。文章转载请联系作者。
评论