
数据结构
飞虹舞毓
这个作者很懒,什么都没留下…
展开
-
并不简单的二分查找
并不简单的二分查找1、什么是二分查找2、复杂度分析3、习题讲解4、使用二分查找注意的点5、参考资料文章同步发表于,知乎专栏和掘金社区算法与数据结构1、什么是二分查找二分查找是一种非常有效的查找方式,我们日常生活中也经常用到。简单来说就是在有序的集合中查找目标值。注意这里有个前提的条件就是有序。下面是二分查找中常见的一些术语目标 Target —— 你要查找的值 索引 Index ——...原创 2019-12-18 23:53:13 · 339 阅读 · 0 评论 -
归并排序
基本思想代码实现数据交换示意图代码优化基本思想是利用归并的思想进行排序的放法,它的原理是假设初始序列含有n个记录,则可以看成n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2n/2个长度为2或者1的有序子序列,然后在两两归并,直到得到一个长度为n的有序序列为止。 排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 归并排序 O(nlogn)O(原创 2016-07-22 16:06:32 · 446 阅读 · 0 评论 -
快速排序
快速排序原创 2016-07-19 10:12:17 · 358 阅读 · 0 评论 -
二分查找
二分查找主要思想代码进阶二分查找主要思想前提:线性表中的记录必须是关键码有序,而且是从小到大,线性表必须采取顺序存储 折半查找的主要思想是:在有序表中,取中间值作为比较对象,若给定值与中间记录的关键字相等,则查找成功,若给定的值小于中间记录的关键字,则在中间记录的左半区继续查找,否则在右半区继续查找,若所有区域没有记录,则查找失败。代码class Solution { /**原创 2016-07-24 10:43:35 · 619 阅读 · 0 评论 -
堆排序
堆的定义堆排序算法代码堆的定义堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子节点的值,称为大顶堆,反之则称为小顶堆。想升序的话就是用大顶堆,想降序就是用小顶堆。堆排序算法堆排序就是利用堆进行排序,基本思想是将待排序的系列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根结点。将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余n−1n-1个序列重原创 2016-08-17 10:53:19 · 553 阅读 · 0 评论