![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
涉及各种数据结构
weixin_43471422
这个作者很懒,什么都没留下…
展开
-
Rand7实现Rand10
Rand7ToRand10思路:通过放大整个随机数表示的范围(前提是等可能性),再去缩小范围找。import java.util.Random;public class Rand7ToRand10 { public static void main(String[] args) { System.out.println(rand10()); } public static int rand10() { int x = 50;原创 2021-09-17 15:23:52 · 46 阅读 · 0 评论 -
快速排序笔记
快速排序通过递归拆分子数组,并且每一轮找到一个元素的正确位置。import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] nums = {5,8,1,5,4,3,0,9}; quickSort(nums,0,nums.length-1); System.out.println(Arrays.toString(num原创 2021-09-17 15:21:29 · 37 阅读 · 0 评论 -
归并排序笔记
归并排序通过递归的方式将数组拆分成单一元素,然后逐层排序。import java.util.Arrays;public class MergeSort { public static void main(String[] args) { int[] nums = {5,8,1,5,4,3,0,9}; mergeSort(nums,0,nums.length); System.out.println(Arrays.toString(nums));原创 2021-09-17 15:17:19 · 33 阅读 · 0 评论 -
leetcode原题--LRU
LRULRU即最近最少使用算法,凭借着更新热点信息来达到内存的合理使用,在Mysql,Redis,操作系统等有广泛的应用。代码只是简易版的LRU,面对复杂的应用场景,还需进一步优化,感兴趣可以深入研究。核心数据结构: hashmap + 双向链表通过hashmap来达到 O(1)时间访问数据。通过双向链表来保证数据的有序以及锁定前后结点,方便插入和删除。两个数据结构共用一个结点。import java.util.HashMap;class LRUCache { HashMap原创 2021-09-17 15:11:39 · 133 阅读 · 0 评论 -
堆排序笔记
堆排序import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] nums = {5,8,1,5,4,3,0,9}; heapSort(nums); System.out.println(Arrays.toString(nums)); } public static void heapSort原创 2021-09-17 14:53:32 · 44 阅读 · 0 评论 -
中缀表达式转后缀表达式
我会用大白话解释。所谓中缀表达式:1+2-(3*4),即我们日常生活中算数表达式;后缀表达式是为了计算机能看懂(取消了中缀表达式的括号)。中缀表达式到后缀表达式是栈的实际应用。转为后缀表达式的规则(符号为待入栈字符,栈顶符号为已入栈字符):1、设置两个栈,一个数字栈,一个符号栈。2、遇到数字就入数字栈。3、遇到符号时,若栈为空或者该符号是左括号,直接入符号栈;剩下的要比较优先级。4...原创 2019-10-13 20:15:18 · 283 阅读 · 0 评论 -
关于树的一些代码整理
树首先是创建树(先序): //先序创建树 public static TreeNode firCreateTree(TreeNode root,String str){ char ch = str.charAt(count++); if(ch == '#'){ root = null; retur...原创 2019-12-22 19:23:35 · 574 阅读 · 0 评论 -
循环链表的应用
所谓的循环链表就是在单链表的基础上,将尾结点的指针指向第一个结点,实现链表的可循环处理。约瑟夫环就是循环链表的一个实践,内容:假设有N个人站成一圈,每个人手里都有一个随机密码,开始有一个初始密码M,第一个人按顺时针从1开始报数,直到M值,该人即出列。然后取出该人的密码当做M值,从他的下一位开始报数,一直重复,直到所有人出列完毕。#include<stdio.h> #inclu...原创 2019-09-22 20:01:08 · 768 阅读 · 0 评论 -
kmp算法
kmp算法与传统方法相比,不考虑主串,并且尽量减少指针回溯的次数。#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 20//顺序串就不多说了,直接来堆串typedef struct SString{ char *str; int len;}String;...原创 2019-10-23 19:58:57 · 78 阅读 · 0 评论