专注细节
努力进步

数据结构

查找

burness阅读(501)评论(0)

1,查找基本概念 分为静态查找和动态查找;静态查找时构造的存储结构成为静态查找表,动态查找时构造的存储结构为动态哈招标 2,静态查找表 静态查找表包括:顺序表、有序顺序表、索引顺序表三种结构。 2.1 顺序表 在顺序表上查找的基本思想是:从 […]

基数排序

burness阅读(478)评论(0)

基数排序也称为桶排序,是一种当关键字为整数类型时非常有效的排序方法。 基本思想如下:设待排序的数据元素关键字是m位d进制的整数,不足m位的高位补零,设置d个桶,令其编号分别为0,1,2,…,d-1。首先按关键字最低位的数值依次把 […]

归并排序

burness阅读(562)评论(0)

归并排序主要是二路归并排序。二路归并排序的基本思想是:设数组a中存放了n个数据元素,初始时把他们看成是n个长度为1的有序子数组,然后从第一个子数组开始,把相邻的子数组亮亮合并,得到n/2的整数上界个长度为2的新的有序子数组,当n为奇数时,最 […]

交换排序

burness阅读(433)评论(0)

利用交换数据元素的位置进行排序的方法称作叫换排序,常用的交换排序包括冒泡排序方法和快速排序方法。 1,冒泡排序 冒泡排序的基本思想是:第一次时,设数组a中存放了n和数据元素,循环进行n-1次比较相邻两个元素大小,若前一个大于后一个则交换,这 […]

选择排序

burness阅读(412)评论(0)

选择排序 选择排序的基本思想是每次从待排序的数据元素集合中选取关键字最小(最大)的数据元素放到数据元素集合的最前(或最后),数据元素不断缩小,当数据元素集合为空时选择排序结束。常用的选择排序有直接选择排序和堆排序两种。 1,直接选择排序 直 […]

插入排序

burness阅读(361)评论(0)

插入排序 插入排序包括直接插入排序和shell排序 1,直接插入排序 基本思路:顺序地把待排序的数据元素按大小插入到已经排序的数据元素的子集合中,排序过程如下:  直接插入排序代码 2,shell排序 shell排序基本原理是把待排序的数据 […]

图之最短距离

burness阅读(419)评论(0)

最短路径 1,从一个结点到其余各结点的最短路径 a,狄克斯特拉算法 算法原理:设置两个结点的集合S和T,集合S中存放已经找到的最短路径的结点,集合T中存放当前还未找到的最短路径的结点。初始情况时,集合S中只含有源点,设为V0,然后不断从集合 […]

最小生成树算法

burness阅读(540)评论(0)

1,最小生成树 首先,要想明白什么是最小生成树,得先知道什么是连通图,连通图的概念是,对无向图,图中任意两点都可有路径达到为连通图;对有向图,任意两节点有路径到达为强连通图。而最小生成树是原图的最小连通子图,包括原图中所有的点,且保持图联通 […]

图的两种遍历算法

burness阅读(438)评论(0)

图的两种遍历算法 1,深度遍历 1) 访问节点v,并标记为已访问 2)查找节点v的第一个邻接节点w; 3)若w存在,则继续执行,不存在则算法结束 4)若w尚未被访问,则递归访问节点w 5)若w标记为已访问,则查找v的w邻接节点的下一个节点, […]

《剑指offer》面试题8旋转数组的最小值

burness阅读(444)评论(0)

一、什么是旋转数组? 旋转数组是把一个数组的开始的若干元素搬到数组的末尾,递增数组的旋转数组,将递增数组的开始的若干元素放置到数组的末尾,那么很显然数组前段部分中的每个元素都不小于后面那段中的每个元素。例如{1,2,3,4,5}旋转前两个元 […]