【17】-冒泡排序详解
2016-05-01 17:19
302 查看
冒泡排序
定义
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。步骤
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
java代码
public class BubbleSort { public void sort(int[] a) { int temp = 0; for (int i = a.length - 1; i > 0; --i) { for (int j = 0; j < i; ++j) { if (a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } }
算法分析
时间复杂度o(n×n)空间复杂度o(n)
算法稳定
我的文章首发于公众号
互联网学术(IT-paper)
了解更多,互请扫码上车
相关文章推荐
- JavaScript演示排序算法
- 冒泡排序
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C#冒泡法排序算法实例分析
- C++实现对输入数字组进行排序
- 算法之排序算法的算法思想和使用场景总结
- PHP版本常用的排序算法汇总
- C#常见算法面试题小结
- JavaScript实现多种排序算法
- js实现数组冒泡排序、快速排序原理
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- php 地区分类排序算法
- js三种排序算法分享
- Javascript中的常见排序算法
- c++冒泡排序示例分享
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述