上一篇文章我们讲完了归并排序,对于分而治之和递归思想应该都有了一定的理解,这篇文章我们将介绍道被认为是排序算法中最容易出错,但是又是最喜欢使用的一中排序方式,快速排序。对于快速排序而言我们必须抓住几个关键点就是基准值的选取,以及它在递归思想的运用过程中需要注意的事项。我们先看下面的图片了解一下快速排 ...
分类:
编程语言 时间:
2017-11-30 21:46:33
阅读次数:
276
我们不得不承认一个事实,java学习过程中如果我们掌握了各种编程手段和工具,确实可以做一些开发,这就是一些培训机构敢告诉你几个月就能掌握一门语言的原因。但是随着时间的发展,我们总会感觉,这一类人如果不提升自己,最后也只会是一个码农。技术会日新月异,随时在发展更新换代,但是这几十年,有谁说过算法会过时 ...
分类:
编程语言 时间:
2017-11-30 15:15:10
阅读次数:
210
scrapy的架构分析 1、Scrapy Engine(Scrapy引擎) Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。 2、Scheduler(调度) 调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求 ...
分类:
其他好文 时间:
2017-11-29 18:31:40
阅读次数:
121
1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快排 6.归并排序 ...
分类:
编程语言 时间:
2017-11-28 01:46:11
阅读次数:
222
CDQ分治是干什么用的:顶一层数据结构。 基本思想:我们要解决一系列问题,这问题一般包含修改和查询操作,可以把这些问题按发生时间排成一个序列,用一个区间[L,R]表示。 1.分:对于一个[l,r]区间,我们把它分成[l,mid],[mid+1,r]两区间处理 2.合:对于一个[l,r]区间,统计[l ...
分类:
其他好文 时间:
2017-11-27 23:30:21
阅读次数:
172
l表示最左边的数的下标,r-1表示最右边的数的下标。 ...
分类:
编程语言 时间:
2017-11-27 00:02:13
阅读次数:
258
独白: 希尔排序是经过优化的插入排序算法,之前所学的排序在空间上都是使用列表本身。而归并排序是利用增加新的空间,来换取时间复杂度的减少。这俩者理念完全不一样,注定造成的所消耗的时间不同以及空间上的不同。 归并排序涉及到递归的使用,需要理解其中精髓才能更好了解归并排序,以及其他应用到递归的算法。理解其 ...
分类:
编程语言 时间:
2017-11-25 21:43:20
阅读次数:
163
LeetCode148 SortList 题意:给定一个链表,要求用O(n log n) 的复杂度进行排序。 直观的链表归并排序: 快速排序,因为是链表不能用下标快速访问,挖坑发不适用,这里采用《算法导论》中的单向双指针法,end记录边界不采用None截断 ...
分类:
编程语言 时间:
2017-11-25 17:25:29
阅读次数:
125
线段树: 这个星期是线段树的专题,真心觉得线段树难,但是还是要硬着头皮看!线段树是将区间逐渐二分得到的一种树状结构,运用了包括归并排序内的很多算法! 线段树的基本操作: 1.定义 2.建树 3.点修改 4.区间求和 1.定义: struct Tree{ int l, r; long long sum ...
分类:
其他好文 时间:
2017-11-25 11:11:13
阅读次数:
203
思路图来自:https://www.cnblogs.com/fanwencong/p/5910503.html 这里我们依然用顺序表来实现这个排序算法。 顺序表一样是0号位不用。 这里我们的归并排序是二路归并,思路就是把序列一直分解成两份,直至分到子序列的长度为1,那么显然子序列已经有序,然后再不停 ...
分类:
编程语言 时间:
2017-11-22 14:26:02
阅读次数:
207