![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构/算法
文章平均质量分 77
沙澧
这个作者很懒,什么都没留下…
展开
-
堆排序
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为转载 2012-02-11 20:40:48 · 394 阅读 · 0 评论 -
二分查找
二分查找(二分搜索)又称折半查找,它要求线性表是有序的,并且需要用一维数组进行存储。二分查找的基本思想如下: 假设L[low......high]为当前要查找的区间(假设是递增有序)。 (1)首先确定该区间的中间位置,mid=(low+high)/2; (2)将待查找的key值与L[mid].key进行比较,如果相等,则查找结束;若不等,则在新的区间进行相同的操原创 2012-02-11 20:52:30 · 417 阅读 · 0 评论 -
快速排序
快速排序 1.算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 (1)分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。原创 2012-02-11 20:56:49 · 341 阅读 · 0 评论 -
二叉排序(查找)树
二叉排序树1.定义 二叉排序树(Binary Search Tree)又称二叉搜索(查找)树,其定义如下: (1)若它的左子树非空,则左子树上所有结点的权值都比根结点的权值小; (2)若它的右子数非空,则右子树上所有结点的权值都比根结点的权值大; (3)左、右子树本身又是一棵二叉排序树。以上既是二叉排原创 2012-02-11 21:07:03 · 454 阅读 · 0 评论 -
位图排序
位图排序 位图排序是一种效率极高(复杂度可达O(n))并且很节省空间的一种排序方法,但是这种排序方法对输入的数据是有比较严格的要求(数据不能重复,大致知道数据的范围)。位图排序即利用位图或者位向量来表示集合。举个例子,假如有一个集合{3,5,7,8,2,1},我们可以用一个8位的二进制向量set[1-8]来表示该集合,如果数据存在,则将set相对应的二进制位置1,否则置0.根据给出原创 2012-02-11 21:14:38 · 382 阅读 · 0 评论