算法
文章平均质量分 64
老练的小白
啥都不会的同时还啥都会点!!
展开
-
二叉树和遍历的实现
二叉树是一种数据结构,它由节点(Nodes)组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。原创 2024-06-22 12:11:42 · 338 阅读 · 0 评论 -
python数据结构与算法分析--搜索
本文参考于《python数据结构与算法分析》顺序搜索:依次按照顺序进行访问。#无序搜索from datetime import datetimedef sequentialSearch(alist, item): pos = 0 found = False starttime = datetime.timestamp(datetime.now()) whi...原创 2020-03-31 23:48:47 · 562 阅读 · 0 评论 -
python数据结构与算法分析--列表
本文参考于《python数据结构与算法分析》列表:是元素的集合。其中每一个元素都有一个相对于其他元素的位置。这种表称为无序列表。无序列表抽象抽象数据类型List():无序列表是元素的集合add(item):添加itemremove(item):移除itemsearch(item):搜索itemisEmpty():检查是否为空length():返回个数append(item):列...原创 2020-03-29 00:21:14 · 476 阅读 · 0 评论 -
python数据结构与算法分析--队列
本文参考于《python数据结构与算法分析》队列:是有序集合,添加操作发生在尾部,移除操作发生在头部。新元素从尾部进入队列,然后一直向前移动到头部,直到成为下个被移除的元素。这种排序原则被称作FIFO(first-in-first-out),即先进先出。队列抽象数据类型Queue() 创建空队列enqueue(item):尾部添加元素dequeue():头部移除元素isEmpty()...原创 2020-03-28 23:00:56 · 212 阅读 · 0 评论 -
python数据结构与算法分析--栈
本文参考于《python数据结构与算法分析》栈栈:它是有序集合,添加操作和移除操作总发生在同一端,即"顶端",另一端被称为"低端"。栈中的元素离低端越近,代表其在栈中的时间越长,最新添加的元素将被最先移除。这种排序原则被称作LIFO(last-in-first-out),即后进先出。场景:每一个浏览器都有返回按钮,当我们从一个网页跳到另一个网页时,这些网页实际上是URL都被存放在一个栈中。当...原创 2020-03-28 00:05:19 · 178 阅读 · 0 评论 -
《算法图解》读书笔记-3(递归与栈)
递归问题引入:假设你在祖母的阁楼中翻箱倒柜,发现了一个上锁的神秘手提箱。祖母告诉你,钥匙很可能在下面这个盒子里。这个盒子里有盒子,而盒子里的盒子又有盒子。钥匙就在某个盒子中。为找到钥匙,你将使 用什么算法?先想想这个问题,再接着往下看。方法一:(1) 创建一个要查找的盒子堆。(2) 从盒子堆取出一个盒子,在里面找。(3) 如果找到的是盒子,就将其加入盒子堆中,以便以后再查找。 (4)...原创 2020-03-18 12:45:16 · 138 阅读 · 0 评论 -
《算法图解》读书笔记-2选择排序(数组与链表)
数组和链表链表:链表中的元素可储存在内存的任何地方,也就是说可以不连续。链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存串在一起。它的优势是插入方面比较快。补充知识:其实链表分为单链表和双链表(此图出处)。说出来你可能不信对于链表的介绍就像开玩笑一样的结束了。。。。。。但是为了加强下印象简单实现个单链表结构,大佬勿喷。。。class Node(object): ...原创 2020-03-17 12:22:57 · 195 阅读 · 0 评论 -
《算法图解》读书笔记-1算法简介
大O表示法提到数据结构和算法经常会提到大O表示这个概念。一开始刚接触的时候我就很懵圈这是个什么玩意!随着深入了解,其实大O表示法指出了算法有多快,它并不是以单位来评估速度,它注重的是算法运行时间的增速(个人理解类似物理中加速的意思)。eg:假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间为O(n)。常见的集中大O运行时间:O(log n)...原创 2020-03-17 00:12:54 · 123 阅读 · 0 评论