数据结构与算法
文章平均质量分 52
zhu6201976
这个作者很懒,什么都没留下…
展开
-
Python实现二叉树
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、二叉树二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二、二叉树的节点表示以及树的创建"""@Time : 2021/7/21 9:12 @Author : Tesla@File : 11....原创 2021-07-21 09:45:58 · 3340 阅读 · 1 评论 -
Python实现二分查找
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中.转载 2021-07-20 23:34:46 · 289 阅读 · 0 评论 -
Python实现归并排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。二、归并排...原创 2021-07-20 22:52:28 · 922 阅读 · 0 评论 -
Python实现希尔排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1..原创 2021-07-19 22:12:10 · 625 阅读 · 0 评论 -
Python实现快速排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、快速排序快速排序(Quicksort)是对冒泡排序算法的一种改进。二、快速排序分析三、时间复杂度最优时间复杂度:O(nlogn) 最坏时间复杂度:O(n2) 稳定性:不稳定四、快速排序演示五、完整代码"""@Time : 2021/7/18...原创 2021-07-18 15:37:19 · 8893 阅读 · 2 评论 -
Python实现插入排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、插入排序插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进..原创 2021-07-18 12:49:47 · 471 阅读 · 0 评论 -
Python实现选择排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于..原创 2021-06-26 16:15:53 · 311 阅读 · 0 评论 -
Python实现冒泡排序
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下...转载 2021-06-26 15:26:00 · 294 阅读 · 0 评论 -
Python实现双端队列Deque
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、双端队列双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。二、需求:Deque() 创建一个空的双端队列 add(data) 从队头加入...原创 2021-06-25 22:45:38 · 504 阅读 · 0 评论 -
Python实现单向循环链表
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。二、需求Python实现单向循环链表,功能如下:增 头部、中部、尾部插入删 根据数据,删除节点改 根据数据,修改节点查 遍历、搜索判空求大小清空三、执行结果...原创 2021-06-25 09:57:27 · 570 阅读 · 0 评论 -
Python实现双向链表
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976博客:https://blog.csdn.net/zhu6201976一、需求Python实现单向链表,功能如下:增 头部、中部、尾部插入删 根据数据,删除节点改 根据数据,修改节点查 遍历、搜索判空求大小清空二、执行结果traverse12345search 3 <__main__.LinkTable.Node object...原创 2021-06-22 22:06:14 · 212 阅读 · 0 评论 -
Python实现堆栈
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976"""@Time : 2021/6/16 9:58 @Author : Tesla@File : 3.栈.py @Software: PyCharm"""class Stack(object): """ 栈 后进先出 LIFO """ def __init__(self): self.s = [] def put(self, ..原创 2021-06-21 23:04:27 · 276 阅读 · 0 评论 -
Python实现队列
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976"""@Time : 2021/6/16 9:50 @Author : Tesla@File : 2.队列.py @Software: PyCharm"""class Queue(object): """ 队列 先进先出 FIFO """ def __init__(self): self.q = [] def put(self..原创 2021-06-21 23:01:43 · 228 阅读 · 0 评论 -
Python实现单向链表
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除作者:zhu6201976原创 2021-06-17 11:46:13 · 312 阅读 · 0 评论