数据结构
大数据学习爱好者
想学好技术的年轻人
展开
-
数据结构--直接插入排序
主要的插入排序 1.直接插入排序原创 2019-07-08 16:48:32 · 162 阅读 · 0 评论 -
数据结构--交换排序--快速排序
快速排序算法是利用一趟快速排序,一趟快排一般都是取第一个数作为准基数进行排序,将 一串数据分成两个部分, 第一部分都比准基数小,第二部分都比准基数大,如:(-------第一部分------准基数------ 第二部分),也就这样以准基数分成了两个部分,接下来这两个部分继续使用一趟快排(可 以用递归的方法),以此类推,最后数据显示是从小到大的排列顺序。 思路: 1.选择一个标准数,然后遍历数组,...原创 2019-08-01 00:45:33 · 163 阅读 · 0 评论 -
数据结构--交换排序--冒泡排序
从第一个数开始,依次往后比较,如果前面的数比后面的数大就交换(相邻两个数),否则不作处理。这就类似烧开水时,壶底的水泡往上冒的过程。 算法思路: N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。 import java.util.Arrays; public class code1 { publ...原创 2019-07-31 21:16:10 · 115 阅读 · 0 评论 -
数据结构--回溯法
. 简单概述 回溯法思路的简单描述是:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。详细的描述则为: 回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如果不可行,则跳过对该节点为根的子树的搜索,逐层向其祖先节点回溯;...原创 2019-08-04 15:56:14 · 861 阅读 · 0 评论 -
数据结构--选择排序--堆排序
对于堆来说,一个完全二叉树,父节点的值大于子节点的值。完全二叉树的生成是从上往下,从左到右 堆排序步骤: 1.将无序构建一个堆,根据升序降序选择大顶堆或者小顶堆 2.将堆顶元素和末尾元素交换,将最大的元素沉到数组末端 3.重新调整结构, ...原创 2019-08-03 15:30:33 · 108 阅读 · 0 评论 -
数据结构--队列
队列也是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素。 队列像排队。 队列是一种先进先出的数据结构 删除是 0(n),因为删除一个元素,数组的每个位置都要向前移动一个位置。 代码实现: 思路: 1.入队,创建一个新的数组元素元素是原来数组扩容一个。把原来的元素拷贝新的数组中,把新的元素添加到队尾 2.出队,创建一个新的数组元素元素...原创 2019-07-16 12:20:38 · 100 阅读 · 0 评论 -
数据结构--栈
栈也是线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 栈是限定仅在表尾进行插入和删除操作的线性表。 栈像向桶里装东西。 向栈添加元素称为入栈,向栈中取元素称为出栈。 栈是一种后进先出的数据结构。 允许插入和删除的一端叫做栈顶。栈元素是具有线性关系,即前驱后继关系。特殊的线性表。 应用:word 编辑器–撤销 Word 的撤销是用的是栈。 程序调用的系统...原创 2019-07-15 17:36:26 · 192 阅读 · 0 评论 -
位运算---基本概念与用法
位运算:就是对整数在内存中的二进制位进行操作,and逻辑运算符 1.x&1==1 or 0 判断奇数还是偶数。 2.x=x&(x-1)>清零最低位的1 3.x&-x=>得到最低位的1 例子:1.2-> 10&01=0可以判断是偶数。向&1等于0则是偶数,&1等于1则为奇数 2.7->111&(110)=110清除了最...原创 2019-07-14 21:21:30 · 413 阅读 · 0 评论 -
数据结构之树
双亲节点是子树的根节点。 路径就是根节点到目标节点到路径。 层: 完全二叉树,从上往下,从左向右。 不连续就不是完全二叉树。 二叉树 定义一个节点代码如何:` public class TreeNode { //权值 int value; //左节点 TreeNode lNode; //右节点 TreeNode rNode; /...原创 2019-06-28 17:17:53 · 152 阅读 · 0 评论 -
数据结构---选择排序---简单选择排序
简单选择排序 简单选择排序代码思想 1.从待排序序列中,找到关键字最小的元素 2.如果最小的元素不是待排序第一个元素,将其和第一元素互换 3.在从剩余的元素找最小。重复。第二小的和第二位置上的元素交换 ...原创 2019-07-09 17:47:11 · 137 阅读 · 0 评论 -
数据结构---希尔排序
希尔排序适用于数据量大而且无序,直接插入排序的适用于数据量小,而且无序。 对待排序待数据进行先宏观调整,再微观调整。 按步长划分,步长取值从大到小。直至为1。 首先按照 9/2 步长划分。 2,1,0 一组。–步长为4 分成了 4 个部分,每个部分进行一个直接插入排序。(2,1,0)进行插入排序。 一轮过去之后步长再除以2.直到步长为0. 代码 public class code1 { ...原创 2019-07-09 09:30:20 · 283 阅读 · 0 评论 -
数据结构--散列表
散列概念 散列是一种用实现信息存储和快速检索的技术 1.散列的引入 例子:要在字符集合为256的元素中查找第一个重复的字符。 一般做法:1.创建一个数组,存储这些字符,并且对元素进行初始化然后遍历数组进行比较+1。关键字为k的元素将存储到数组k位置, 散列函数 散列函数就是把“键”转换索引 散列函数设计原则:计算简单,分布均匀 1.常见哈希函数 散列冲突 线行探测法:reha...原创 2019-09-03 10:20:21 · 150 阅读 · 0 评论