
数据结构与算法基础
记录学习算法基础的笔记以及总结。
一些常用的数据结构的实现以及应用。
一些基础算法的实现以及应用。
迷途小书童、
这个作者很懒,什么都没留下…
展开
-
数据结构与算法:二分算法
Ⅰ.二分算法:二分算法是非常精妙的算法,可以将许许多多问题转化为判定的问题。二分的应用范围十分广泛,并不仅仅应用在单调区间上查找数值。而且二分算法经常与离散化配套使用,是居家旅行必备的算法。什么时候可以对问题进行二分?二分的本质并不是单调性,而是我们通过某种判定,使得区间的前半部全部满足而后半部分全部不满足,此时就可以二分了。二分算法虽然有模板且代码量短,但是许多细节需要注意,非常容易陷入死循环或者数组越界的麻烦(整数域的二分)。我们最好深刻理解,我们通过二分最后得出的位置究竟是代表什么意义。(本人原创 2020-07-03 18:45:41 · 354 阅读 · 0 评论 -
数据结构与算法:归并排序
Ⅰ.归并排序(MergeSort):归并排序是一种非常常见而且应用较为广泛的排序算法。它的最坏时间复杂度是O(N*logN)。它是一种基于分治思想的排序算法。Ⅱ.归并排序算法的思路:归并排序包含“归”与“并”。“归”代表递归, “并”代表合并。这两个关键字涵盖了归并排序的两大核心操作。1.不断地将区间对半分割,并递归下去。2.将递归返回后的子区间合并。Ⅲ.归并排序算法的玄学思考:归并排序的快是基于 “合并两个有序子区间会很快”的思路:合并两个有序子区间,我们只需借助第三个数.原创 2020-07-02 14:23:48 · 193 阅读 · 0 评论 -
数据结构与算法:快速选择算法
Ⅰ.快速选择算法介绍:快速选择算法思路几乎与快速排序算法相同。快速选择算法可以快速求出序列中第k小的元素。Ⅱ.快速选择算法的思路:快速选择算法可以看作是快速排序算法的“一半”。快速排序算法可以得出整个序列的大小顺序,但是,现在我只想知道第k小的元素是什么,其余的不关心。求第k小的元素而把整个序列排序又太过小题大作。那么,现在进行的是快速排序算法,假设我选取的枢纽元是p。在双指针交换元素之后,[ l, j ]区间是全部小于p的元素, [ j + 1, r ]区间是全部大于p的元素。.原创 2020-07-02 13:23:31 · 349 阅读 · 0 评论 -
数据结构与算法:快速排序算法
1.简单介绍快速排序算法。2.快速排序算法的实现思路。3.快速排序算法的代码实现。原创 2020-07-02 12:37:40 · 231 阅读 · 0 评论