
数据结构与算法
文章平均质量分 63
maguochao_Mark
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构与算法】一 数组
数据结构数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。记为:Data_Structure=(D,R) 其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。原创 2016-02-20 15:59:47 · 414 阅读 · 0 评论 -
【数据结构与算法】数据结构+算法=程序
【数据结构与算法】数据结构+算法=程序数据结构计数机的处理能力来源于cpu, 通过计算机汇编语言(Assembly Language)进行运算工作,cpu只可以做一些简单的二进制操作. 那么问题来了 ? 计算机如何处理 视频/mp3等应用的呢?这个时候数据结构“诞生”了.将视屏mp3的二进制数据按照特定的数据结构封装 .算法有了数据结构计算机是完全可以 “欣赏” 视频mp3的二进制了 . 但是原创 2016-02-17 23:41:43 · 3565 阅读 · 0 评论 -
【数据结构与算法】十二 字符串搜索
数据结果 算法 字符串搜索原创 2016-03-23 23:23:22 · 494 阅读 · 0 评论 -
【数据结构与算法】十一 最大公约数
最大公约数 数据结构 算法原创 2016-03-18 00:04:44 · 1166 阅读 · 0 评论 -
【数据结构与算法】十六
【数据结构与算法】十六原创 2016-04-05 14:30:02 · 277 阅读 · 0 评论 -
【数据结构与算法】十三 twoSum hash
树原创 2016-03-28 21:54:43 · 394 阅读 · 0 评论 -
【数据结构与算法】十七 栈 队列
栈 队列原创 2016-05-05 01:24:23 · 493 阅读 · 0 评论 -
【数据结构与算法】十四 二叉树 BST / 平衡二叉树AVL
【数据结构与算法】十四 二叉树 BST原创 2016-04-14 23:17:52 · 601 阅读 · 0 评论 -
【数据结构与算法】十九 二叉树遍历 BFS 广度优先 迭代算法
【数据结构与算法】十九 二叉树遍历 BFS 广度优先 迭代算法DFS - Depth First Search 迭代算法上一篇我们DFS , 深度优先算法往往使用栈来实现 , 通过栈来保存过去走过的路线 , 这样将可以回来继续知道路线, 接下来我们来使用一个队列来实现一个广度优先的算法 , 对一个二叉树逐层遍历 , 逐层遍历在【数据结构与算法】十六 二叉树遍历 BFS 广度优先 递归算法中也介绍过原创 2016-07-13 00:22:14 · 585 阅读 · 0 评论 -
【数据结构与算法】十五 二叉树遍历 DFS 深度优先 递归算法
【数据结构与算法】十六 二叉树遍历原创 2016-05-01 14:19:18 · 605 阅读 · 0 评论 -
【数据结构与算法】十六 二叉树遍历 BFS 广度优先 递归算法
【数据结构与算法】十五 二叉树遍历 Breadth-First-Search 广度优先原创 2016-05-01 18:11:11 · 1107 阅读 · 0 评论 -
【数据结构与算法】十五
【数据结构与算法】十五原创 2016-04-01 09:11:37 · 338 阅读 · 0 评论 -
【数据结构与算法】十四
【数据结构与算法】十四原创 2016-03-03 14:25:40 · 363 阅读 · 0 评论 -
【数据结构与算法】二 数组反转 reverse
【数据结构与算法】二 reverse 反转前面我们提到了数组,现在我们就以数组来实现反转… 如我们定义一个数组int array[] = { 3 , 4 , 7 , 1 , 5 , 6 , 2 , 9};分析与思路反转无疑就是将数组下标第0个元素与下标最后一个元素互换,然后是第1个元素与倒数第2个元素的互换,依次类推…我们设想数组长度为基数或偶数都没有问题…我们需要一个方法,在方法中就做一件事情,原创 2016-02-20 20:01:26 · 867 阅读 · 0 评论 -
【数据结构与算法】三 █算法复杂度█ 一 时间复杂度
【数据结构与算法】三 算法复杂度上一篇文中提到 reverse ,并通过一个小的算法实现了功能,当时的数组长度不到10,那么有几个不同的数组,我们怎么来判断算法在不同数组上所花费的时间与性能优越呢…原创 2016-02-20 22:40:34 · 966 阅读 · 0 评论 -
【数据结构与算法】四 链表 反转
【数据结构与算法】四 链表 reverse链表前面我们提到数组,今天我们来聊一聊链表,链表也是一基础数据结构,在很多语言原生纯在.好了,我们不废话直接自己来实现个链表练练手…C++#include <iostream>struct node{ int num; node* next;};void out(node* head){ node* iterator = head原创 2016-02-20 22:51:00 · 625 阅读 · 0 评论 -
【数据结构与算法】五 兔子数列 斐波那契数列
【数据结构与算法】五 兔子数列 斐波那契数列 递归算法时间复杂度斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(原创 2016-02-28 10:15:38 · 1617 阅读 · 0 评论 -
【数据结构与算法】六 █算法复杂度█ 二 时间复杂度 递归算法
【数据结构与算法】三 █算法复杂度█ 二 时间复杂度 递归算法递归算法以我们上一篇中介绍的兔子算法为例 C++#include <iostream>using namespace std; int rabbit(int i){ if(i<2){ return 1 ; }else{ return rabbit(i-1) + rabbit(i-2);原创 2016-03-03 00:30:09 · 957 阅读 · 0 评论 -
【数据结构与算法】七 █约瑟夫环█ 二 动态规划
【数据结构与算法】七 █约瑟夫环█ 二 动态规划上一章节我们提到约瑟夫环拥模拟现实来实现,这一节我们来用动态规划来解决这一问题。。。背景约瑟夫环约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号0, 1,2,3…n-1分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从0开始报数,数到m-1的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。原创 2016-03-04 01:11:46 · 924 阅读 · 0 评论 -
【数据结构与算法】八 快速排序
【数据结构与算法】八 快速排序 一快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法介绍设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一原创 2016-03-08 00:20:03 · 453 阅读 · 0 评论 -
【数据结构与算法】九 二分查找
【数据结构与算法】九 冒泡排序适用于排好序的数据,如: int array[] = {1,2,3,6,7,8,9};原理二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则原创 2016-03-12 23:17:49 · 456 阅读 · 0 评论 -
【数据结构与算法】十 █算法复杂度█ 二 空间复杂度
【数据结构与算法】十 █算法复杂度█ 二 空间复杂度 一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分。 (1)固定部分。这部分空间原创 2016-03-17 22:52:21 · 709 阅读 · 0 评论 -
【数据结构与算法】计算机之父
【计算机之父】艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日)|计算机之父 国籍 英国 毕业院校剑桥大学国王学院,普林斯顿大学二战经历主要是破译敌方密码的工作。由于破译工作的需要,他参与了世界上最早的电子计算机的研制工作.他的工作取得了极好的成就,因而于1945年获政府的最高奖——大英帝国荣誉勋章(O.B.E.勋章)。被迫害后逝世195原创 2016-02-17 15:38:01 · 2822 阅读 · 0 评论 -
【数据结构与算法】十八 二叉树遍历 DFS 深度优先 迭代算法
【数据结构与算法】十八 二叉树遍历 DFS 深度优先 迭代算法DFS - Depth-First-Search 迭代算法栈是实现递归的最常用的结构,利用一个栈来记下尚待遍历的结点或子树,以备以后访问,可以将递归的深度优先遍历改为迭代的算法。非递归前序遍历:遇到一个结点,就访问该结点,并把此结点推入栈中,然后下降去遍历它的左子树。遍历完它的左子树后,从栈顶托出这个结点,并按照它的右链接指示的地址再去原创 2016-07-08 23:56:03 · 993 阅读 · 0 评论