
数据结构与算法
睡着了都在敲代码
这个作者很懒,什么都没留下…
展开
-
备战秋招——记录自己学习的第二天(插入排序、希尔排序)
**插入排序和希尔排序是两种很像的排序,因为希尔排序是在插入排序的基础上进行,并且最后的间隔设置为1时,也就是插入排序 **一、插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入...原创 2019-05-30 22:37:19 · 121 阅读 · 0 评论 -
备战秋招——记录自己学习的第三天(快速排序、归并排序、二分查找)
一、利用python实现快速排序快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:1.从数列中挑出一个元素,称为"基准"...原创 2019-06-01 22:17:38 · 190 阅读 · 0 评论 -
备战秋招——记录自己学习的第三天(二叉树的创建及其广度(层次)优先和深度优先遍历)
一、基础介绍树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;...原创 2019-06-01 23:07:02 · 142 阅读 · 0 评论 -
备战秋招——记录自己学习的第一天(链表、栈、队列)
一、利用python实现单向链表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。对于这种需求,最简单的解决方案便是将这样一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。这样的一组序列元素的组...原创 2019-05-29 22:51:28 · 170 阅读 · 0 评论 -
备战秋招——记录自己学习的第一天(冒泡排序、选择排序)
一、利用python实现冒泡排序冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序)...原创 2019-05-29 23:11:35 · 174 阅读 · 0 评论 -
python内嵌不常用数据结构以及利用OrderedDict实现LRUcache
import collections"""#命名tuple#定义一个point对象,让nametuple可读point = collections.namedtuple('ppp','x,y')p = point(1,2)print(p.x,p.y)""""""#双端队列queue = collections.deque()queue.append(1)queue.a...原创 2019-09-16 10:35:26 · 451 阅读 · 0 评论