黑马程序员技术交流社区
标题: JAVA排序之——冒泡排序算法 [打印本页]
作者: 飘影 时间: 2015-6-25 19:22
标题: JAVA排序之——冒泡排序算法
基本思想:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
冒泡排序的示例:
算法的实现:
- for (int i = 0; i < arr.length-1; i++) {
- for (int j = 0; j < arr.length-i-1; j++) {
- if (arr[j]<arr[j+1]) {
- int temp=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=temp;
- }
- }
- }
复制代码
作者: heima591046495 时间: 2015-6-25 19:37
这么强..赞一个!
作者: keto 时间: 2015-6-25 19:47
学习了。。谢谢分享。。。
作者: yangtingdong 时间: 2015-6-25 20:20
得好好学习,把基础学扎实
作者: zhand 时间: 2015-6-25 20:51
终于找到这帖子里啦
作者: 夜空中最亮的星 时间: 2015-6-25 21:04
讲解的好详细,谢谢!
作者: Especially丶 时间: 2015-6-25 21:16
感觉很腻害 吼吼!!
作者: bingyu 时间: 2015-6-25 21:27
其实冒泡排序就是内循环 自己和自己+1做比较,选择排序就是内循环和外循环相比
作者: 贾森 时间: 2015-6-25 21:28
挺不错的
作者: 十五号的人生 时间: 2015-6-25 21:33
学习了
作者: 含笑 时间: 2015-6-25 22:54
冒泡排序法是最高效的排序方法吗
作者: a1224577182 时间: 2015-6-26 00:17
学习了!!
作者: 爱李萝卜 时间: 2015-6-26 12:05
每看到一次都复习一下
作者: Happe_Sun 时间: 2015-6-26 14:54
学习学习
作者: 我是隔壁老王呀 时间: 2015-6-26 16:20
本帖最后由 我是隔壁老王呀 于 2015-6-26 16:36 编辑
不是。
冒泡排序法,需要每次从开始比较到最后一个元素,所需时间为从n(开始有序)到(n+(n-1)+(n-2)+...+1 )(开始逆序)之间,所需时间复杂度平均为为o(n*n),而快速排序、堆排序、归并排序以及基数排序,这些复杂排序方法的时间效率都比冒泡排序法要高。排序算法没有谁的效率最高一说,只能说结合实际项目中数据量的大小,以及数据的空间复杂度,可以选择一种或者几种排序算法搭配,达到效率最高。
从平均时间性能上,快速排序最佳,所需时间最省,但是快速排序在最坏情况下的时间性能还不如堆排序和归并排序。从排序方法的稳定性上,基数排序是稳定的内部排序算法,还有一些简单排序算法也是稳定的,如插入排序,选择排序,冒泡排序等。
作者: 池中月 时间: 2015-6-26 16:41
算法这东西,一定要先明白它的分析过程,这样才能根据需求做出相应的东西;如果只是硬背的话,条件以改变你就抓瞎了。
作者: 含笑 时间: 2015-6-26 21:43
谢谢!你的解答真详细
作者: 青皮核桃 时间: 2015-6-26 22:13
观摩观摩,学习学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |