![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
BinyGo
老码农了
展开
-
python归并排序、快速排序
递归排序和快速排序都是是分治思想归并排序(Merge Sort)归并排序把数组从中间分成前后两部分,重复拆分直至最小粒度,然后对前后两部分分别排序,再把排序好的两部分合并在一起.快速排序(Quick Sort)快排在数组中选择任意一个下标点作为pivot(分区点),遍历start到end之间的数据, 将小于pivot的放左边,将大于pivot的放右边,再重复处理小于区和大于区,直至满足终止条件原创 2021-08-18 10:13:26 · 267 阅读 · 1 评论 -
python冒泡排序、插入排序、选择排序
冒泡排序(Bubble Sort)冒泡排序会对相邻的每两个元素进行比较,当左侧元素大于右侧元素时,交换它们的位置。重复 n-1轮,直至完成排序。插入排序(Insert Sort)插入排序将数组中的数据分为两个区间,已排序区间和未排序区间。选择排序(Select Sort)选择排序每轮会从数组中找出最小元素,直接交换到左侧,并在左侧维护一个有序区,重复n-1轮,排序完成。这种排序最大优势就是省去了多余元素的重复交换。劣势是它不是一个稳定的排序算法原创 2021-06-30 16:24:08 · 130 阅读 · 0 评论 -
python基于单链表的链式队列和基于数组的循环队列
队列(queue)也是一种操作受限“”的线性数据结构,只支持入栈和出栈操作。栈中的元素只能先进后出(First In First Out)。队列的出口端叫作队头head,队列的入口端叫作队尾tail队列的应用非常广泛,特别是一些具有额外特性的队列,如:循环队列、阻塞队列、并发队列LinkedQueuedef enqueuedef dequeue原创 2021-06-23 09:00:09 · 327 阅读 · 0 评论 -
python基于单链表实现栈
python单链表实现栈 链式栈栈(stack)是一种"操作受限"的线性数据结构,只支持入栈和出栈操作。栈中的元素只能先进后出(First In First Out)。最早放入的元素位置叫作栈底bottom,最后放入的元素位置叫作栈顶top。经典的应用场景:浏览器前进后退、函数调用栈SingleLinkStack stack.push() stack.pop()原创 2021-06-22 20:25:07 · 246 阅读 · 0 评论 -
python单链表代码实现
python实现单链表代码链表是一种链式数据结构,物理存储方式是随机存储,访问方式是顺序访问查找链表节点的时间复杂度是O(n)不考虑插入、删除之前的查找节点的过程,插入、删除的时间复杂度是O(1)原创 2021-06-07 09:38:30 · 759 阅读 · 1 评论 -
python单链表写的LRU淘汰策略
单链表写出的lru淘汰策略,貌似惨不忍睹,记录下待重构class Node(object): def __init__(self, value=None, next=None): self.value = value self.next = next原创 2021-06-19 08:47:38 · 124 阅读 · 0 评论 -
python字符串初级算法题
题目来源:力扣(LeetCode)1. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。解法一(python自带字符串反转)解法二(前后对称交换)原创 2021-06-18 23:24:22 · 632 阅读 · 0 评论