A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飘影 中级黑马   /  2015-6-25 19:22  /  733 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基本思想:

在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

冒泡排序的示例:

算法的实现:

  1.         for (int i = 0; i < arr.length-1; i++) {
  2.             for (int j = 0; j < arr.length-i-1; j++) {
  3.                 if (arr[j]<arr[j+1]) {
  4.                     int temp=arr[j];
  5.                     arr[j]=arr[j+1];
  6.                     arr[j+1]=temp;
  7.                 }
  8.             }
  9.         }
复制代码


17 个回复

倒序浏览
这么强..赞一个!
回复 使用道具 举报
学习了。。谢谢分享。。。
回复 使用道具 举报
得好好学习,把基础学扎实
回复 使用道具 举报
终于找到这帖子里啦
回复 使用道具 举报
讲解的好详细,谢谢!
回复 使用道具 举报
感觉很腻害  吼吼!!
回复 使用道具 举报
bingyu 中级黑马 2015-6-25 21:27:10
8#
其实冒泡排序就是内循环 自己和自己+1做比较,选择排序就是内循环和外循环相比
回复 使用道具 举报
贾森 中级黑马 2015-6-25 21:28:26
9#
挺不错的
回复 使用道具 举报
学习了      
回复 使用道具 举报
冒泡排序法是最高效的排序方法吗
回复 使用道具 举报
学习了!!
回复 使用道具 举报
每看到一次都复习一下
回复 使用道具 举报
学习学习
回复 使用道具 举报
本帖最后由 我是隔壁老王呀 于 2015-6-26 16:36 编辑
含笑 发表于 2015-6-25 22:54
冒泡排序法是最高效的排序方法吗

不是。
    冒泡排序法,需要每次从开始比较到最后一个元素,所需时间为从n(开始有序)到(n+(n-1)+(n-2)+...+1 )(开始逆序)之间,所需时间复杂度平均为为o(n*n),而快速排序、堆排序、归并排序以及基数排序,这些复杂排序方法的时间效率都比冒泡排序法要高。排序算法没有谁的效率最高一说,只能说结合实际项目中数据量的大小,以及数据的空间复杂度,可以选择一种或者几种排序算法搭配,达到效率最高。
     从平均时间性能上,快速排序最佳,所需时间最省,但是快速排序在最坏情况下的时间性能还不如堆排序和归并排序。从排序方法的稳定性上,基数排序是稳定的内部排序算法,还有一些简单排序算法也是稳定的,如插入排序,选择排序,冒泡排序等。

回复 使用道具 举报
算法这东西,一定要先明白它的分析过程,这样才能根据需求做出相应的东西;如果只是硬背的话,条件以改变你就抓瞎了。
回复 使用道具 举报
我是隔壁老王呀 发表于 2015-6-26 16:20
不是。
    冒泡排序法,需要每次从开始比较到最后一个元素,所需时间为从n(开始有序)到(n+(n-1)+(n-2) ...

谢谢!你的解答真详细
回复 使用道具 举报
观摩观摩,学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马