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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© danielchung6600 中级黑马   /  2016-6-25 00:48  /  375 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

冒泡,选择,希尔排序都是各有什么特点,都是什么原理,求大神总结。

3 个回复

倒序浏览
同求~~~~~~~~~~~~~~~~
回复 使用道具 举报
一、冒泡排序
基本思想是:两两比较相邻记录的关键字,如果反序则交换 
冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2)  
改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = flase),说明排序已经完成 
改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok 
二、简单选择排序
通过n-i次关键字之间的比较,从n-i+1 个记录中选择关键字最小的记录,并和第i(1<=i<=n)个记录交换之 
 尽管与冒泡排序同为O(n^2),但简单选择排序的性能要略优于冒泡排序 
三、希尔排序
先将整个待排元素序列分割成若干子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,
然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次
直接插入排序。其时间复杂度为O(n^3/2),要好于直接插入排序的O(n^2) 
回复 使用道具 举报
楼上理解的好深刻啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马