冒泡排序
2016-07-06 00:00
190 查看
摘要: 冒泡排序
冒泡排序
交换排序主要有冒泡排序和快速排序
实现思路:
对于n个数,最坏情况下需要进行n-1趟比较。
第1趟:依次比较第n-1和n-2索引处的数据,如果发现后一个数据大于前一个数据,就交换,再比较n-2与n-3索引处的数据...以此类推。经过第1趟比较最大的数据排在最前面。
第2趟:依次比较第n-1和n-2索引处的数据,大的往前放,第2趟比较结束之后第2大的数据排在第二的位置(注意:前面已经比较出来的数不在比较范围内,故循环次数应该减1)
......
实际上,冒泡排序每趟交换结束之后,不仅能把当前最大值选出排在最前面,还能部分理顺前面其他的元素。所以,一旦某一趟没有发生交换,即可提前结束排序。
算法实现
算法总结:
冒泡排序算法的时间效率是不确定的,在初始数据有序的情况下,执行一趟冒泡排序。
最佳时间复杂度:O(n)
空间复杂度为:O(1)
冒泡排序是稳定的。
冒泡排序
交换排序主要有冒泡排序和快速排序
实现思路:
对于n个数,最坏情况下需要进行n-1趟比较。
第1趟:依次比较第n-1和n-2索引处的数据,如果发现后一个数据大于前一个数据,就交换,再比较n-2与n-3索引处的数据...以此类推。经过第1趟比较最大的数据排在最前面。
第2趟:依次比较第n-1和n-2索引处的数据,大的往前放,第2趟比较结束之后第2大的数据排在第二的位置(注意:前面已经比较出来的数不在比较范围内,故循环次数应该减1)
......
实际上,冒泡排序每趟交换结束之后,不仅能把当前最大值选出排在最前面,还能部分理顺前面其他的元素。所以,一旦某一趟没有发生交换,即可提前结束排序。
算法实现
算法总结:
冒泡排序算法的时间效率是不确定的,在初始数据有序的情况下,执行一趟冒泡排序。
最佳时间复杂度:O(n)
空间复杂度为:O(1)
冒泡排序是稳定的。
相关文章推荐
- 冒泡排序
- C#冒泡法排序算法实例分析
- C++实现对输入数字组进行排序
- 用PHP写的一个冒泡排序法的函数简单实例
- js实现数组冒泡排序、快速排序原理
- 分享javascript实现的冒泡排序代码并优化
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- c++冒泡排序示例分享
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- c#冒泡排序示例分享
- 冒泡排序算法及Ruby版的简单实现
- javascript冒泡排序小结
- 浅谈php冒泡排序
- C语言冒泡排序法心得
- PHP实现冒泡排序的简单实例
- Javascript冒泡排序算法详解
- C++冒泡排序算法实例
- C语言的冒泡排序和快速排序算法使用实例