04 2020 档案

摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 字典 我们翻阅书籍时,很多时候都要查找目录,然后定位到我们要的页数,比如我们查找某个英文单词时,会从英语字典里查看单词表目录,然后定位到词的那一页。 计算机中,也有这种需求。 一、字典 字典 阅读全文
posted @ 2020-04-18 12:22 陈星星哦 阅读(895) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 冒泡排序 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单。 冒泡排序属于交换类的排序算法。 一、算法介绍 现在有一堆乱序的数,比如 阅读全文
posted @ 2020-04-18 12:18 陈星星哦 阅读(824) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 归并排序 归并排序是一种分治策略的排序算法。它是一种比较特殊的排序算法,通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列。 归并排序首先由著名的现代计算机之父John 阅读全文
posted @ 2020-04-18 12:16 陈星星哦 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 哈希表:散列查找 一、线性查找 我们要通过一个键key来查找相应的值value。有一种最简单的方式,就是将键值对存放在链表里,然后遍历链表来查找是否存在key,存在则更新键对应的值,不存在则 阅读全文
posted @ 2020-04-18 12:13 陈星星哦 阅读(1375) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学。在这里,我们区分开左倾红黑树和普通红黑树 阅读全文
posted @ 2020-04-18 12:12 陈星星哦 阅读(509) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 列表 一、列表 List 我们又经常听到列表 List数据结构,其实这只是更宏观的统称,表示存放数据的队列。 列表List:存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出 阅读全文
posted @ 2020-04-18 12:11 陈星星哦 阅读(706) 评论(1) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 链表 讲数据结构就离不开讲链表。因为数据结构是用来组织数据的,如何将一个数据关联到另外一个数据呢?链表可以将数据和数据之间关联起来,从一个数据指向另外一个数据。 一、链表 定义: 链表由一个 阅读全文
posted @ 2020-04-18 12:10 陈星星哦 阅读(1246) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来。 一、复杂度主方法 主方法,也可以叫主定理。对于那 阅读全文
posted @ 2020-04-18 12:09 陈星星哦 阅读(794) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 算法复杂度及渐进符号 一、算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间。 那么一个算 阅读全文
posted @ 2020-04-18 12:07 陈星星哦 阅读(824) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 使用标准库 一、避免重复造轮子 官方提供了很多库给我们用,是封装好的轮子,比如包fmt,我们多次使用它来打印数据。 我们可以查看到其里面的实现: package fmt func Print 阅读全文
posted @ 2020-04-18 12:05 陈星星哦 阅读(1167) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 基础知识 学习数据结构和算法。我们要知道一些基础的知识。 一、什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等。在计算机科技里, 阅读全文
posted @ 2020-04-18 12:02 陈星星哦 阅读(795) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 分治法和递归 在计算机科学中,分治法是一种很重要的算法。 字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题。 直到最后子问题可以简单的直接求解,原问题的解即子问 阅读全文
posted @ 2020-04-18 12:01 陈星星哦 阅读(858) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 常见数据结构及算法 数据结构主要用来组织数据,也作为数据的容器,载体。 各种各样的算法,都需要使用一定的数据结构来组织数据。 常见的典型数据结构有: 链表 栈和队列 树 图 上述可以延伸出各 阅读全文
posted @ 2020-04-18 11:59 陈星星哦 阅读(551) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 栈和队列 一、栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序。更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了 阅读全文
posted @ 2020-04-18 11:57 陈星星哦 阅读(976) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 选择排序 选择排序,一般我们指的是简单选择排序,也可以叫直接选择排序,它不像冒泡排序一样相邻地交换元素,而是通过选择最小的元素,每轮迭代只需交换一次。虽然交换次数比冒泡少很多,但效率和冒泡排 阅读全文
posted @ 2020-04-18 11:56 陈星星哦 阅读(756) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 排序算法 人类的发展中,我们学会了计数,比如知道小明今天打猎的兔子的数量是多少。另外一方面,我们也需要判断,今天哪个人打猎打得多,我们需要比较。 所以,排序这个很自然的需求就出来了。比如小明 阅读全文
posted @ 2020-04-18 11:55 陈星星哦 阅读(405) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 希尔排序 1959 年一个叫Donald L. Shell (March 1, 1924 – November 2, 2015)的美国人在Communications of the ACM 阅读全文
posted @ 2020-04-18 11:54 陈星星哦 阅读(575) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 插入排序 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序。就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复。 插入排序属于插入类排序算法。 除了我以外, 阅读全文
posted @ 2020-04-18 11:53 陈星星哦 阅读(604) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 二叉查找树 二叉查找树,又叫二叉排序树,二叉搜索树,是一种有特定规则的二叉树,定义如下: 它是一颗二叉树,或者是空树。 左子树所有节点的值都小于它的根节点,右子树所有节点的值都大于它的根节点 阅读全文
posted @ 2020-04-18 11:52 陈星星哦 阅读(853) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 快速排序 快速排序是一种分治策略的排序算法,是由英国计算机科学家Tony Hoare发明的, 该算法被发布在1961年的Communications of the ACM 国际计算机学会月刊 阅读全文
posted @ 2020-04-18 11:51 陈星星哦 阅读(1672) 评论(1) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 优先队列及堆排序 堆排序(Heap Sort)由威尔士-加拿大计算机科学家J. W. J. Williams在1964年发明,它利用了二叉堆(A binary heap)的性质实现了排序,并 阅读全文
posted @ 2020-04-18 11:50 陈星星哦 阅读(827) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 AVL树 二叉查找树的树高度影响了查找的效率,需要尽量减小树的高度,AVL树正是这样的树。 系列文章入口 我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读 阅读全文
posted @ 2020-04-18 11:49 陈星星哦 阅读(537) 评论(0) 推荐(1) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 2-3-4树和普通红黑树 某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学。在这里,我们区 阅读全文
posted @ 2020-04-18 11:48 陈星星哦 阅读(475) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 树 树是一种比较高级的基础数据结构,由n个有限节点组成的具有层次关系的集合。 树的定义: 有节点间的层次关系,分为父节点和子节点。 有唯一一个根节点,该根节点没有父节点。 除了根节点,每个节 阅读全文
posted @ 2020-04-18 11:45 陈星星哦 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 并发、协程和信道 Golang语言提供了go关键字,以及名为chan的数据类型,以及一些标准库的并发锁等,我们将会简单介绍一下并发的一些概念,然后学习这些Golang特征知识。 一、并发介绍 阅读全文
posted @ 2020-04-18 11:29 陈星星哦 阅读(599) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 可变长数组 因为数组大小是固定的,当数据元素特别多时,固定的数组无法储存这么多的值,所以可变长数组出现了,这也是一种数据结构。在Golang语言中,可变长数组被内置在语言里面:切片slice 阅读全文
posted @ 2020-04-18 11:28 陈星星哦 阅读(1012) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 接口 在Golang世界中,有一种叫interface的东西,很是神奇。 一、数据类型 interface 如果你事前并不知道变量是哪种数据类型,不知道它是整数还是字符串,但是你还是想要使用 阅读全文
posted @ 2020-04-18 11:27 陈星星哦 阅读(456) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 流程控制语句 计算机编程语言中,流程控制语句很重要,可以让机器知道什么时候做什么事,做几次。主要有条件和循环语句。 Golang只有一种循环:for,只有一种判断:if,还有一种特殊的swi 阅读全文
posted @ 2020-04-18 11:24 陈星星哦 阅读(334) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 结构体和方法 一、值,指针和引用 我们现在有一段程序: package main import "fmt" func main() { // a,b 是一个值 a := 5 b := 6 f 阅读全文
posted @ 2020-04-18 11:23 陈星星哦 阅读(739) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 包、变量和函数 一、举个例子 现在我们来建立一个完整的程序main.go: // Golang程序入口的包名必须为 main package main // import "golang" 阅读全文
posted @ 2020-04-18 11:22 陈星星哦 阅读(596) 评论(0) 推荐(0) 编辑
摘要:我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。 数据结构和算法在计算机科学里,有非常重要的地位。此系列文章尝试使用 Golang 编程语言来实现各种数据结构和算法,并且适当进行算法分析。 我们会先简单学习一下Golang,然后进入计算机程 阅读全文
posted @ 2020-04-16 10:48 陈星星哦 阅读(1049) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示