会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
楚国大夫
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
上一页
1
2
2015年6月21日
排序算法五:随机化快速排序(Randomized quicksort)
摘要: 上一篇提到,快速排序的平均时间复杂度是O(nlgn),比其他相同时间复杂度的堆排序、归并排序都要快,但这是有前提的,就是假定要排序的序列是随机分布的,而不是有序的。实际上,对于已经排好的序列,如果用快速排序时间复杂度是O(n2)。为应对这样的有序序列,于是出现了本篇要讲的随机化快速排序(Random...
阅读全文
posted @ 2015-06-21 23:34 楚国大夫
阅读(2037)
评论(0)
推荐(0)
编辑
2015年6月20日
排序算法四:快速排序(Quicksort)
摘要: 快速排序(Quicksort),因其排序之快而得名,虽然Ta的平均时间复杂度也是O(nlgn),但是从后续仿真结果看,TA要比归并排序和堆排序都要快。快速排序也用到了分治思想。(一)算法实现 1 protected void quicksort(int[] array, int first, int...
阅读全文
posted @ 2015-06-20 23:24 楚国大夫
阅读(199)
评论(0)
推荐(0)
编辑
排序算法三:堆排序(Heapsort)
摘要: 堆排序(Heapsort)是一种利用数据结构中的堆进行排序的算法,分为构建初始堆,减小堆的元素个数,调整堆共3步。(一)算法实现 1 protected void sort(int[] toSort) { 2 buildHeap(toSort); 3 for ...
阅读全文
posted @ 2015-06-20 23:11 楚国大夫
阅读(190)
评论(0)
推荐(0)
编辑
排序算法二:归并排序(Merge sort)
摘要: 归并排序(Merge sort)用到了分治思想,即分-治-合三步,算法平均时间复杂度是O(nlgn).(一)算法实现 1 private void merge_sort(int[] array, int first, int last) { 2 if (first + 1 arra...
阅读全文
posted @ 2015-06-20 22:57 楚国大夫
阅读(263)
评论(0)
推荐(0)
编辑
排序算法一:插入排序(Insertion sort)
摘要: 最近从网易公开课在看麻省理工学院的公开课《算法导论》,感觉还不错,接下来几篇文章所示学习日记了,不准备对算法细节做过多描述,感兴趣的可以自己去看。文章分几篇讲经典排序算法,直接上代码,根据结果对算法性能有个直观了解。本篇先说插入排序(insertion sort)。(一)算法实现 1 protect...
阅读全文
posted @ 2015-06-20 22:35 楚国大夫
阅读(188)
评论(0)
推荐(0)
编辑
楚国大夫的博客开通了
摘要: 博主为什么叫“楚国大夫”?开通博客的初衷是记录编程相关的知识,因为最近发现记忆力大不如前了,刚看过的知识,没几天就忘了,于是取名“程序猿”,因为已经有人注册了,只能放弃;又想到金庸小说里的世外高手,期望自己在这里潜心修炼,能达到他们武学境界之一二,于是选了“扫地僧”、“风清扬”等大神,因为也有人注册...
阅读全文
posted @ 2015-06-20 21:50 楚国大夫
阅读(112)
评论(0)
推荐(0)
编辑
上一页
1
2