自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 python 常见的查找方法

       根据数据量的大小,我们可将查找分为内部查找和外部查找。内部查找:数据量小的文件可以一次性全部加载到内存中进行查找。 外部查找:数据量大的文件无法一次性加载到内存中处理,而需要使用辅助存储器来分次处理       如果从另外一个角度来看,查找的技巧又可分为“静态查找”和“动态查找”两种。静态查找:在查找过程中,查找的表格或文件的内容不会被改动,例如符号表示的查找就是一种静态...

2019-01-26 10:59:08 4545

原创 python 图(最短路径)

       在一个有向图G=(V,E)中,G中每一条边都有一个比例常数W(Weight)与之对应,如果想求G图中某一个顶点V0到其他顶点的最少W总和的值,这类问题就称为最短路径问题。一般讨论的方向有两种:单点对全部顶点 所有顶点对两两之间的最短距离一、单点对全部顶点       一个顶点到多个顶点的最短路径通常用Dijkstra算法求得。Dijkstra算法(迪杰斯特拉)是典型的最短...

2019-01-25 19:26:17 17419 1

原创 Python 图(DFS、BFS)

一、图的定义(1)顶点      顶点(也称为“节点”)是图的基本部分。它可以有一个名称,我们将称为“键”。(2)边      边(也称为“弧”)是图的另一个基本部分。边连接两个顶点,以表明它们之间存在关系。(3)权重      边可以被加权以示出从一个顶点到另一个顶点的成本。例如,在将一个城市连接到另一个城市的道路的图表中,边上的权重可以表示两个城市之间的距离。   ...

2019-01-24 18:45:22 2224 1

原创 python 哈希策略

       一般的线性表、树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。     ...

2019-01-23 16:28:28 3519

原创 python 优先队列(基于二叉堆的实现)

       普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。相同优先级的项则按照先进先出的顺序删除。优先队列的出队操作和队列一样,都是从队首出队,但在优先队列的内部,元素的次序却是由“优先级”来决定:高优先级的元素排在队首,而低优先级的元素则排在后面。这样,优先队列的入队操作就比较复杂,需要将元素根...

2019-01-22 21:34:56 1216

原创 Python 二叉查找树

       二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree)。二叉搜索树是具有有以下性质的二叉树:  (1)若左子树不为空,则左子树上所有节点的值均小于或等于它的根节点的值。  (2)若右子树不为空,则右子树上所有节点的值均大于或等于它的根节点的值。  (3)左、右子树也分别为二叉搜索树。       二叉查找树的最左边的结点即为最...

2019-01-22 18:20:25 746

原创 lintcode 关于二叉树的题目

69. 二叉树的层次遍历给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)样例给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[[3],[9,20],[15,7]]挑战挑战1:只使用一个队列去实现它挑战2:用BFS算法来做"""Definition o...

2019-01-21 21:13:21 155

原创 python 二叉树

       二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。       二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; ...

2019-01-21 19:44:18 164

原创 python 队列

       队列(queue)在计算机科学中,是一种先进先出的线性表。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。       队列抽象数据类型由以下结构和操作定义。如上所述,队列被构造为在队尾添加项的有序集合,并且从队首移除。队列保持 FIFO 排序属性。 队列操作如下...

2019-01-20 19:06:50 447

原创 python 栈

       栈是线性的集合,其中,访问都严格的限制在一端,也叫作顶(top)。栈是遵从后进先出(LIFO)的协议,从栈放入项和从栈删除项的操作分别叫压人(push)和弹出(pop)。       栈并不是Python的内建类型,Python程序员在必要的时候可以使用列表来模拟基于数组的栈。如果将列表的末尾看作是栈的顶,列表方法append就是将元素压入到栈中,而列表方法pop会删除并返回栈顶...

2019-01-19 19:21:46 12843 1

原创 python双链表

class Node(): def __init__(self,item): self.__item=item self.__next=None self.__previous=None def getItem(self): return self.__item def getNext(self): return self.__next def getPrevious...

2019-01-18 19:06:10 170

原创 python单链表

一、定义一个单链表节点类class Node(Object): def __init__(self,data,next=None): #该方法用于初始化一个类 self.data=data self.next=next二、使用单链表节点类 node1=Node('A',None)node2=Node('B',node1)node3=Node('C',node3)三...

2019-01-18 16:50:15 201

原创 基本排序算法

一、选择排序       它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。def swap(lyst,i,j): temp=lyst[i] lyst[i]=lyst[j] lyst[j]=tempdef ...

2019-01-18 10:11:01 153

转载 python中对象的赋值、浅拷贝和深拷贝

 1. 赋值:简单的对象引用在python中,变量赋值实际上是简单的对象引用。在创建一个对象后,再把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是简单地拷贝了这个对象的引用。(1)原子类型的赋值>>> x = 3.14>>> y = x>>> x,y(3.14, 3.14)>>> id(x)...

2019-01-14 13:42:08 141

原创 二叉树的DFS和BFS

       深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以下面二叉树为例,深度优先搜索的顺序为:ABDECFG。DFS是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特点,现将右子树压栈,再将左子树压栈,这样左子树就位于栈顶,可以保证结点的左子树先与右子树被遍历。  广度优先搜索(Breadth ...

2019-01-11 14:18:56 3131

原创 旋转字符串

旋转字符串给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例对于字符串 "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"挑战在数组上原地旋转,使用O(1)的额外空间

2019-01-10 21:39:03 1133

原创 归并排序运用

       归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。       归并操作的工作原理如下:       第一步:申请空间,使其大小为两个已经排序序列...

2019-01-10 14:08:17 163

原创 快速排序运用

 题目:在数组中找到第k大的元素样例:给出数组 [9,3,2,4,8],第三大的元素是 4给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推要求:要求时间复杂度为O(n),空间复杂度为O(1)一、冒泡排序(平均时间复杂度为 )(1)C++程序:class Solution { public: ...

2019-01-09 19:04:32 461

消除单片机复位及程序跑飞影响的措施

提出解决单片机复位及程序跑飞影响的措施

2017-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除