随笔分类 -  数据结构

摘要:二叉树 为什么需要数这种数据结构,它能解决什么问题? 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可以通过二分查找提高检索速度 缺点:如果要检索具体某个值,或者插入值会整体移动,效率比较低 链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点 阅读全文
posted @ 2020-10-13 23:05 IT特工 阅读(57) 评论(0) 推荐(0) 编辑
摘要:斐波那契(黄金分割法)查找算法 斐波那契算法基本介绍: 1.黄金分割点是把一条线段分割为两部分,是其中一部分与全长之比等于另一部分与这部分之比,取其前三位数的近似值为0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割 2.斐波那契数列{1,1,2,3,5,8,13,21,34,55}发现斐 阅读全文
posted @ 2020-10-08 22:54 IT特工 阅读(1403) 评论(0) 推荐(0) 编辑
摘要:插值查找的原理介绍 1.插值查找算法类似与二分查找,不同的是插值查找每次从自适应mid处开始查找。 2.折半查找中的求mid索引的公式,low表示最左边索引,high表示右边索引 mid=(low+high)/2=low+(high-low)/2 >mid=low+(key-a[low])(high 阅读全文
posted @ 2020-10-07 21:32 IT特工 阅读(366) 评论(0) 推荐(0) 编辑
摘要:二分查找也叫折半查找 思路分析: 1.首先确定数组中间的下标mid=(left+right)/2 2.然后让查找的数findval与mid进行比较 a.findval>mid;说明要查找的数在数组的右边,因此递归的向右进行查找 b.findVal<mid:说明查找的数在数组的左边,因此递归的向左边进 阅读全文
posted @ 2020-10-07 20:10 IT特工 阅读(146) 评论(0) 推荐(0) 编辑
摘要:顺序查找是java中比较常用的一种查找算法了,就是通过把要查找的数据和数组中的数据一一比较,如果找到就返回该数据在数组中的索引值 代码: package com.gcy.searcch;/** * 线性查找 * @author Administrator * */public class SeqSe 阅读全文
posted @ 2020-10-07 20:00 IT特工 阅读(231) 评论(0) 推荐(0) 编辑
摘要:基数排序(桶排序)基本介绍 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort),它是通过键值各个位的值,将要排序的元素分配至“某些桶中”,达到排序的目的 基数排序法是属于稳定性的排序,基数排序法是效率高的稳定性排序法 基 阅读全文
posted @ 2020-10-06 23:23 IT特工 阅读(188) 评论(0) 推荐(0) 编辑
摘要:归并排序基本介绍 归并排序是利用归并的思想实现的排序算法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案修补在一起,即分而治之) 代码: package com.gcy.sort; import java.util.Arrays; import 阅读全文
posted @ 2020-10-06 21:46 IT特工 阅读(117) 评论(0) 推荐(0) 编辑
摘要:快速排序介绍: 快速排序四对冒泡排序一种改进。基本思想是:通过一趟排序将要排序 的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按照此方法对这两部分数据进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 代码: package com.gcy.sor 阅读全文
posted @ 2020-10-05 21:43 IT特工 阅读(130) 评论(0) 推荐(0) 编辑
摘要:基本介绍 希尔排序是希尔在1959年提出的一种排序算法,也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也成为缩小增量排序 基本思想 希尔排序是把记录按照下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分为 阅读全文
posted @ 2020-10-04 23:31 IT特工 阅读(107) 评论(0) 推荐(0) 编辑
摘要:基本介绍 插入排序属于内部排序算法,时 对预排序的算法以插入的方式寻找该元素的适当位置,已达到排序的目的 排序思想: 插入排序的基本思想是:把n个待排序的元素看成为一个有序表和一个无需表,开始有序表中只包含一个元素,无需表中包含n-1个元素,排序过程中每次从无需表中取出第一个元素,把它的排序码依次与 阅读全文
posted @ 2020-10-04 16:41 IT特工 阅读(128) 评论(0) 推荐(0) 编辑
摘要:基本介绍 选择式排序也属于内部排序法,是从预排序的数据中,按指定的规则选出某一个元素,再依照规定交换位置后达到排序的目的 排序思想: 选择排序(select sorting)也是一种简单的排序方法。它 基本思想是第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]进行交换,第二次从ar 阅读全文
posted @ 2020-10-04 14:54 IT特工 阅读(146) 评论(0) 推荐(0) 编辑
摘要:基本介绍: 冒泡排序(Bubble Sorting)的基本思想:通过对待排序序列从前向后(从下表较小的元素开始),依次比较相邻元素的值,如发现逆序则交换,使值较大的元素逐渐从前移向后面。 因为在排序过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此对序列是否有序首 阅读全文
posted @ 2020-10-04 12:06 IT特工 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:排序算法 排序:将一组数组按照一定的顺序进行排列的过程 排序的分类 内部排序:是指将需要处理的所有数据都加载到内部存储器中进行排序 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 外部排序:数据量过大,无法全部加载到内存中需要借助外部存储进行排序 算法的时间复杂 阅读全文
posted @ 2020-10-03 21:22 IT特工 阅读(275) 评论(1) 推荐(0) 编辑
摘要:首先通过两个小案例来认识一下递归 package com.gcy.recursion; import com.gcy.linkedlist.TestStack; /** * 简单回顾递归调用 * @author Administrator * */public class RecursionTest 阅读全文
posted @ 2020-10-03 17:38 IT特工 阅读(342) 评论(0) 推荐(0) 编辑
摘要:迷宫问题:就是将一个小球放置在一个位置,通过一定的策略找到出口,在本篇中制定的策略只是其中一种,如果有兴趣,可以修改策略,来玩一玩,其实也会牵扯到另一个问题就是可以制定不同的策略,所有的距离长度是不一样的,可以将这些策略做一个统计,获取迷宫问题的最短路径 ,下面就直接代码了 迷宫的样式可以自己设定 阅读全文
posted @ 2020-10-03 17:28 IT特工 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:x相信在看这篇东西的朋友,已经对什么时八皇后问题有了一个比较清晰的了解。 简单来说就是在一个8X8的棋盘上放置八个皇后,他们不在同一行、同一列,同一斜线上,问有多少种方式?答案时92种 下面就直接上代码了,如果代码可以优化欢迎留言! package com.gcy.recursion; import 阅读全文
posted @ 2020-10-03 17:18 IT特工 阅读(248) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示