数据结构和算法在计算机科学里,有非常重要的地位。此系列文章尝试使用 Golang 编程语言来实现各种数据结构和算法,并且适当进行算法分析。
联系作者:
Github: https://github.com/hunterhug
知乎:https://www.zhihu.com/people/chen-xing-xing-57-62-13
系列文章首发于:https://goa.lenggirl.com。
联系作者:
Github: https://github.com/hunterhug
知乎:https://www.zhihu.com/people/chen-xing-xing-57-62-13
系列文章首发于:https://goa.lenggirl.com。
2021年09月27日 堆排序( Heap Sort )由威尔士-加拿大计算机科学家 J. W. J. Williams 在 1964 年发明,它利用了二叉堆 (A binary heap) 的性质实现了排序,并证明了二叉堆数据结构的可用性。同年,美国籍计算机科学家 R. W. Floyd 在其树排序研究的基础上,发布了一个改进的更好的原地排序的堆排序版本。堆排序属于选择类排序算法。
2021年09月27日 归并排序是一种分治策略的排序算法。它是一种比较特殊的排序算法,通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列。
2021年09月27日 1959 年一个叫 Donald L. Shell (March 1, 1924 – November 2, 2015) 的美国人在 Communications of the ACM 国际计算机学会月刊 发布了一个排序算法,从此名为希尔排序的算法诞生了。
注: ACM = Association for Computing Machinery,国际计算机学会,世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会。
注: ACM = Association for Computing Machinery,国际计算机学会,世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会。
2021年09月27日 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序。就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复。插入排序属于插入类排序算法。
2021年09月27日 选择排序,一般我们指的是简单选择排序,也可以叫直接选择排序,它不像冒泡排序一样相邻地交换元素,而是通过选择最小的元素,每轮迭代只需交换一次。虽然交换次数比冒泡少很多,但效率和冒泡排序一样的糟糕。选择排序属于选择类排序算法。
2021年09月27日 冒泡排序是大多数人学的第一种排序算法,在面试中,也是问的最多的一种,有时候还要求手写排序代码,因为比较简单。冒泡排序属于交换类的排序算法。
2021年09月27日
2021年09月27日 树是一种比较高级的基础数据结构,由 n 个有限节点组成的具有层次关系的集合。
2021年09月27日 我们翻阅书籍时,很多时候都要查找目录,然后定位到我们要的页数,比如我们查找某个英文单词时,会从英语字典里查看单词表目录,然后定位到词的那一页。计算机中,也有这种需求。
2021年09月27日
2021年09月27日
2021年09月27日
2021年09月27日 讲数据结构就离不开讲链表。因为数据结构是用来组织数据的,如何将一个数据关联到另外一个数据呢?链表可以将数据和数据之间关联起来,从一个数据指向另外一个数据。
2021年09月27日 数据结构主要用来组织数据,也作为数据的容器,载体。各种各样的算法,都需要使用一定的数据结构来组织数据。
2021年09月27日 在计算机科学中,有一个专门的分支研究问题的可计算性,叫做计算理论。我们用计算机算法来解决一个问题,如果一个问题被证明很难计算,或者只能暴力枚举来解决,那么我们就不必花大力气去质疑使用的算法是不是错了,为什么这么慢,计算怎么久都没出结果,到底有没有更好的算法。
2021年09月27日 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来。
2021年09月27日
2021年09月27日 在计算机科学中,分治法是一种很重要的算法。字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题。直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
分治法一般使用递归来求问题的解。
分治法一般使用递归来求问题的解。
2021年09月27日 学习数据结构和算法。我们要知道一些基础的知识。
2021年09月27日