![](https://img-blog.csdnimg.cn/63f0f2a52b3f46beba536cd68d340822.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法(python)
文章平均质量分 76
程序 = 数据结构 + 算法;而且在面试过程中这些是必考,必问的内容。内容大纲:基础数据结构(树、链表、栈、队列等)、常见算法(排序算法、递归算法等)。
他是只猫
没有特别幸运,那么就请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。只有特别努力,才能显得毫不费力。
展开
-
树--- python实现
文章目录树嵌套列表法实现节点连接法树的应用树树是一种非线性数据结构。在树中,每个节点都含有自己的数值,以及与之相连的子节点,连接节点的线叫做相连线(edge)。如下图所示,A是根节点(root),也是B和C的父节点(parent node),也就是说B、C都是A的子节点(child node)。同理,B是D和E的父节点,以此类推。要注意H、I、J、F、G都是尾节点(leaf node),因为它们位于树的最底部,没有任何子节点。树的特点:每个节点都只有有限个子节点或无子节点;没有父节点的节原创 2022-01-14 01:35:23 · 2386 阅读 · 0 评论 -
哈希表(hash table)---python实现
文章目录哈希表(基本概念)冲突解决:数据项链和线性探测数据项链线性探测实现Hash_Map哈希表(基本概念)哈希表(hash table,又称散列表)是一种数据集,其中数据项的存储方式尤其是有利于将来快速的查找定位。散列表的每一个存储位置,成为槽,可以用来保存数据项,每个槽有一个唯一的名称。实现从数据项到存储名称的转换的,称为散列函数(哈希函数)。有一种常见的散列方法是‘求余数’,将数据项厨艺散列表的大小,得到的余数作为槽号。不过这很明显会存在一个问题,要保存的数据需要存到同一个槽中,会产原创 2022-01-09 00:29:32 · 2444 阅读 · 0 评论 -
排序算法(python)-归并排序和快速排序
文章目录归并排序(分治策略)快速排序归并排序(分治策略)归并排序是递归算法,思路是将数据表持续分裂为两半,对两半分别进行归并排序。递归的基本结束条件:数据表仅有一项数据,自然是排好序的;缩小规模:将数据表分裂为相等的两半,规模减小为原来的二分之一;调用自身:将两半分别调用自身排序,然后将排好序的两半进行归并,得到排好序的数据表;def mergeSort(alist): #基本结束条件 if len(alist) > 1: mid = len(a原创 2021-12-09 15:22:52 · 939 阅读 · 0 评论 -
排序算法(python)- 插入排序和谢尔排序
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-12-07 19:53:53 · 287 阅读 · 0 评论 -
排序算法(python)-冒泡排序、选择排序
文章目录冒泡排序冒泡排序性能改进选择排序冒泡排序冒泡排序的算法思路在于对无序表进行多趟比较交换;每次包括两两相邻比较,并将逆序数据位置互换;经过n-1次比较交换,实现整表排序;每次过程类似气泡浮出水面。def bubble_Sort(alist): n = len(alist) for passnum in range(n-1,0,-1): for j in range(passnum): if alist[j] > ali原创 2021-12-04 01:40:31 · 815 阅读 · 0 评论 -
顺序查找和二分查找(python)
文章目录顺序查找二分查找二分查找的递归代码顺序查找在python List中,数据项的存储位置称为下标(有序的整数),通过下标,我们就可以按照书序来访问和查找数据项,这就是顺序查找。首先从列表中的第一个数据项开始按照下标增长的顺序,逐个比对数据项;如果到最后一个都未发现要查找的项,那么查找失败。类似于穷举法,穷尽所有肯能。def list_search(alist, target): pos = 0 found = False while pos < l原创 2021-12-03 17:49:10 · 1221 阅读 · 0 评论 -
动态规划- python及递归
文章目录零钱兑换问题---动态规划解法采用动态规划来解决11分钱的兑换问题动态规划扩展算法LeetCode 322. 零钱兑换零钱兑换问题—动态规划解法递归算法https://blog.csdn.net/suwuzs/article/details/121666346在递归优化的过程中,我们用了中间结果记录的方法。这种方法叫做memoization(记忆化/函数值缓存)技术,可以提高递归解法的性能。零钱兑换的动态规划算法是从最简单的‘1分钱’找零的最优解开始,逐步递加上去,直到我们需要的找零原创 2021-12-02 13:58:37 · 1176 阅读 · 0 评论 -
递归算法(python)---分治策略、优化问题、贪心策略
文章目录分治策略LeetCode322. 零钱兑换找零兑换问题:递归解法及其改进递归解法递归改进解法LeetCode322. 零钱兑换分治策略分而治之:将问题分为若干更小规模的部分;通过解决每一个小规模部分问题,将结果汇总得到原问题的解。递归三定律:基本结束条件,解决最小规模问题缩小规模,向基本结束条件演进调用自身来解决已缩小规模的相同问题总结: 问题解决依赖于若干缩小了规模的问题汇总得到原问题的解。应用 排序、查找、遍历、求值等。优化问题: 算法都是为了找到某些问题的最优原创 2021-12-02 13:57:13 · 840 阅读 · 0 评论 -
递归算法-python
文章目录递归Recursion递归的应用整数转换为任意进制(递归与栈)LeetCode面试题 08.06. 汉诺塔问题递归Recursion递归是一种解决问题的方法;算法方面的明显特征就是调用自身。将问题分解为规模更小的相同问题;持续分解,直到问题规模小到可以用非常简单直接的方式来解决。#数列求和def listsum(numlist): theSum = 0 for i in numlist: theSum += i return theSump原创 2021-11-27 16:03:45 · 599 阅读 · 0 评论 -
链表及其python实现
文章目录链表采用链表来实现无序表实现节点ListNode链表实现无序表UnorderList链表链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。数组是很常用的数据储存方式,而链表就是继原创 2021-11-21 23:58:51 · 934 阅读 · 0 评论 -
队列及其python实现
文章目录队列(Queue)队列的实现约瑟夫问题双端队列回文词的判定队列(Queue)队列(Queue)是一个有次序的数据集合;数据项仅添加到尾rear端,而且仅从首front端移除,Queue具有FIFO的操作次序。队列支持的操作:入队(enqueue):增加一个新的元素出队(dequeue):删除一个元素peek() :返回队首数据项isEmpty() : 查看队列是否为空size():返回队列中数据项的个数队列的实现数组(列表)实现:class Queue(object):原创 2021-11-21 15:58:06 · 3961 阅读 · 0 评论 -
栈及其python实现
文章目录栈(Stack)栈的实现栈的应用LeetCode 20th(有效的括号)LeetCode 405. 数字转换为十六进制数栈(Stack)栈是一个有次序的数据集,每个数据项仅从”栈顶“一端加入到数据集中、从数据集中移除,栈具有后进先出(LIFO)特性。在栈中,数据项的加入和移除都仅发生在同一端;这一端叫做栈顶top,另一端叫栈底base;距离栈底越近的数据,留在栈中的时间越长;后进先出LIFO特性;翻转次序,进栈和出栈的次序正好相反。ls = [1,2,3,'dog',5,6,原创 2021-11-21 11:23:50 · 830 阅读 · 0 评论 -
python数据类型的性能
文章目录python 数据类型的性能列表常用操作使用timeit模块对函数计时列表基本操作的复杂度字典数据类型python官方的算法复杂度网站python 数据类型的性能在python语法精讲中我们讲了python基础数据类型,这里我们来讨论下python两种内置数据类型在各种操作上的时间空间复杂度。列表 list字典 dict类型listdict索引自然数ikey添加append、extend、insertD[key]=v删除pop、remove原创 2021-11-21 00:40:26 · 325 阅读 · 0 评论