同名公众号 - 人生代码
这个作者很懒,什么都没留下…
展开
-
图解算法系列(十五):希尔排序法
我们知道当原始记录的键值大部分已经排好顺序的情况下,插入排序法会非常有效率,因为它不需要执行太多的数据搬移操作。“希尔排序法”是D.L.Shell在1959年7月所发明的一种排序法,可以减少插入排序法中数据搬移的次数,以加速排序的进行。排序的原则是将数据区块分成特定间隔的几个小区块,以插入排序法排完区块内的数据后再渐渐减少间隔的距离。下面我们用63,92,27,36,45,71,58,7数列从大...原创 2019-04-29 11:47:57 · 2838 阅读 · 0 评论 -
图解算法系列(十四):插入排序法
插入排序法是将数组中元素,逐一与已经排序好的数据进行比较,前两个元素先排好,再将第三个元素插入适当的位置,所以这三个元素仍然是已经排序好的,接着将第四个元素加入,重复此步骤,直到排序完成为止,可以看做是在一串有序的记录R1,R2,…Ri,插入新的记录R,使得 i + 1 个记录排序妥当。下面我们仍然用 55, 23, 87,62,16 数列从小到大的排序过程来说明插入排序法演算流程,在下面图中,...原创 2019-04-27 21:13:46 · 1107 阅读 · 0 评论 -
图解算法系列(十三):选择排序法
选择排序法也算法枚举法的应用,就是反复从未排序的数列中取出最小的元素,加入到另一个数列中,最后的结果即为已经排好序的数列,选择排序法可使用两种方式排序,一种为在所有的数据中,从小到大排序,将最大值放入第一个位置,另一个是从小到大排序,将最大值放入最后一个位置,例如,一开始在所有的数据中挑选一个最小项放在第一位置(假设是从小到大排序),再从第二项开始挑选一个最小项放在第二个位置,以此重复,直到完成排...原创 2019-04-26 22:09:39 · 8751 阅读 · 0 评论 -
图解算法系列(十二):冒泡排序
冒泡排序法又称交换排序法,是从观察水中气泡的变化构思而成的,原理是从第一个元素开始比较相邻元素的大小,若大小顺序有误则对调后再进行下一个元素的比较,就仿佛气泡逐渐从水底逐渐冒泡上升到水面一样,如此扫描过一次之后就可以确保最后一个元素位于正确的顺序。接着再逐步进行第二次扫描,直到完成所有元素的排序关系为止。下面使用55,23,87,62,16数列来演示排序过程,这样大家可以清楚地知道冒泡排序具体流...原创 2019-04-25 21:26:09 · 1095 阅读 · 0 评论 -
图解算法系列(十一):认识排序
“排序”功能对于计算机相关领域而言是一项非常重要且普遍的工作,所谓“排序”,就是☞将一组数据,按照指定的规则调换位置,使数据具有某种顺序关系,用以排序的依据被称为键“Key”,他所包含的值就称为“键值”。通常键值的数据类型有数值类型,中文字符串类型以及非中文字符串类型三种。如果键值为数值类型,在比较的过程中,就直接以数值的大小作为键值大小比较的依据,如果键值为中文字符串,就按照该中文字符串从左到...原创 2019-04-24 20:22:26 · 553 阅读 · 0 评论 -
图解算法系列(十一):哈希表
哈希表是一种存储记录的连续内存,通过哈希表函数的应用,可以快速存取与查找数据,基本上,所谓哈希法,就是将本身的键值,通过特定的数学函数运算或使用其他方法,转换成相对应的数据存储地址,如图所示现在我们介绍有关哈希函数的相关名词bucket(桶)哈希表中存储数据的位置,每一个位置对应到唯一一个地址,桶就好比一个记录slot(槽)每一个记录中可能包含好几个字段,而slot☞就是“桶”中的字段。...原创 2019-04-23 21:23:58 · 1665 阅读 · 0 评论 -
图解算法系列(十): 图形结构简介
树形结构用于描述节点与节点之间"层次"的关系,但是图形结构讨论两点之间"联通与否"的关系,图形理论起源于1736年,是一位瑞士数学家欧拉为了解决"哥尼斯堡"的问题所想出来的一种数据结构理论,这就是著名的"七桥问题".简单来说,就是有七座横跨四个 城市的大桥,欧拉所思考的问题是这样的,“是否有人在只经过每一座桥梁一次的情况下,把所有地方都走过一次而且回到原点”欧拉当时是用的方法是以图形结构来进...原创 2019-04-22 21:21:31 · 1224 阅读 · 2 评论 -
图解算法系列(九): 二叉树
一般树形结构在计算机内存中的存储方式是以链表为主.对于 n 叉树来说,因为每一个节点的度数都不相同, 所以我们必须为每个节点都预留存放n个链接字段的最大存储空间,因而每个节点的数据结构如下:请大家注意,这种 n 叉树十分浪费链接存储空间,假设此 n 叉树 有 m 个节点, 那么此树共有 n * m个链接字段,另外,因为除了树根外,每个非空链接都指向一个节点,所以得知空链接个数为 n * m -...原创 2019-04-22 20:29:31 · 916 阅读 · 0 评论 -
图解算法系列(八):树的基本观念
"树"是由一个或一个以上的节点(Node)所组成的,存在一个特殊的节点,称为树根(Root), 每一个节点可代表一些数据和指针组合而成的记录,其余节点则可以分为n>=0个互斥的集合,即(T1, T2, T3, T4, … , Tn), 每一个子集合本身也是一种树形结构以及此根节点的子树一颗合法的树,节点间可以互相链接,但是不能形成无出口的回路.例如图2-23就是一颗不合法的树,因为节点间...原创 2019-04-21 21:12:35 · 788 阅读 · 0 评论 -
图解算法系列(七):树形结构
树形结构是一种日常生活中应用相当于广泛的非线性结构,包括企业内的组织结构,家族的族谱,篮球赛程等,另外,在计算机领域中的操作系统与数据库管理系统都是树形结构,例如 windows unix 操作系统和文件系统, 均是一种树形结构的应用,windows 的文件资源管理器就是以树形结构来存储各种文件的.例如,在年轻人喜爱的大型游戏中,需要获取某些物质所在的地形信息,如果程序是依次从构成地形的模型...原创 2019-04-21 19:58:26 · 3411 阅读 · 0 评论 -
图解算法系列(六): 队列
队列是一种"先进先出"的数据结构,和堆栈一样都是一种有序性表的抽象数据类型,就好比称作高铁时买票的队伍,先到的人当然可以优先买票,买完后就从前端离去准备进入站台.队列在计算机领域的应用也相当广泛,例如计算机的模拟, CPU的作业调度,外围设备联机并发处理系统的应用以及图形遍历的广度优先搜索法,堆栈只需一个顶端,指针指向堆栈顶端,而队列则必须使用 front 和 rear 两个指针分别指向对象的...原创 2019-04-21 18:51:25 · 626 阅读 · 0 评论 -
图解算法系列(五): 堆栈
堆栈是一组相同数据类型的组合,具有"后进先出"的特性, 所有的操作均在堆栈结构的顶端进行,所谓"后进先出"的概念,其实就是如同自助餐中餐盘从桌面往上一个一个的叠放,顾客取用时则从最上面的餐盘先拿到,这就是典型的堆栈概念的应用.堆栈是一种抽象数据,具有以下特性,1 只能从堆栈顶端存取数据2 数据的存取符合"后进先出"的原则堆栈的基本运算有 5 种,基本运算 ...原创 2019-04-21 18:32:55 · 866 阅读 · 0 评论 -
图解算法系列(四): 链表
链表是由许多相同的数据类型的数据项按照特定的顺序排列而成的线性表,链表的特点是各个数据项在计算机内存中位置是不连续而且随机存放的,其优点是数据的插入或者删除都相当方便,有新数据加入就向系统申请一块内存空间,而数据被删除后,就可以把这块内存空间还给系统,加入和删除都不需要移动大量的数据,其缺点就是设计数据结构时较为麻烦,并且在查找数据时,也无法像静态数据那样可随机读取数据,必须按顺序查找该数据为止....原创 2019-04-21 15:35:56 · 611 阅读 · 0 评论 -
图解算法系列(三):数组
数组"数组"结构其实就是一排紧密相邻的可数内存,并提供了一个能够直接访问单一的数据内容的计算方法.我们其实可以想象一下自家的信箱,每一个信箱都有住址,其中路名就是名称.而信箱号码就是索引,如下图所示,邮递员可以按照信件上的住址把信件直接投递到指定的信箱中,这就是好比程序设计语言中数组的名称是表示一块紧密相邻内存的起始地址位置,而数组的索引就是来表示从此内存起始地址的第几区块.通常数组的使用...原创 2019-04-21 14:41:15 · 638 阅读 · 0 评论 -
图解算法系列(二): 数据与信息
谈到数据结构,首先就必须要了解什么是数据(Data)与信息(information).从字以上来看,所谓数据(Data),指的就是一种未经处理的原始文字,数字,符号或者图形等,我们可将数据分为两大类: 一类为数值数据(Numberic Data), 例如0,1,2,3,4,5,6,7,…等所组成可用运算符(Operator)来进行运算的数据,另一类为字符数据(Alp Data).像A,B,…等非...原创 2019-04-21 14:14:04 · 508 阅读 · 0 评论 -
图解算法系列一: 认识数据结构
人们设计和制造计算机的主要原因之一,就是用它来存储和管理一些数字化的数据和信息. 当我们要求计算机解决问题时, 必须以计算机了解的模式来描述问题, 数据结构是数据的表示方法, 也就是指计算机中存储数据的方法.我们可以将数据结构看成是在数据处理过程中,一种分析,存储,组织数据的方法与逻辑,他考虑了数据之间的特性与相关关系,简单来说,数据结构定义就是一种程序设计的优化的方法论,他不仅讨论到存储的数据,...原创 2019-04-20 22:11:21 · 1268 阅读 · 0 评论