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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qian0217wei 高级黑马   /  2015-4-26 00:55  /  1246 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qian0217wei 于 2015-4-27 14:01 编辑

毕老师在讲冒泡排序时讲到冒泡排序实际上可以优化,在堆内存中的要进行频繁的比较,换位操作,浪费内存,在栈内存设置临时变量用来记录在需要交换的数组角标,比较到最后确定需要交换的角标位置,这样堆内存中只需要交换一次,这个具体代码怎么实现?

17 个回复

倒序浏览
冒泡排序,再怎么优化还是渣。有这时间不如去学其他高级的排序方法
回复 使用道具 举报
fantacyleo 发表于 2015-4-26 01:13
冒泡排序,再怎么优化还是渣。有这时间不如去学其他高级的排序方法

我就想多学学,我学过数据结构,一些算法思想都知道,想看看用java实现过程
回复 使用道具 举报
本帖最后由 混乱的世界 于 2015-4-26 07:43 编辑
  1.     public static void BubbleSort(int[] array)
  2.     {
  3.                 int flag=0;
  4.         for(int x=0;x<array.length-1;x++)
  5.         {
  6.                         flag=0;
  7.             for(int y=0;y<array.length-x;y++)
  8.             {
  9.                 if(array[flag]<=array[y])
  10.                                         flag=y;
  11.                     //HuanWei(y,y+1,array);
  12.             }
  13.                         swap(flag,array.length-1-x,array);

  14.         }
  15.     }
  16.      public static void swap(int first,int y,int[] array)
  17.     {
  18.         int temp=array[first];
  19.         array[first]=array[y];
  20.         array[y]=temp;
  21.     }
复制代码

回复 使用道具 举报
Arrays.sort(args[]);         //这个是Java的内置排序方法,应该是最好的优化吧
回复 使用道具 举报
优化是到后期学习到Arrays类的时候,在里面有现成sort()方法可以调用。到时候不需要我们自己去写代码,直接调用现成的方法就行。对于毕老师所讲的只是让大家了解下这个思想。面试会问到,但是开发不会用到的、
回复 使用道具 举报
过来学习学习
回复 使用道具 举报

谢谢啊!学习到了!
回复 使用道具 举报
李桂中 发表于 2015-4-26 08:36
优化是到后期学习到Arrays类的时候,在里面有现成sort()方法可以调用。到时候不需要我们自己去写代码,直接 ...

我也就是了解看看!
回复 使用道具 举报
大西洋 发表于 2015-4-26 07:55
Arrays.sort(args[]);         //这个是Java的内置排序方法,应该是最好的优化吧

这是java包中提供的,我知道,但是否是最优就不一定了!
回复 使用道具 举报
我来学习学习
回复 使用道具 举报

一起学习
回复 使用道具 举报

一起努力啊!
回复 使用道具 举报
不错,已经看过了,值得赞一个
回复 使用道具 举报
看来我比你跟单纯啊
回复 使用道具 举报
:lol没看到结果。。
回复 使用道具 举报
学习学习
回复 使用道具 举报
涨姿势了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马