![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
行躬
纸上得来终觉浅,绝知此事要躬行。
展开
-
环形队列简单实现
package com.xurong.queue;import java.util.Scanner;public class CircleArrayQueueDemoTest{ public static void main(String[] args) { //创建数组模拟的列表对象 CircleArrayQueueDemo arrayQueue = new CircleArrayQueueDemo(3); //接收用户输入 char key = ' '; Scanner原创 2021-09-25 14:41:12 · 138 阅读 · 0 评论 -
希尔排序---交换法与移位法
package com.xurong.sort;import java.util.Arrays;public class ShellSort { public static void main(String[] args) { int[] array = {8,9,1,7,2,3,5,4,6,0}; System.out.println("原始数据为:\n" + Arrays.toString(array)); shellSort(array); } /** * 希尔排序原创 2021-08-04 10:13:09 · 166 阅读 · 0 评论 -
希尔排序推导理解
package com.xurong.sort;import java.util.Arrays;public class ShellSort { public static void main(String[] args) { int[] array = {8,9,1,7,2,3,5,4,6,0}; System.out.println("原始数据为:\n" + Arrays.toString(array)); shellSort(array); } /** * 希尔排序原创 2021-08-04 10:01:44 · 164 阅读 · 0 评论 -
选择排序同一个数组耗费时长测试
package com.xurong.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class InsertSort { public static void main(String[] args) {// int[] array = {101,34,119,1,-1,89};// insertSort(array); /*以下通过计算排序原创 2021-08-03 22:37:36 · 76 阅读 · 0 评论 -
插入排序算法理解
package com.xurong.sort;import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] array = {101,34,119,1,-1,89}; insertSort(array); } /** * 插入排序 * 将数组看出是有序和无序两部分,将无序部分的每个数与有序部分做对比,找到合适位置进行插入,从而达到对数组排原创 2021-08-03 22:07:36 · 54 阅读 · 0 评论 -
选择排序-及执行效率比较
package com.xurong.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class SelectSort { public static void main(String[] args) {// int[] array = {101,34,119,1};// selectSort(array); /*以下通过计算排序所耗费的时原创 2021-08-03 17:08:36 · 141 阅读 · 0 评论 -
冒泡排序优化--及其运行时间测试
package com.xurong.sort;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { // int[] arry = {3,9,-1,10,-2};//定义一组数据用于测试 int[] arry = {1,2,3,4,5,6,};//定义一组数据用于测试 boolean flag = false;//用于判断是否还进行交换 fo原创 2021-08-02 11:02:28 · 640 阅读 · 0 评论 -
冒泡排序代码实现
package com.xurong.sort;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int[] arry = {3,9,-1,10,-2};//定义一组数据用于测试 for (int i = 0; i < arry.length - 1; i++) { for (int j = 0; j < arry.length原创 2021-08-02 10:13:42 · 118 阅读 · 0 评论 -
八皇后问题--寻找一个解
package com.xurong.recursion;public class EightQuee { //棋盘格子的范围,以及皇后的数量 static final int MAX_NUM = 8; //二维数组作为棋盘 int chessBoard[][] = new int[MAX_NUM][MAX_NUM]; //int数组,默认初始化值为0,当符合皇后放置是,对应元素改为1 public static void main(String[] args){ EightQuee原创 2021-07-24 23:43:47 · 238 阅读 · 0 评论 -
迷宫回溯问题探索1
package com.xurong.recursion;public class MiGong { public static void main(String[] args) { int[][] miGong = MakeOneMiGong.MakeOneMiGong(); System.out.println("找出口"); lookExit.lookExit(miGong, 1, 1);//从(1,1)开始走 for(int[] n : miGong) { for(in原创 2021-07-16 22:33:53 · 42 阅读 · 0 评论 -
利用数组构建栈--实现一个计算器(版本一:只适用于个位数运算(不适合多位数计算))
package com.xurong.stack;public class Calculater { public static void main(String[] args) { String expression = "3+2*6-2"; ArrayStack2 numStack = new ArrayStack2(10);//存放数据的stack ArrayStack2 operStack = new ArrayStack2(10); int index = 0; int原创 2021-05-30 17:57:02 · 138 阅读 · 0 评论 -
用数组模拟栈的实现
package com.xurong.stack;import java.util.Scanner;import javax.management.loading.PrivateClassLoader;public class ArrayStackDemo { public static void main(String[] args) { ArrayStack arrayStack = new ArrayStack(5); String key = ""; boolean loo原创 2021-05-28 21:31:18 · 56 阅读 · 0 评论 -
利用环形链表解决-约瑟夫问题
测试类:package com.xurong.linkedList;public class JosepHu { public static void main(String[] args) { CircleSingleLinkedList circleSingleLinkedList = new CircleSingleLinkedList(); circleSingleLinkedList.addBoy(5);//加入5个节点 circleSingleLinkedList.show原创 2021-05-28 20:04:32 · 55 阅读 · 0 评论 -
双向链表增删改查实现
测试类:package com.xurong.linkedList;public class DoubleLinkedListDemo { public static void main(String[] args) { HeroNode2 hero1 = new HeroNode2(1,"宋江", "及时雨"); HeroNode2 hero2 = new HeroNode2(2,"卢俊义", "玉麒麟"); HeroNode2 hero3 = new HeroNode2(3,"吴用",原创 2021-05-25 16:46:34 · 282 阅读 · 0 评论 -
关于链表中add()方法--temp=temp.next--是如何指向下一个节点之说明
public void add(HeroNode heroNode) { //因为head节点不能动,因此我们需要一个辅助遍历temp HeroNode temp = head; //遍历链表,找到最后 while(true) { //找到链表的最后 if(temp.next == null) { break; } //如果没找到最后,将temp后移 temp = temp.next; } //当退出while时,temp就指向了链表的最后原创 2021-05-05 14:28:34 · 1477 阅读 · 0 评论 -
链表--节点的修改与删除
package com.xurong.linkedList;public class SingleLinkedListDemo { public static void main(String[] args) { HeroNode hero1 = new HeroNode(1,"宋江", "及时雨"); HeroNode hero2 = new HeroNode(2,"卢俊义", "玉麒麟"); HeroNode hero3 = new HeroNode(3,"吴用", "智多星");原创 2021-05-02 14:09:45 · 432 阅读 · 0 评论