![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
啦啦啦
伟大的兔兔
不拘于世间天地山川~
展开
-
07哈希表
哈希表(hash table)又称为散列表,通过关键码值,直接访问数据。数组 + 链表实现哈希表:package msp.cai.hashtable;/* * 数组 + 链表 实现哈希表 --> 存储用户信息 */public class HashTableDemo { public static void main(String[] args) { UserHashTable userHash = new UserHashTable(5);原创 2021-07-26 09:44:00 · 153 阅读 · 0 评论 -
06查找算法
查找算法1、顺序(线性)查找package msp.cai.search;/* * 线性查找 */public class LinearSearchDemo { public static void main(String[] args) { int[] arr = {1, 100, -2, 200, 8, 9, 16}; int index = linearSearch(arr, 8); if (index == 0)原创 2021-07-26 09:42:02 · 116 阅读 · 0 评论 -
05排序算法
常用排序算法1、冒泡排序时间复杂度:O(n^2)思路:双层循环比较相邻两个数的大小,把小的放到左边每次循环,都会产生一个最大或最小的数下一次循环可少排序一次// 冒泡排序 public static void sort1(int[] arr){ for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) {原创 2021-07-26 09:40:00 · 91 阅读 · 0 评论 -
04递归 recursion
递归递归就是方法自己调用自己,每次调用传入的参数不同。递归方法必须向退出递归的条件逼近,否则就死循环了。1、迷宫回溯问题思路:二维数组map表示迷宫8 * 7开始位置(1, 1),目标位置(6, 5)当map[i][j]为:0 表示没走过1 表示墙,走不了2 表示可以走通3 表示已经走过,但是走不通在走迷宫时,确定一个策略: 下 -> 右 -> 上 -> 左若当前位置走不通,回溯package msp.cai.recursion;/原创 2021-07-26 09:38:22 · 112 阅读 · 0 评论 -
03栈 stack
栈 stack一个先入后出的有序列表。数组实现栈:package msp.cai.stack;/* * 数组实现栈 */public class ArrayStackDemo { public static void main(String[] args) { ArrayStack stack = new ArrayStack(5); System.out.println("== 入栈 =="); stack.push(1);原创 2021-07-26 09:35:40 · 144 阅读 · 0 评论 -
02链表~
链表 Linked List链表是有序的列表。1、单向链表实际结构:逻辑结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRMqG0ed-1627263118581)(C:\Users\松鼠打不赢仓鼠\AppData\Roaming\Typora\typora-user-images\image-20210715104550445.png)]package msp.cai.linkedlist;/* * 单向链表 * 使用链表存储数据 */p原创 2021-07-26 09:33:28 · 107 阅读 · 0 评论 -
01稀疏数组与队列
稀疏数组和队列1、稀疏数组 sparsearray当一个数组大部分元素为0,或者为同一个值时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法:记录数组有几行几列,有多少个不同的值把具有不同值元素的行、列、值记录在一个小规模数组中,从而缩小程序规模二维数组 -> 稀疏数组:遍历二维数组,得到有效数据个数sum创建稀疏数组sparaseArr int[sum+1][3]将有效数据存入稀疏数组稀疏数组 -> 二维数组:读取稀疏数组的第一行,创建二维数组读取稀疏数组原创 2021-07-26 09:29:38 · 127 阅读 · 0 评论