算法
算法
sysu_lluozh
这个作者很懒,什么都没留下…
展开
-
二叉树的操作
遍历:单链表的遍历是指从第一个结点开始(下标为0的结点),按照某种次序依次访问每一个结点。 二叉树的遍历是指从根结点开始,按照某种次序依次访问二叉树中的所有结点。 OK,下面就分别介绍前序遍历,中序遍历,后序遍历,层次遍历 代码:[cpp] view plaincopyvoid转载 2015-10-14 17:43:31 · 420 阅读 · 0 评论 -
简述什么是值传递,什么是地址传递,两者区别是什么
值传递:主调函数传递给被调函数的是值的拷贝,不是原值地址传递:主调函数传递给被调函数的是值的地址区别:值传递被调函数中的操作不改变主调函数的值,而地址传递则不同转载 2015-10-12 13:24:24 · 2815 阅读 · 0 评论 -
算法复杂度的计算
时间复杂度的定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度(O是数量级的符号 ),简称时间复杂度根据定义,可以归纳出基本的计算步骤 1. 计算出基转载 2015-10-14 16:53:11 · 617 阅读 · 0 评论 -
可视化的数据结构和算法
基础Stack栈: 数组实现Stack栈: 链表实现Queues队列: 数组实现Queues队列: 链表实现Lists列表: 数组实现Lists列表: 链表实现索引Binary Search Trees 二叉检索树AVL Trees (平衡二叉检索树)Red-Black Trees 红黑树Open Hash Tables 开放哈希表(Closed转载 2015-10-14 17:48:07 · 379 阅读 · 0 评论 -
队列
线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊。 一:概念 队列是一个”先进先出“的线性表,牛X的名字就是“First in First Out(FIFO)”, 生活中有很多这样的场景,比如读书的时候去食堂打饭时的”排队“。当然我们拒绝插队。 二:存储结构 前几天也说过,线性表有两种”存转载 2015-10-14 18:49:07 · 315 阅读 · 0 评论 -
队列--两个栈实现
单纯的用线性表或者单链表实现队列已经不足为奇,现在给大家介绍个有特色的,用两个栈实现队列。 如图 这里介绍队列的常用操作:l 创建队列l 销毁队列l 清空队列l 入队l 出队l 返回队首元素l 返回队的大小代码总分为三个文件:SQueue.转载 2015-10-14 17:45:38 · 328 阅读 · 0 评论 -
线性表
线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。Balabala.....其实最简单的也就不用说了,上述是取自百度百科对于线性表的定义。而在这里,就简单说明下线性表的定义:转载 2015-10-14 17:47:12 · 391 阅读 · 0 评论 -
静态链表
用数组描述的链表,即称为静态链表,它的表现形式即为结构体数组,结构体变量包括数据域data和指针域next。这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。而且在不具有指针类型的高级语言中,无法使用指针类型,也就无法用指针实现单链表结构,所以静态链表是个不错的选择。 静态链表的定义为转载 2015-10-14 17:46:25 · 672 阅读 · 0 评论 -
再谈算法复杂度
算法复杂度分为时间复杂度和空间复杂度。时间复杂度用于度量算法执行的时间长短;而空间复杂度则是用于度量算法所需存储空间的大小。 时间复杂度 1.时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语转载 2015-10-14 17:42:02 · 835 阅读 · 0 评论 -
栈
在程序设计中,栈的使用还是非常广泛的,比如有“括号匹配问题“,”html结构匹配问题“。所以说掌握了”栈“的使用,对我们学习算法还是很有帮助的。 一: 概念 栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有很多这样的例子, 比如:食堂中的一叠盘子,我们只能从顶端一个一个的取。转载 2015-10-14 18:49:50 · 424 阅读 · 0 评论 -
线性表
数据间存在三种基本关系: 线性关系。 树形关系。 网状关系。 一: 线性表 1 概念: 线性表也就是关系户中最简单的一种关系,一对一。 如:学生学号的集合就是一个线性表。 2 特征:转载 2015-10-14 18:47:09 · 318 阅读 · 0 评论 -
五大经典查找
算法中,有一种叫做线性查找。分为:顺序查找。 折半查找。 查找有两种形态:分为:破坏性查找, 比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了。 哥不找23+的,所以此种查找破坏了原来的结构。转载 2015-10-14 18:34:01 · 461 阅读 · 0 评论 -
数组、链表、堆栈和队列
数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合。听起来是不是很抽象,简单理解:数据结构就是描述对象间逻辑关系的学科。比如:队列就是一种先进先出的逻辑结构,栈是一种先进后出的逻辑结构,家谱是一种树形的逻辑结构!(初学数据结构的时候很不理解为什么有“栈”这个东西;队列很容易理解---无论购物就餐都需要排队;栈可以认为就是个栈道---只允许一个人通过的小道,而且只能从一端进入,然后再从这端转载 2015-10-14 15:23:06 · 401 阅读 · 0 评论 -
八大排序算法
排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 合并排序: 合并排序。 那么今天我们讲的就是交换排序,我们都知道,C#类库提供的排序是快排,为了让今天玩的有意思点,我们设计算法来跟类库提供的快排较量较量。争取KO对转载 2015-10-14 18:32:38 · 392 阅读 · 0 评论 -
DuiLib实现简易GUI
在使用inspect或者UiSpy元素识别工具识别Remote界面元素时,该界面内的元素并不能被识别。后来又碰到关于EB界面交互实现的问题,决定弄一个简易的Demo学习学习。Remote和EB都是使用开源 的directui 界面库DuiLib,现在很多公司都采用DuiLib做为界面库,比如金山快盘、爱奇艺视频、百度卫士等等。 可以在https://code.google.com/p/duilib原创 2015-12-31 14:32:52 · 6866 阅读 · 0 评论