Fork me on GitHub

数据结构与算法(二)

上一节讲了数组、链表、栈、队列的数据结构,详情请见数据结构与算法(一)。这一节要讲的是散列表。我举个例子,假设我们班有54个学生,现在要对这些学生进行编号,编号规则为4位数组,比如0236,其中02为班级号,36为学生编号。那我们怎么做呢?

我们可以截取编号的后两位,即1-54。把编号为 1 的学生放到数组中下标为 1 的位置;编号为 2 的学生放到数组中下标为 2 的位置。以此类推,编号为 k 的学生放到数组中下标为 k 的位置。这样编号与下标一一对应,当我们要获取编号为x的学生,只需要将数组下标为x的数据取出来就好啦,根据之前学习的知识,可知时间复杂度为O(1)。

阅读更多...

数据结构与算法(一)

为什么要学数据结构与算法?

在工作中,我们总是喜欢高谈阔论,谈论高性能、高可用、微服务等,很少有人能潜心钻研基础知识,提升自己代码层面的编程能力。数据结构是一组数据的存储结构,算法是操作数据的方法,简单的说,数据结构是为算法服务的,算法是要作用在特定的数据结构上的。数据结构与算法就像是一座大厦的地基,地基够“坚实”,我们的技术高度才能达到更高。无论你是想在工作中更进一步,还是想寻一份更好的工作,数据结构和算法都是你必修的“内功”。接下来我会根据自己所学加以自己的理解,挑选以下的内容由浅入深地带你进入数据结构与算法的世界。

8 个数据结构:数组、链表、栈、队列、散列表、树(二叉树、堆、多路查找树、Trie树)、跳表、图
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

那有人说了,这些内容在书上都可以学习到啊,你这个有什么优势呢?

阅读更多...
  • Copyrights © 2020 RabbitGY
  • 访问人数: | 浏览次数:

请我喝杯Mojito吧~

支付宝
微信