
数据结构 算法
文章平均质量分 64
ALonWol
这个作者很懒,什么都没留下…
展开
-
[Elementary-Algorithms/0]最小可用ID:改进一的学习理解
作者GitHub主页。里边可以下载到英文版的PDF文件,中文版的出书了,没提供下载。 最小ID问题就是:在一个含有N个非负整数的列表中找到一个最小的且不在该列表中的非负整数。最普通的做法就是循环遍历。然后作者提到了一个改进就是: // 文字截自原中文版PDF,之前下载到的,贴一点应该问题不大 改进这一解法的关键基于这一事实:对于任何n个非负整数x1 , x2 , ..., xn , 如...原创 2018-04-16 23:50:36 · 447 阅读 · 0 评论 -
[Elementary-Algorithms/3]第n个丑数:改进二的学习理解
可以看出,这些改进都是从发现问题->找到方法->解决问题入手的,发现问题就是发现已存在的解法的不足:例如暴力解法中,需要验证第1500个丑数之前的所有正整数,验证方法是不断地求余取整,这些操作效率很低,于是改进一就从相反方向入手,直接生成丑数,直到第1500个,其中用到了支持弹出第一个元素和有序插入元素这两个操作的线性数据结构,找到这个方法后,就用这个方法解决了问题。但是,改进一中,元...原创 2018-04-30 23:27:48 · 236 阅读 · 0 评论 -
几个线性数据结构的简单实现-list/set/queue
学《elementary-algorithms》的PART 1需要用到,所以就自己简单实现了一下,用的是C语言,数据结构的操作也不全,只是实现了需要用到的部分。代码风格借鉴了之前学过的一个开源2D引擎-Orx Engine,前缀wtl是字母WangTaL的缩写,是廖望塔的意思。代码在codeblocks17下编译通过,gcc7编译不过。 list.h单链表的头文件 #ifndef _LIS...原创 2018-05-01 00:35:21 · 357 阅读 · 0 评论 -
[Elementary-Algorithms/2]第n个丑数:改进一的学习理解
暴力解法就不看了,以及丑数百度百科。 先看改进一的描述(文字来自原文): 在上面的暴力解法中,取模运算和除法运算很耗时。并且这些运算被循环执行了很多次。 我们可以转换一下思路,不再检查一个数是否仅含有2、3或5的因子,而是从这三个因子 中构造需要的整数。 我们从1开始,分别乘以2或3或5来生成整数。这样问题就变成如何依次生成丑数。我们 可以使用队列这种数据结构来解决这个问题。 队列从一侧放...原创 2018-04-25 00:09:45 · 267 阅读 · 0 评论 -
[Elementary-Algorithms/1]最小可用ID:改进二的学习理解
改进二涉及到分治思想和递归,不仅省去了那个占空间的标记数组,且同样高效。下面是原文中的改进描述: 我们可以将所有满足xi ≤ ⌊n/2⌋的整数放入一个子序列A';将剩余的其他整 数放入另外一个序列A''。根据公式1,如果序列A'的长度正好是⌊n/2⌋,这说明 前一半的整数已经“满了”,最小的可用整数一定可以在A''中递归地找到。否 则,最小的可用整数可以在A'中找到。总之,通过这一划分,问题...原创 2018-04-21 00:25:47 · 361 阅读 · 0 评论 -
[Elementary-Algorithms/4]二叉搜索树
一般讲数据结构和算法的书都是先讲链表的,还好这次看的书的作者没有从链表开始,之前学数据结构就是学了链表,后面的树就没看下去了:)这次终于开始接触树这种数据结构。二叉搜索树是最简单的树结构,学完后感觉并没有比链表难理解多少。 本节主要记录下对二叉搜索树的创建、插入、删除、查找、遍历、前驱后继等操作的理解。具体的二叉搜索树定义和那些操作的定义看原书就行了,作者讲的很清楚。原书的电子版在此系列的第一篇...原创 2018-05-21 00:23:30 · 254 阅读 · 0 评论 -
[Elementary-Algorithms/5]插入排序的进化
这节作者讲了最简单的排序算法-插入排序,以及排序算法的改进。也分改进一、改进二和最终改进,但是由于整节都比较简单,就记录在一篇文章中,不分开记录了。代码中涉及到简单的递归、二分查找、链表和上节学的二叉搜索树。作者细讲的内容就不贴出来了,主要是把写的代码贴出来讲下。 其中两个头文件可在这看到wtlSet.h/wtlBSTree.h。 /* * File: wtlInsertionSort....原创 2018-05-22 00:06:00 · 279 阅读 · 0 评论 -
[Elementary-Algorithms/6]并不复杂的红黑树
ji原创 2018-06-09 23:04:32 · 257 阅读 · 0 评论