数据结构的复习
努力小c
不骄不躁,慢慢来会比较快。
展开
-
一些经典排序算法回顾
排序算法有非常多,应用也非常多,在各种笔试面试中也常常出现,所以现在就来复习一下相关的排序算法吧!下面会介绍多种排序算法,在此之前先说一下,排序算法的评价主要有以下几个方面:排序算法的时间复杂度;排序算法的空间复杂度;排序算法的稳定性其中前两个是老生常谈了,基本提到算法都会考虑这两点。第三点中排序算法的稳定性是指如果待排序列中存在相同元素时,经过排序之后相同元素的先后顺序是否被打乱,如果保持不变则说明这个排序算法是稳定的,否则称该排序算法是不稳定的。1.快速排序(quickSort)快速排原创 2020-11-15 10:10:56 · 137 阅读 · 0 评论 -
python算法刷题(leetcode)——链表
菜鸡的刷题记录,基础知识不会写太多,有时间会写专题复习基础知识。第一轮刷题,所以解法代码可能都比较冗余/难看,主要是追求先有思路和会写。更多优雅代码请参考解题区或评论区的大佬~一、 链表(Linked List)链表,是线性表的链式存储结构。一个链表中有若干个结点,每个结点都包含数据域和地址域两部分。数据域用于存储元素,地址域用于存储前驱或后继的地址。单链表: 每个结点只有一个地址域的线性链表;双链表: 每个结点都有两个地址域,分别指向前驱结点和后继结点。二、实战1. leetcode20原创 2020-11-03 13:18:44 · 1661 阅读 · 0 评论 -
python算法刷题——堆
菜鸡的刷题记录,基础知识不会写太多,有时间会写专题复习基础知识。第一轮刷题,所以解法代码可能都比较冗余/难看,主要是追求先有思路和会写。更多优雅代码请参考解题区或评论区的大佬~一、堆(heap)堆,我们也称为优先级队列(priority queue) ,指的是没有父节点的值都大于(或小于)其子节点的完全二叉树。python中默认实现的是最小堆。python关于堆的实现有两个,一是heapq模块,另一个是PriorityQueue模块。heapq模块import heapqheadp.he原创 2020-10-26 18:42:06 · 531 阅读 · 0 评论 -
python算法刷题——栈和队列(一)
算法菜鸡的刷题记录,解题方法都选用了能看懂的最简单的但是可能比较冗余的解法,可以到leetcode解题区看更多大佬们优雅的解题~一、栈和队列栈(stack): 后进先出。栈的一些标准操作:s.pop() # 出栈s.push() # 入栈s.top() # 获取栈顶元素(不出栈)s.size() # 获取栈的大小(元素个数)s.empty() # 判断栈是否为空,返回true or false队列(queue): 先进先出。队列的一些标准操作:q.pop() # 出队q.pu原创 2020-10-25 18:16:51 · 1433 阅读 · 0 评论 -
树的一些基本概念
之前学过数据结构,但是很多概念性的东西都有点忘了,现在翻出来整理一下,秋招春招加油!1.树的基本概念树(Tree)是由n(n>=0)个节点组成的有限集合(树中元素通常称为结点)。n=0的树称为空树;n>0的树T由以下两个条件约定构成:有一个特殊的结点称为根(root)结点,它只有后继节点,没有前驱节点。除根结点之外的其他结点分为m(0<=m<n)个互不相交的集合,其中每一个集合也都具有树结构,称为根的子树。2.树的相关术语树中有许多相关的术语,下面来一一了解:原创 2020-09-05 16:51:54 · 740 阅读 · 0 评论