随笔分类 -  基础算法

数据结构,简单的算法
摘要:合并排序是一个O(nlogn)的算法,其基本思想就是一个分治的策略,先进行划分,然后再进行合并,下面举个例子。  有这样一组数据,{5,4,1,22,12,32,45,21},如果对它进行合并排序的话,首先将它从中间分开,这样,它就被分成了两个数组{5,4,1,22} {12,32,45,21}.对这两个数组,也分别进行这样的操作,逐步的划分,直到不能再划分为止(每个子数组只剩下一个元素),这样,... 阅读全文
posted @ 2009-11-25 15:17 Springfield 阅读(3233) 评论(14) 推荐(6) 编辑
摘要:插入排序的性能大家都了解了,时间复杂度是O(n2),有没有办法提升他的效率呢? 这里有一个方法,在宏观上可以将插入排序的时间复杂度降低到nlogn。  其思想如下,插入排序中每次将本次取到的数据插入到已排序序列的时候, 都会将有序序列中大于这个数据的元素依次向后移动一个单元,这个过程的时间复杂度就是n,有没有办法简化这个过程呢,其实有一种方法:因为待插入的序列是有序的,所以我们可以使用一个二分查询... 阅读全文
posted @ 2009-11-07 19:10 Springfield 阅读(2310) 评论(10) 推荐(3) 编辑
摘要:说到插入排序,想必大家都不陌生,这里简要的介绍一下。首先,它的思想是这样的,有一组数据,先取出第一个数,把它作为一个有序的数组。然后接着再取一个数,将它放到那个有序数组里的一个合适位置,使得这个数组仍然有序。如此循环下去,每次从原数组中取出一个数,放到有序的数组里。当所有数据都取完了,这个排序也就完成了。  用文字描述可能有些抽象,下面给出一个实例,例如对数组 {32,12,54,32,15} 进... 阅读全文
posted @ 2009-11-06 00:03 Springfield 阅读(2334) 评论(6) 推荐(1) 编辑

点击右上角即可分享
微信分享提示