数据结构与算法
文章平均质量分 71
阅微草堂123
博观而约取,厚积而薄发!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构1-数据结构概述
本章主要学习了一些关于数据结构的概念,总结如下: 1.数据结构:计算机硬件和软件紧密结合的科学,包括:算法、数据存储架构、排序、搜索、程序设计概念和哈希函数等;2.数据:未经处理原始数字、文字、符号、图像等;3.数据处理:将数据处理成信息;4.算法:解决某一问题而设计有限数目机械性、重复性指令和计算步骤;5.符合算法5个条件: 输入、输出、有穷、有效和明确性;6.表示算法方法:文字、伪代码、表格原创 2016-03-18 14:56:56 · 543 阅读 · 0 评论 -
数据结构9-查找
9.查找9.1 简介查找是在一组数据中查找需要检索的数据,并输出他的位置。查找按照数据量的大小分为内部查找和外部查找:内部查找:数据量较小,可以直接载入内存进行查找;外部查找:数据量较大的文件,无法一次载入内存处理,需要辅助存储器来分次处理。根据在查找过程中查找的数据是否变动将查找区分为静态查找和动态查找:静态查找:查找过程中,查找数据不会增加、删除或者更新等行为;原创 2016-03-23 17:00:31 · 1012 阅读 · 0 评论 -
数据结构8-排序2
8.2.6 快速排序法快速排序法是目前公认的最佳排序法,他的原理和冒泡排序法一样都是利用交换的方式,不过它会先在数据中找到一个值称为支点,把小于支点的数据放在左边,而大于支点的数据放在右边,再以同样的方式处理左右两边数据,直到完成为止。步骤如下:对于键值集合K1,K2........Kn,快速排序步骤如下:1)取K为第一个键值(支点);2)由左向右找出一个键值Ki,使得Ki>K;3)由右向左找出一原创 2016-03-23 15:38:06 · 542 阅读 · 0 评论 -
数据结构8-排序1
8.1 简介 排序(Sorting)是指将一组数据按照一定规则调换位置,使数据具有某种次序关系。这里排序的域称为键(key),域中的值称为”键值“。 排序过程中,数据的移动方式分为:直接移动、逻辑移动; 直接移动:直接交换存储数据的位置; 逻辑移动:不移动数据的存储位置,仅仅改变指向这些数据的辅助指针位置。 直接移动耗费的时间成本太高,而逻辑移动只需要改变指针的位置就可以达到目的。8.1.原创 2016-03-23 09:39:16 · 684 阅读 · 0 评论 -
数据结构7-图
7.1 简介 图(Graph)是一种描述两个顶点之间是否联通的关系图,在图中如果连接两个顶点的边被赋予权值,则这种图就称为”网络“。 图被广泛应用于数据结构中的最短路径查找、拓扑排序外,还可以作为系统分析中一时间为评价标准的评估与审查手段。 图最早是由瑞士数学家欧拉于1736提出来的解决”肯尼兹堡桥梁“问题。 图是由顶点和边组成,即vertice&edge。 表示方法:G=(V,E)。其中原创 2016-03-21 17:24:37 · 534 阅读 · 0 评论 -
数据结构6-树
6.1 简介 树形结构是日常生活中广泛应用的非线性结构。应用场景如企业内部组构、家族内族谱、计算机操作系统和数据库系统。 性质: 1)根,是一个特殊的结点(root); 2)其余结点分为n个互斥的集合,每个集合称为子树。 树根/根节点; 父结点; 子结点; 兄弟节点:有共同父结点的; 结点分支度:子结点的个数称为该结点的分支度; 叶子结点:没有子结点的结点,即分支度为0的结点;原创 2016-03-21 15:35:23 · 645 阅读 · 0 评论 -
数据结构5-队列
5.1简介 队列(Queue)和堆栈一样是一种有序链表,属于抽象数据类型。不同在于是先进先出(First in,First out,FIFO)。 堆栈只需要一个top指针指向堆栈顶端即可,但是队列必须使用front和rear两个指针分别指向队列的前端和尾端。基本操作: 1)create:建立空队列; 2)add:将新数据加入到队列的尾端,返回新队列; 3)delete:删除队列前端数据,并原创 2016-03-21 14:40:27 · 584 阅读 · 0 评论 -
数据结构4-堆栈
堆栈:相同数据类型的组合,具有先进后出的特性(Last in,First out,LIFO)。 4.1简介 特性: 1)只能从顶端存取数据; 2)数据的存储符合后进先出原则。 基本运算:create:建立一个空堆栈;push:存放顶端结构并传回新堆栈;pop:删除顶端结构并传回新堆栈;empty:判断堆栈是否为空堆栈,是返回true,否返回false;full:判断堆栈是否已满,是原创 2016-03-21 14:10:42 · 690 阅读 · 0 评论 -
数据结构3-链表
链表是存储许多同类型的数据元素组成的有序列表。链表如同火车,人数决定车箱数,人多就向系统申请多加一个车厢,人少就去除一个车厢。这种动态分配内存的方式,按需分配,可以避免内存的浪费。3.1指针简介 指针是存储变量地址的变量,声明方式: 数据类型 *指针名称int *p=&val;//int类型的指针p指向val;动态内存分配: 就是程序在执行的时候向系统申请内存,程序运行结束应该手动释放内存。否原创 2016-03-21 10:41:10 · 439 阅读 · 0 评论 -
数据结构2-数组和稀疏矩阵
2.1 线性表 线性表中数据可以是任意类型,但是同一个线性表的每个元素的数据类型必须属于同一个类型。 1.静态数据结构: 优点是将有序表的数据元素存储在连续的存储空间中。数组结构就是典型的静态数据结构,在设计时候相当简单,读取与修改表中任意元素时间都固定。 缺点是删除或者加入数据时需要移动大量的数据。内存空间分配在编译的时候就设定好了,数组在建立前期就需要申请最大的固定内存空间,造成内存浪费原创 2016-03-18 22:02:17 · 1962 阅读 · 0 评论 -
数据结构和算法总结
数据结构:数据与数据之间的关系; 算法:解决问题的方法步骤。主要叙述了数据的存储、排序、遍历、查找。一、数据的存储方法 线性表List:顺序表、单链表、循环链表、双链表; 栈Stack:先进后出,主要操作有pop和push; 队列Queue:先进先出; 串:主要是字符的操作,包括顺序存储和链式存储; 数组、特殊矩阵和广义表:这个主要针对特殊情况而设置的特殊存储方式; 树:二叉树存储;原创 2016-09-06 21:32:22 · 614 阅读 · 0 评论
分享