摘要: 1 二分查找的思想 每次将待查找元素与区间中间元素进行比较,将查找区间缩减为之前的一半,直到找到待查找元素或查找区间大小为0。 2 实现及关键点 2.1 关键点 1)循环退出条件 循环退出条件为low <= high,其中low为查找区间的下边界、high为上边界,而不是low < high。如果条 阅读全文
posted @ 2019-05-07 15:03 zpchya 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 这三种排序算法分别是桶排序、计数排序和基数排序,之所以它们的时间复杂度能到达O(n),是因为它们都是非基于比较的排序算法,不涉及元素之间的比较操作。 1 桶排序 1.1 原理 将待排数据元素分配到几个有序的桶中,然后对每个桶中的数据元素分别进行排序,每个桶中的数据元素有序后按桶的顺序将数据元素依次取 阅读全文
posted @ 2019-05-02 11:49 zpchya 阅读(19961) 评论(0) 推荐(1) 编辑
摘要: 上一个排序随笔中分析了三种时间复杂度为O(n2)的排序算法,它们适合小规模数据的排序;这次我们试着分析时间复杂为O(nlogn)的排序算法,它们比较适合大规模的数据排序。 1 归并排序 1.1 原理 将待排序列划分为前后两部分,直到子序列的区间长度为1;对前后两部分分别进行排序,再将排好序的两部分合 阅读全文
posted @ 2019-04-30 21:35 zpchya 阅读(17741) 评论(0) 推荐(0) 编辑
摘要: 如果你每天的状态任然是忙忙碌碌,却又感觉没有充实感,停下来看看这篇文章,自己好好的思考,希望对大家有用! 文章链接:https://westlifecc.com/10-%E7%A7%8D%E6%9C%80%E4%BD%B3%E9%AB%98%E6%95%88%E6%97%B6%E9%97%B4%E7 阅读全文
posted @ 2019-04-27 20:46 zpchya 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 最近在看快速排序的内容,感觉自己理解的不太好,所以找英文阅读资料的时候,干脆弄一篇关于快速排序的博客之类的,http://www.algolist.net/Algorithms/Sorting/Quicksort。大家也可以参考一下,关于快速排序的核心划分区域做了比较详细的说明。 快速排序用到的是分 阅读全文
posted @ 2019-04-27 04:05 zpchya 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1 如何评价、分析一个排序算法? 很多语言、数据库都已经封装了关于排序算法的实现代码。所以我们学习排序算法目的更多的不是为了去实现这些代码,而是灵活的应用这些算法和解决更为复杂的问题,所以更重要的是学会如何评价、分析一个排序算法并在合适的场景下正确使用。 分析一个排序算法,主要从以下3个方面入手: 阅读全文
posted @ 2019-04-23 22:08 zpchya 阅读(6005) 评论(0) 推荐(1) 编辑
摘要: 方法一:这是我一开始的想法,将链表L2的各个元素与链表L1的元素进行逐一比较,将L2中的数据元素插入L1中的合适位置。 时间复杂度:O(m+n);空间复杂度:O(1) 1)首先,可能要对第一个元素进行插入操作,所以为了统一插入操作,需要创建哨兵; 2)循环终止条件是L2遍历完即nullptr == 阅读全文
posted @ 2019-04-22 22:11 zpchya 阅读(212) 评论(0) 推荐(0) 编辑
摘要: /* 版权所有(C) 1991-2019 自由软件资金会。 该文件属于是GUN C语言函数库,由Douglas C. Schmidt(schmidt@ics.uci.edu)所写。 GUN C语言函数库是自由软件;如果你拥有2.1版本及以后的GUN自由软件基金发布的GUN 小众通用公共许可证,你可以 阅读全文
posted @ 2019-04-21 16:25 zpchya 阅读(1459) 评论(1) 推荐(1) 编辑
摘要: 方法一:先找到旋转点,然后根据目标值重新确定二分查找区域。 时间复杂度:用到两次二分查找,每次二分查找粗略的认为是O(logn),那么时间复杂度为2 * O(logn); 空间复杂度:O(1)。 方法二:根据中间点和其他条件来调整上下边界。其实一开始就想的这个办法,但是写的过程中发现很混乱,所以就写 阅读全文
posted @ 2019-04-18 09:28 zpchya 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 1 队列的定义 队列是只允许在一端(队尾)进行插入操作,而在另一端(队头)进行删除操作的线性表。 2 队列的特点 1)先进先出是队列最大的特点,是应用中非常常见的模型,例如排队; 2)队列也属于线性表,线性表的特性队列都拥有。 3 循环队列的实现及关键点 3.1 关键点 1)队列为空的条件:队头指针 阅读全文
posted @ 2019-04-17 14:58 zpchya 阅读(1072) 评论(0) 推荐(0) 编辑