排序算法
文章平均质量分 88
lqf1403
勤学如春起之苗,不见其长,日有所增。辍学如磨刀之石,不见其损,日有所亏。
展开
-
算法--排序算法的介绍与总结(四)
上一篇文章介绍了堆排序,这篇文章介绍下shell排序算法。2.7、Shell排序算法在介绍shell排序算法之前,我们先回顾下直接插入排序算法的流程: 1、首先对数组的前两个数据进行从小到大的排序。 2、接着将第3个数据与排好序的两个数据比较,将第3个数据插入合适的位置。 3、然后将第4个数据插入已排好序的前3个数据中 4、不断重复上述过程,直到把最后一个数据插入合适的原创 2015-04-19 20:06:31 · 578 阅读 · 0 评论 -
算法--排序算法的介绍与总结(三)
上一篇文章讲过了快速排序,这篇文章主要讲讲堆排序2.5、堆排序算法1、什么是堆 堆是一种树结构,更准确的说是完全二叉树。并且每个非叶节点的数据大于或等于(小于或等于)其左、右子结点的数据,这样堆结构的根结点为最大值(最小值),堆称为最大堆(最小堆)。所以可以归纳为:堆是一个完全二叉树,非叶结点与左右结点的数据有一定的大小关系。 2、什么是堆排序 完整的堆排序需要经过反复的两个步骤:构原创 2015-04-18 11:40:20 · 1421 阅读 · 1 评论 -
算法--排序算法的介绍与总结(一)
本文介绍了排序算法的基本分类,各种排序算法的思路、代码实现以及对他们效率的比较原创 2015-04-17 11:23:30 · 1396 阅读 · 0 评论 -
算法--排序算法的介绍与总结(二)
在前一篇文章中介绍了排序算法的分类,以及三种基本的排序方法:冒泡排序、选择排序、插入排序。现来介绍剩下的几种排序方法。2.4、快速排序算法快速排序算法和冒泡排序算法类似,都是基于交换排序思想的。快速排序算法对冒泡排序算法进行了改进,从而具有更高的执行效率。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-Conquer转载 2015-04-18 09:55:40 · 1015 阅读 · 0 评论 -
算法--排序算法的介绍与总结(五)
前面介绍了排序算法的几种排序方法,现在再介绍下算法的事件复杂度。2.8算法的时间复杂度一个算法是由控制结构(顺序、分支、和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题来说是最基本的原操作,以该基本操作重复执行的次数作为算法的时间度量。 1、时间频度 一个算法执行所耗费的时间,从原创 2015-04-29 13:22:41 · 870 阅读 · 0 评论