自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 JAVA实现八皇后问题-(使用回溯加双端算法)

八皇后描述-图解代码实现package com.king2.kewai;import java.util.*;//8皇后的演示思想,回溯和栈的思想public class Practice8Queen { public static int countNumber=0; public static int successfulNumber=0; p...

2019-12-16 22:04:24 119

原创 JAVA实现一个迷宫回溯-(使用回溯加双端算法)

回溯的特点可以用作与不可预测的操作步骤次数但是步骤模式是一样的就是可以使用回溯方法一个字符匹配组合算法代码 public static void stringCombinationVersion2(ArrayList<ArrayList<String>> resultList,String [] macthingArr,Stack<Integer>...

2019-12-16 21:51:52 219

原创 JAVA实现笛卡尔积-(使用回溯加双端算法)

前周回溯特点:就是方法调用本身自己实现一个回溯效果,注意调用之后的回溯方法中一定要有结束条件否则会出现栈溢出错误栈特点: 就是中数据结构其存入顺序是先进后出代码实现//练习笛卡尔积//思路:使用栈(存储各个组下某一个的循环索引)和回溯(用于实现各个组的循环)public class PracticeCartesian { public static void main(S...

2019-12-16 10:14:51 390

原创 JAVA实现字符串之间的组合方式-(使用回溯加双端算法)

前奏回溯特点:就是方法调用本身自己实现一个回溯效果,注意调用之后的回溯方法中一定要有结束条件否则会出现栈溢出错误栈特点: 就是中数据结构其存入顺序是先进后出代码实现//各个字符串组合练习public class PracticeStringCombination { public static void main(String[] args) { Strin...

2019-12-16 10:11:00 338 2

原创 JAVA中缀表达式转后缀表达式代码和思路

java中缀表达式转后缀表达式代码和思路思路:后缀表达式 (逆波兰表达式) 特点:扫描其表达式是从前往后扫描,运算符都是位于操作数之后 例子 :2-4-2+3 转换成后缀表达式:2 4 - 2 - 3 + 中缀转后缀的思路: 、 1:将一个字符串形式的中缀表达式转换成字符数组 ...

2019-12-13 15:28:47 180

原创 55555

123

2022-11-25 14:52:24 138 1

原创 JAVA实现菱形打印(用到的思路是 Math.abs)

思路:1:创建一个外层循环用于每次循环输出一次空白符及对应的* 0-9次循环2:在外层循环内创建一个输出空白符的循环方式 怎么控制输出次数呢就要用到绝对值 循环条件 int index1=0;index1<Math.abs((index+4)-8);index1++3:在外层循环内创建一个输出字符的循环方式 怎么控制输出次数呢 int index2=(Math.abs((...

2020-04-26 17:06:39 264

原创 JAVA中的1.8新特性-质问老程序员你确定你看得懂java代码吗?

简介java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式、函数式接口、方法引用、默认方法、新工具(编译工具)、Stream API、Date Time API、Optional等 。 当前很多公司的老产品依然使用的java7,甚至开发人员开发新产品时依然没有选择升级,写关于java8系列文章的目的在于梳理和分享java8新增的主要特性,开发时也可以用作...

2020-03-25 21:28:20 302

原创 JAVA中查找算法-(插值查找算法-动态比例查找)

前奏前奏:插值查找是一种对折半查找算法的一种升级版,也是一种自适应查找算法(按照对应查找的值,设置对应的比例中间值查找)思路核心思路就是,当前元素位置差 left + (right - left) * (findVal - arr[left]) / (arr[right] - arr[left]);注意:如果left和right都指向了同一个元素的时候就要注意在添加一个判断条件searc...

2020-03-25 11:48:04 155

原创 JAVA中查找算法-(二分查找算法-固定比例查找)

前奏 1. 如果想要使用二分查找法,当前的查询列表一定是要有序的,也就是排好序的二分查找的取中间值公式:(left+right)/2; 2. 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法思路1:二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较, 如果x<a[n/2],则只要在数组a的左半部分继续搜索x, 如果...

2020-03-24 22:37:11 157

原创 JAVA十大排序中的-(基数排序)

前奏基数排序是桶排序升级版,利用桶思想将移动对应的位数放到各个对应的桶中,在取出达到一定次数下就会变成有序列表也是一种空间换时间的思想思路思路: 1:创建一个长度为10的二维数组,代表十个桶 2:然后遍历对应的无序列表移动当前位数按照位数值放入到对应的桶中 ,本次循环无序列表结束后也是放入结束后,然后依次取出 3:重复2步骤直到最大位数移...

2020-03-24 21:48:44 85

原创 JAVA十大排序中的-(归并排序)

前奏该算法是采用分治法的典型应用,将一个无序序列分组诺干个,然后对该小组进行排序,排序完以后,将各个小组合并排序比较,直到将诺干个小组组合成一组就是一个有序列表了思路1:将一个无序列表依次的回调拆分成诺干个小组(提示:小组里面的元素可以是一个最多是2个)先将左边的进行拆分合并排序,在执行右边的拆分排序2:然后无法回调的时候就将当前小组内容进行合并排序,然后返回到拆分为当前层的层栈上进行合...

2020-03-24 20:00:16 293

原创 JAVA十大排序中的-(快速排序)

前奏前奏:是一种交换式且高效的分治排序算法 简称:快速排序课外 仅供参考如果与一组8000个数据的数组排序的情况下 时间差不多4毫秒不到如果与一组80000个数据的数组排序的情况下 时间差不多50毫秒不到如果与一组800000个数据的数组排序的情况下 时间差不多180毫秒不到如果与一组8000000个数据的数组排序的情...

2020-03-24 16:31:28 245

原创 JAVA十大排序中的-(希尔排序)

前奏希尔排序是内部算法,就是将一组无序数据按照一定规律逻辑拆分几小组每小组都会进行一次插入排序思路思路: 1:创建一个 循环每次循环算出指定有多少个小组及对应的步长 2:然后按照索引(步长)开始 该索引下对应的步长范围区域进行插入排序比较课外仅供参考如果与一组8000个数据的数组排序的情况下 时间差不多10毫秒不到如果与一组80000个数据的数...

2020-03-24 14:31:20 89

原创 JAVA十大排序中的-(插入排序)

前奏是相当于一种时间复杂度中的平方阶概念的数组排序算法思路思路: 1:创建一个外层循环默认索引从1开始,判断条件直到小于总长度 2:将当前外层循环索引元素存储到一个变量中保存,并将当前外循环索引页保存到一个变量上 3:创建一个内循环while遍历条件 (外循环索引-1>=0)之间中的排好序的索引元素从后往前遍历 4:循环判断当前内循环指定的索引元素与外循环元素...

2020-03-24 14:25:33 70

原创 JAVA十大排序中的-(选择排序)

前奏是相当于一种时间复杂度中的平方阶概念的数组排序算法思路思路: 1:创建2个循环一个外循环是循环长度-1次每循环依次比较出指定索引范围里最小值 2:获取当前外循环索引对应的值默认最小元素,然后与内循环中的(外循环索引+1)的索引比较 3:如果比较成功并本次循环比较结束后将获取到的最小元素和索引与当前外层对应的索引元素交换即可课外仅供参考如果与一组8000个...

2020-03-24 14:16:26 97

原创 JAVA十大排序中的-(冒泡排序)

前奏是相当于一种时间复杂度中的平方阶概念的数组排序算法思路思路: 1:创建2个循环一个外循环是循环长度-1次每循环依次比较出指定索引范围里最大值 2:内层循环以最开始元素与相依元素比较大小如果后元素比前元素小交换位置 3:每次将本次循环最大值比较出来放到后面元素位置上,下次就无需比较该当前最大位置所以最大长度-1-外循环索引 以此类推 注意:内循环的最大数是长度在...

2020-03-24 14:12:19 91

原创 Java中普通二维数组转稀疏数组

前奏 * 提示:稀疏数组是一种特殊的二维数组 * 什么时候用到:当一个普通二维数组的默认值数量大于有效值得数量就可以用 稀疏数组进行压缩 * 特点: 第一行第一列代表:普通数组的总行数 * 第一行第二列代表:普通数组的总列数 * 第一行第三列代表:普通数组的有效个数 * 该演示整个流程: 普通二维数组---->稀疏数组---->文件----->...

2020-03-23 20:22:52 106

原创 JAVA排序算法的一些概念

前奏什么是算法:就是提高程序的运行效率、解决普通逻辑不能解决的问题前奏 :算法的时间复杂度的理解先了解时间频度:由于一个算法发费的时间与预计次数成正比的,所以执行语句(分号结尾为一条语句)次数多耗时就多少 T(n)表示 时间复杂度:就是时间频度,去掉低阶项(如:4n、3n...)和首项的常数(如:+50、+20、+5...),平方阶的时候可以去掉系数(2n^2、5n^3 去掉2和...

2020-03-20 20:56:06 98

原创 JAVA实现双向循环排序链表添加和删除操作

前奏双向循环链表特点:一个节点分为3部分,上节点(preNode)、下节点(nextNode) nodeData(当前节点数据)节点代码//创建一个节点类class MyNode{ public Object obj; //当前节点的节点元素 public MyNode nextNode; //当前节点的下一个节点 pub...

2020-03-20 16:08:23 910

原创 Java使用 单向循环链表实现约瑟夫问题

前奏链表的特点:各个相依节点的地址空间不一定是连续的,这样就充分了历用了内存中的碎片内容存约束夫小述Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓。于是决定了自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀。然后下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的...

2020-03-20 12:12:52 206

原创 Java普通表达式转换成中缀表达式并计算

前奏理解中缀表达式 实现:使用栈,一个是数值栈、一个是存储符号栈的栈集 思路: 判断是否是运算符 1:比较当前字符与栈顶的符号作比较 如果<=栈顶运算符就将栈顶符号作比较运算 直到栈顶小于当前字符等级 2:将当前字符存储到符号栈中 判断是否是括号 1:左括号就n...

2020-03-19 21:42:00 186

原创 JAVA用于单链表方式实现一个双端队列

# 前奏双端队列:可以实现队列或栈的功能有头尾添加 或 头尾删除等功能代码package com.king2.kewai;//链表实现双端队列public class PracticeLinkedDeque { public static void main(String[] args) { LinkedDeque deque=new LinkedDeque...

2019-12-17 20:58:46 139

原创 JAVA使用双向循环链表-实现约瑟夫问题

前奏链表的特点:各个相依节点的地址空间不一定是连续的,这样就充分了历用了内存中的碎片内容存约束夫小述Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓。于是决定了自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀。然后下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的...

2019-12-16 15:10:34 476

原创 JAVA实现单项循环排序链表及对应的思路

前奏:链表的特点:是各个相依节点的地址空间不一定是连续的所以这样就充分利用的内存中的碎片内存节点代码public class MyNode { public Object objectValue; //节点类内容 public MyNode nextNode; //当前节点的下一个相依节点 public MyNode(Object objectValue...

2019-12-13 16:11:46 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除