数据结构和算法
文章平均质量分 85
xiaolyuh123
凡是过去,皆为序幕
展开
-
排序算法——插入排序
思想插入排序的思想有点像打扑克抓牌的时候,我们插入扑克牌的做法。想象一下,抓牌时,我们都是把抓到的牌按顺序放在手中。因此每抓一张新牌,我们都将其插入到已有的排好序的手牌当中,注意体会刚才的那句话。也就是说,插入排序的思想是,将新来的元素按顺序放入一个已有的有序序列当中。举个例子可能更容易理解一些,假设有这样一系列数字: 8 2 4 9 3 6 首先我们考虑数字2,假设后转载 2016-12-09 18:06:07 · 251 阅读 · 0 评论 -
排序算法——选择排序
思想还是先来看看选择排序的思想。选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了。可以很清楚的发现,选择排序是固定位置,找元素。相比于插入排序的固定元素找位置,是两种思维方式。不过条条大路通罗马,两者的目的是一样的。代码 for(int i转载 2016-12-09 18:03:16 · 233 阅读 · 0 评论 -
排序算法——冒泡排序
思想同之前介绍的两种排序方式一样,冒泡排序也是最简单最基本的排序方法之一。冒泡排序的思想很简单,就是以此比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。举例分析说明一下,如下数据:2 7 4 6 9 1 首先比较最后两个数字,发现1比9小,于是前移2 7 4 6 1 9 然后比较6和12 7 4 1 6转载 2016-12-09 18:01:51 · 235 阅读 · 0 评论 -
排序算法——快速排序
思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即转载 2016-12-09 18:00:31 · 257 阅读 · 0 评论 -
二叉树遍历算法
二叉树遍历算法有4种,先序、中序、后序和层序遍历先序遍历:先根、后左、再右中序遍历:先左、后根、再右后序遍历:先左、后右、再根层序遍历:从上往下,从左往右先序遍历:A → B → D → C中序遍历:B → D → A → C后续遍历:D → B → C → A层序遍历:A → B → C → D先序遍历:A → B → D → C /** * 先序遍历递...原创 2019-11-28 09:53:51 · 358 阅读 · 0 评论 -
排序算法——堆排序
思想堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的概念。堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求,其实很好理解。有了上面的定义,我们可以得知,处于最大堆的根节点的元素一定是这个堆中的最大值。其实我们的堆排序算法就是抓住了堆的这一特点,每次都取堆顶的元素,将其放在序列最后面,然后转载 2016-12-09 18:11:09 · 378 阅读 · 0 评论 -
数据结构和算法入门
数据结构就是指一组数据的存储结构,算法就是操作这组数据的一组方法。数据结构和算法不用死记,我们要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”,尽量手写实现。数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以时间和空间就是衡量一个算法执行效率的总要指标。这段代码的时间T(n)=2+2n,这里的低阶、常量、系数都不会左右代码执行时间的增长趋势,所以可以直接忽略,即这段代码的时间复杂度为O(n)。O(1)、O(lognlognlogn原创 2022-06-16 16:20:21 · 186 阅读 · 0 评论 -
数据结构和算法入门
数据结构就是指一组数据的存储结构,算法就是操作这组数据的一组方法。数据结构和算法不用死记,我们要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”,尽量手写实现。数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以时间和空间就是衡量一个算法执行效率的总要指标。这段代码的时间T(n)=2+2n,这里的低阶、常量、系数都不会左右代码执行时间的增长趋势,所以可以直接忽略,即这段代码的时间复杂度为O(n)。O(1)、O(lognlognlogn原创 2022-06-13 20:41:50 · 230 阅读 · 0 评论