加载中
排序算法08 希尔(shell)排序

希尔排序是很重要的一种排序思想,是第一个打破排序算法时间复杂度不低于O(N2)说法的排序算法。 希尔排序思想并不复杂,实现起来也不难。 简单的希尔排序 //先来分析下希尔排序的思想吧,这可...

2015/01/06 23:04
73
排序算法08 快速排序及其优化(03)

三、再加优化的快速排序(改交换为替换) 前面的优化其实也不是怎么合理,在数据量小和数据分布非基本有序的时候效果不明显。如果采用九个或者更多的数来作为pivot取值参考的话,虽然取得中间...

2014/12/12 22:06
70
排序算法07 快速排序及其优化(02)

二、稍加优化的快速排序(pivot选取) 前面的代码基本实现了快速排序的思想,但是不够优化。对于已经基本有序的序列,每次都是取第一个作为pivot,容易造成分块的不均匀的。可能分块的效果的...

2014/12/12 22:02
89
排序算法06 快速排序及其优化(01)

快速排序本想在ubuntu下来写,用g++来编译的。无奈虚拟机里的版本太低,使用到一些库的时候都不行,所以还有一些凌乱。 还是在code::block下写的,过程比较让人郁闷就是啦。random这个头文件...

2014/12/12 21:59
95
排序算法05 插入排序及其优化(01)

排序算法05 插入排序及其优化 插入排序是一种比较经典的排序算法,具体思想如下 //插入排序的思想也简单,就是每次从无序的集合中取出一个元素,插入到已有序的序列中的恰当位置 //比如有一个...

2014/12/06 19:56
52
C++封装链表list的简单实现(双向)

C++封装一个简单的linklist实现。本来没有写的意思的,做一道题目顺便就稍稍写了一下。 简单的做了一下,只实现了几个常用的功能而已。没有做迭代器,有点麻烦。只是写写而已,平时用还是STL...

2014/12/06 19:50
316
排序算法04 选择排序及其优化(02)

二、简单的选择排序优化,双向选择排序 上面的简单选择排序,每次只能选出一个极值来交换,效率比较低。我们参考之前冒泡排序的双向冒泡,如果这里改用双向的选择,是不是效率有了极大的提高...

2014/12/02 22:20
129
排序算法03 选择排序及其优化(01)

今天开始写选择排序,选择排序这个效率并不高,写起来也比冒泡算法稍微难搞一点,不过它每次至多交换一次,在某些只需要选择最大或者最小的几个元素的时候是比较实用的。 一、简单的选择排序...

2014/12/02 22:17
530
排序算法02 冒泡排序及其优化(02)

四、简单冒泡优化版本三(最后交换位置记录来确定是否结束排序)   上面的版本二的优化还是使用了之前版本一的结束标志来判断是否结束排序,其实可以直接是用交换位置记录确定是否发生了...

2014/11/24 18:12
159
排序算法01 冒泡排序及其优化(01)

下面先粘贴一段代码中的注释,本来不习惯直接在注释中写这么些东西,只是上次装系统的时候,office软件没有装好,就直接写在注释中了。 //冒泡排序的思想比较简单,简而言之就是将元素一个个...

2014/11/24 18:06
105

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部