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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xu6148152 中级黑马   /  2014-1-11 20:46  /  1253 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xu6148152 于 2020-6-3 11:36 编辑

........................

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 淡定

查看全部评分

7 个回复

倒序浏览
  1. //传入数组参数
复制代码
回复 使用道具 举报

从图上面来看, 冒泡排序的规则是相邻的2个 对比,而选择是 先确定一个,然后依次和后面的每一个来对比,数据够多的话,才能看出来,冒泡比较高效。
在百度我看到过一个解释,我觉得这个比我想表达的更加有说服力。
如果有一组排好序的数组  [1,2,3,4,5,6]  再用选择排序法和冒泡法,那肯定是冒泡法先执行完,
因为冒泡法只要执行一趟(运用相对比较),而选择要执行五趟(用的是绝对比较);
从这就可以看出冒泡法比选择排序法的效率要高!

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 从错误中学习!+1鼓励!

查看全部评分

回复 使用道具 举报
app297 发表于 2014-1-12 21:14
从图上面来看, 冒泡排序的规则是相邻的2个 对比,而选择是 先确定一个,然后依次和后面的每一个来对比, ...

你这理解不对,选择排序法的效率会高于冒泡,冒泡是效率最糟糕的排序算法。
回复 使用道具 举报
xu6148152 发表于 2014-1-12 21:30
你这理解不对,选择排序法的效率会高于冒泡,冒泡是效率最糟糕的排序算法。 ...

多谢。 百度哪个人把我坑了。  我怎么觉得自己画着画着 都说服不了自己了呢。
回复 使用道具 举报
xu6148152 发表于 2014-1-12 21:30
你这理解不对,选择排序法的效率会高于冒泡,冒泡是效率最糟糕的排序算法。 ...

多谢。 百度哪个人把我坑了。  我怎么觉得自己画着画着 都说服不了自己了呢。
回复 使用道具 举报
app297 中级黑马 2014-1-12 21:43:21
7#
xu6148152 发表于 2014-1-12 21:30
你这理解不对,选择排序法的效率会高于冒泡,冒泡是效率最糟糕的排序算法。 ...

多谢。 百度哪个人把我坑了。  我怎么觉得自己画着画着 都说服不了自己了呢。
回复 使用道具 举报
其实我们可以用long time = System.curruntTimeMillis();写一个模板(运用模板模式)测试下排序的时间。最简单直观。
  1. public abstract class ProgramTimeTemplet {
  2.         // 具体的操作
  3.         public long getTime() {
  4.                 long start = System.currentTimeMillis();
  5.                 code();
  6.                 long end = System.currentTimeMillis();
  7.                 return (end - start);
  8.         }
  9.         // 抽象的代码方法
  10.         public abstract void code();
  11. }
复制代码

在写一个类去继承抽象类,重写code()方法,将排序算法代码写到code()方法中。再写一个测试类测试下就可以了。可以比较排序方法的效率。注意:数组里面的元素要尽可能的多,不然看不出什么区别的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马