![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
V_lq6h
这个作者很懒,什么都没留下…
展开
-
排列组合与概率
排列组合与概率一.如何求数字的组合class Test: def __init__(self,arr): self.numbers=arr self.visited=[None]*len(self.numbers) self.graph=[([None]*len(self.numbers)) for i in range(len(se...原创 2019-11-10 23:55:56 · 262 阅读 · 0 评论 -
基本数字运算
基本数字运算一.如何判断一个自然数是否是某个数的平方def isPower(n): if n<=0: print(n+"不是自然数") return False i=1 while i<n: m=i*i if m==n: return True eli...原创 2019-11-10 23:55:26 · 1244 阅读 · 0 评论 -
字符串
字符串一.如何求一个字符串的所有排列1.递归法def Swap(str,i,j): tmp=str[i] str[i]=str[j] str[j]=tmpdef Permutation(str,start): if str==None or start<0: return if start==len(str)-1: ...原创 2019-11-10 23:53:48 · 251 阅读 · 0 评论 -
数组
数组一.如何找出数组中唯一的重复元素1.空间换时间法def FindDup(arr): if arr==None: return -1 lens=len(arr) hashTable=dict() i=0 while i<lens-1: hashTable[i]=0 i+=1 j=...原创 2019-11-10 23:53:14 · 174 阅读 · 0 评论 -
栈,队列及哈希
栈,队列及哈希一.如何实现栈1.数组实现class MyStack(object): def __init__(self): self.items=[] def isEmpty(self): return len(self.items)==0 def size(self): return len(self.ite...原创 2019-11-10 23:52:41 · 228 阅读 · 0 评论 -
二叉树
二叉树一.把一个有序整数数组放到二叉树中首先取数组的中间结点作为二叉树的根结点,把数组分成左右两部分,然后对于数组的左右两部分子数组分别运用同样的方法进行二叉树的构建,依此类推class BiTNode(object): def __init__(self): self.data=None self.lchild=None self....原创 2019-11-10 23:52:09 · 196 阅读 · 0 评论 -
链表
链表一.实现链表的逆序给定一个带头结点的单链表,请将其逆序.即如果单链表原来为head->1->2->3->4->5->6->7,则逆序后变为head->7->6->5->4->3->2->11.就地逆序主要思路为:在遍历链表的时候,修改当前结点的指针域的指向,让其指向它的前驱结点.为此需要用一个指针变...原创 2019-11-10 23:51:42 · 203 阅读 · 0 评论 -
第八节--图的数据结构及其算法
第八节–图的数据结构及其算法图除了被应用在数据结构中最短路径搜索,拓扑排序外,还能应用在系统分析中以时间为评审标准的性能评审技术等。采用Dijkstra这种图形算法就能快速寻找出两个节点之间的最短路径一.图的遍历图的遍历,可以定义如下:一个图G=(V,E),存在某一顶点v属于V,我们希望从v开始,通过此节点相邻的节点而去访问图G中的其他节点,这就被称为"图的遍历"。也就是从某一个顶点V1开始...原创 2019-02-01 18:34:06 · 310 阅读 · 0 评论 -
第七节--树形结构及其算法
第七节–树形结构及其算法树形结构是一种应用相当广泛的非线性结构。树状算法在程序中的建立与应用大多使用链表来处理,当然也可以使用数组这样的连续内存来表示二叉树由于二叉树的应用相当广泛,因此衍生了许多特殊的二叉树结构1.满二叉树(fully binary tree)如果二叉树的高度为h,树的节点数为2-1,h>=0,就称此树为"满二叉树"2.完全二叉树(complete binary tr...原创 2019-02-01 18:33:38 · 3333 阅读 · 0 评论 -
第六节--堆栈与队列算法
第六节–堆栈与队列算法堆栈结构在计算机领域中的应用相当广泛,常用于计算机程序的运行,例如递归调用,子程序的调用。堆栈在python程序设计中包含两种方式,分别是数组结构(在python语言中是以列表List仿真数组结构)与链表结构队列在计算机领域中的应用也相当广泛,例如计算机的模拟(simulation),cpu的作业调度(job scheduling)以及图形遍历的广度优先搜索法(BFS)...原创 2019-02-01 18:33:15 · 368 阅读 · 0 评论 -
第五节--数组与链表算法
第五节–数组与链表算法数组与链表都是相当重要的结构化数据类型(structured data type),也都是典型线性表的应用。按照内存存储的方式,基本上可分为以下两种方式:1.静态数据结构(static data structure)数据类型就是一种典型的静态数据结构,它使用连续分配的内存空间(contiguous allocation)来存储有序表中的数据。静态数据结构是在编译时就给相关的...原创 2019-02-01 18:32:50 · 338 阅读 · 0 评论 -
第四节--查找与哈希算法
第四节–查找与哈希算法0x01 常见查找算法影响查找时间长短的主要因素有算法,数据存储和方式及结构。如果是以查找过程中被查找的表格或数据是否变动来分类,则可以分为静态查找(Static Search)和动态查找(Dynamic Search)静态查找是指数据在查找过程中,该查找数据不会有添加,删除或更新等操作。动态查找则是指所查找的数据,在查找过程中会经常性添加,删除或更新一.顺序查找法...原创 2019-02-01 18:32:17 · 260 阅读 · 0 评论 -
第三节--排序算法
第三节–排序算法光栅处理的主要作用是将3D模型转换成能够被显示与屏幕的图像,并对图像进行修正和进一步美化处理,让展现在眼前的画面更为逼真与生动一.认识排序1.认识排序“排序”(Sorting)就是指将一组数据,按特定规则调换位置,使数据具有某种顺序关系(递增或递减)。用以排序的依据被称为键(Key),它所含的值就称为"键值"。通常键值的数据类型有数值类型,中文字符串类型以及非中文字符串类型...原创 2019-02-01 18:31:35 · 252 阅读 · 0 评论 -
第二节--常用数据结构
第二节–常用数据结构一.认识数据结构计算机具有处理速度快和存储容量大的两大特点所谓数据(Data),指的就是一种未经处理的原始文字(Word),数字(Number),符号(Symbol)或图形(Graph)等。我们可将数据分为两大类:一类为数值数据(Numeric Data),例如0,1,2,3…9等所组成可用运算符(Operator)来进行运算的数据;另一类为字符数据(Alphanumer...原创 2019-02-01 18:31:12 · 230 阅读 · 0 评论 -
第一节--走入算法的世界
第一节–走入算法的世界“云"其实就是泛指"网络”,因为工程师在网络结构示意图中通常习惯用"云多状"图来代表不同的网络。云计算是指将网络中的运算能力提供出来作为一种服务,只要用户可以通过网络登录远程服务器进行操作,就能使用这种运算资源物联网(Internet of Things,IOT)与因特网结合起来,并通过网络技术让各种实体对象,自动化设备彼此沟通和交换信息,也就是通过网络把所有东西都连接在...原创 2019-01-31 22:51:38 · 222 阅读 · 0 评论