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