自定义博客皮肤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)
  • 收藏
  • 关注

原创 HashMap如何实现的(手写一个HashMap)

1.原理2.代码Mappackage com.mapText;public interface Map<K,V> { V put(K k,V v); V get(K k); int size(); interface Entry<K,V>{//创建一个对象,用于装值 K getKey(); V getValue(); }}HashMappackage com.mapText;

2021-04-08 20:22:32 169

原创 模拟多线程协作-生产者消费者问题

package syn;public class TestPC { public static void main(String[] args) { SynContainer synContainer=new SynContainer(); Producter producter=new Producter(synContainer); Consumer consumer=new Consumer(synContainer); pr

2021-04-02 11:23:47 124

原创 springmvc上传文件

1.开始页面<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html><html><head><meta charset="utf-8"><title>Insert title here</title></head><body>&lt

2021-03-21 21:18:36 80

原创 面试经典:两个栈实现一个队列(Java实现)

前几天抱着试试的态度投了了一个公司,面试的时候让我手撸代码两个栈实现一个队列,我硬是没整出来,太尴尬了,这确实是一个很基础的算法题不说了,进正题一.思路分析首先我们要知道,栈是后进先出,队列是先进先出,怎么实现呢?我们需要用到两个栈s1存数据,s2中转栈。很多人写的时候,直接将数据压入s1,然后将s1中的数据依次压入s2,然后依次将s2中的数据出栈,这样确实实现了队列先进先出的原理,但再次存入数据时,因为s2中的数据已成定序,在出队列就不能先进先出了,咋整呢?方法如下:每次存入数据时,判断s1是

2021-03-20 22:39:22 308

原创 中缀表达式转后缀表达式并计算

**一.中缀表达式转后缀表达式**1.初始化一个栈s1一个容器list:运算符栈s1和结果容器s22.从左至右扫描运算符,遇到操作数时,压入s23.遇到括号时:1)左括号"(" 直接压入s12)右括号" ) “,依次弹出s1栈顶运算符,并压入s2,直到遇 到”(“并将其弹出4.遇到运算符时,比较与s1栈顶运算符的优先级1)若s1为空或栈顶运算符为”(",直接压入s12)若优先级高于栈顶运算符,直接压入3)否则,将s1栈顶运算符压入s2中,重复步骤4与新的运算符比较5.将

2021-03-19 14:18:44 232

原创 快速排序的递归非递归算法

一.递归算法public static void kuaipai(int[] a,int left,int right){ if(left>right){ return ; } int i=left,j=right; int tmp=a[left]; while(i<j){ while(tmp<=a[j]&&i<j){ j--; } while(tmp>=a[i]&i<j){ i++;

2021-03-16 16:44:17 200

原创 Kruskal算法寻找最小生成树(java实现)

一.算法分析1.步骤:a.将所有边的权值从小到大排序b.依次将各条边加入到最小生成树中c.判断是否构成回路,如构成回路,则不选择这条边d.遍历所有边2.判断是否构成回路记录顶点在最小生成树中的终点,顶点的终点是在最小生成树中与之联通的最大顶点,判断两个顶点的终点是否重合,若重合则构成回路二.代码实现package text_seven_suanfa;import java.util.Arrays;public class KruskalCase { private int

2020-09-12 14:15:56 1269

原创 Java实现贪心算法解决集合覆盖问题

1.贪心算法1)贪心算法是指在对问题求解时,每一步都选择最好或者最有利的选择,从而希望结果就是最好或者最优的算法2)贪心算法所得到的结果不一定是最优的结果,但都是最接近最优解的结果2.问题分析1)问题:假设存在如下表的广播台,以及广播台可以覆盖的地区,如何选择最少的广播台,让所有的地区都可以接受到信号2)解题步骤:a.遍历所有的广播电台,找到一个覆盖了最多未覆盖的地区的电台b.将这个电台加入到一个集合中,同时去掉已覆盖的地区c.重复步骤a3.代码package text_seven_s

2020-09-08 21:58:41 368

原创 KMP算法(java代码)

package text_seven_suanfa;import java.util.Arrays;public class KMPSearch { public static void main(String[] args) { // TODO Auto-generated method stub String str1="abcabd"; String str2="abd"; int[] a={0,1,0}; System.out.println(Arrays.toStr

2020-09-08 20:10:41 156

原创 动态规划法解决0-1背包问题(Java实现)

1.动态规划法介绍1)核心思想:将大问题划分为小问题进行解决,从而处理算法2)与分治法不同的是,动态规划法用于求解经分解得到子问题不是相互独立的,即下一个子问题的求解是建立在上一个子问题的解的基础上,进行下一步求解。3)动态规划法可以通过填表的方式逐步推进,得到最优解2.0-1背包问题实在不知道怎么用语言表示了,看代码吧,代码运行输出的表格表示求解过程package text_seven_suanfa;public class package0_1 { public static void

2020-09-05 18:31:14 3255

原创 Java实现分治法求解汉诺塔问题

1.分治法分治法的基本思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治法的求解步骤:1) 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题2)解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题3)合并:将各个子问题的解合并为原问题的解2.经典案例:汉诺塔问题解题思路:想象只有A,B两块时,我们先将B移动到第二个塔,再将A移动到A移动到第三个塔,再将B移动到第三个塔。结合分治法的思想,将所有的块分成两部分,最下面

2020-09-02 14:39:28 196

原创 图的深度优先遍历和广度优先遍历(java实现)

一.图的深度优先遍历1.基本思想从初始访问节点出发,首先访问第一个节点,然后再以这个被访问的节点的邻接节点作为初始节点,访问它的第一个邻接节点,依次进行,显然这是一个递归的过程2.算法步骤1)访问初始节点v,并标记节点v以访问2)查找节点v的第一个邻接节点w3)若w存在,执行4,若w不存在,回到第一步,从v的下一个节点继续4)若w未被访问,对w进行深度优先遍历递归5)若w被访问,以下一个邻接节点作为初始节点进行递归3.代码实现//得到第一个结点的下标 public int getfir

2020-09-01 23:48:13 1325

原创 Java实现二叉排序树的创建与删除

二叉排序树的概念所谓二叉排序树,又称二叉查找树,用我自己的话说就是所有节点的左子节点均小于符节点,右子节点均大于父节点。类似与二分法,他的好处就是提高了查找的效率二叉排序树的删除一.删除叶子节点1)根据值找到要删除的节点 target2)找到target的父节点 parent(便于删除)3)判断target是parent的左子节点还是右子节点4)根据情况删除二.删除只有一颗子树的节点1)根据值找到要删除的节点 target2)找到target的父节点 parent(便于删除)

2020-07-23 00:47:04 183

原创 利用赫夫曼编码对文件进行压缩和解压(Java实现)

至于赫夫曼编码是什么我就不多介绍了,直接讲解如何压缩和解压吧1.压缩文件我写的压缩文件主要分为一下几步1.将文件转换成字节数组,并转换成Node节点存入List中2.创建赫夫曼树3.生成赫夫曼编码4.根据生成的赫夫曼编码,压缩得到压缩后的赫夫曼编码字节数组/** * 压缩方法 * @param bytes 原始字符串得字节数组 * @return 根据生成得赫夫曼编码,压缩得到压缩后得赫夫曼编码字节数组 */ private static byte[] huffmanZip(

2020-07-21 00:19:23 293

原创 java实现堆排序算法详解

前端时间树还没整明白呢,所以写排序的时候就没有写堆排序,现在补上排序原理1.大顶堆和小顶堆的定义:大顶堆:每个节点的子节点都小于其父节点小顶堆:每个节点的子节点都大于其父节点2.排序思想以从小到大为例1)将待排序序列构造成一个大顶堆2)此时,整个序列的最大值就是堆顶的根节点3)将其与末尾元素进行交换,此时末尾就为最大值4)将剩下的n-1个元素重复此操作3.图解说明 以序列4,6,8,5,9为例步骤一:得到一个大顶堆步骤二:将堆顶元素与末尾元素进行交换,使末尾元素最大,然后

2020-07-16 18:04:21 347

原创 简单二叉树及其常规操作方法

简单二叉树就好像链表,唯一得区别就是多了left和right两个节点这篇文章主要讲了简单二叉树得前,中,后序遍历和按节点得前,中,后序遍历查找,首先定义一个节点类HeroNode类用于创建节点,再定义一个BinaryTree类用于创建二叉树,对树进行操作博主今天实在是有点累了,直接上代码吧。package two_x_tree;public class Tree { public static void main(String[] args) { //创建一颗二叉树 BinaryTre

2020-07-07 00:33:10 133

原创 查找算法(java)实现

1.查找算法介绍在Java中,常用的查找算法有四种1)顺序(线性)查找2)二分查找3)插值查找4)斐波那契查找2.线性查找这个就不用多说了,直接循环遍历就行 public static int Search(int[] arr,int value){ for(int i=0;i<arr.length;i++){ if(arr[i]==value){ return i; } } return -1; }3.二分查找原理:二分查找只能查找有序数列

2020-07-04 20:54:52 182

原创 八大排序算法代码详解以及时间复杂的比较

八大排序算法代码详解以及时间复杂的比较这马上都大三了,虽然老师上课也在讲,但自己也没咋听,现在排序算法就会个冒泡,真的太差劲了,趁暑假补起来!这玩意真的很重要!关系复杂度好了现在开始讲代码了一.冒泡排序原理:从前往后依次将当前值与下一个值进行比较,若发现逆序则交换,每次循环后吐出最大(小) 值,所以叫冒泡代码` public static void maopao(int arr[]){ int temp=0; boolean bol=false; for(int i=0;i&l

2020-06-29 23:31:05 461

原创 Java解决八皇后问题(回溯法)

Java解决八皇后问题(回溯法)啥也不说了,直接看代码吧,代码里面有详解public class huanghou8 { //定义max个皇后 int max=8; //定义数组array,数组得下标表示第几个皇后,值表示列 int[] array = new int[max]; //一个有多少种排法 static int count=0; public static void main(String[] args) { huanghou8 queue=new huanghou8

2020-06-21 18:06:37 582

原创 shell中printf命令总结

2020-02-28 23:09:30 151

原创 shell中echo命令常见用法

2020-02-28 23:08:00 329

原创 shell常见变量

2020-02-24 23:06:19 88

原创 web如何上传文件以及在enctype="multipart/form-data"情况下如何获取除文件外的数据

最近学校的作业遇到这样的问题,web如何上传文件和获取除文件外其他数据,在获取其他文本数据时为null或乱码的问题,解决之后不妨记下来,供大家参考首先请看jsp代码<body> <form action="UploadServlet" method="post" enctype="multipart/form-data"> <input type="fil...

2020-02-17 17:27:30 238

原创 JavaScript获取节点和常用事件

2020-02-14 16:47:39 109

原创 html常用标签和关键字的用法

2020-02-14 16:42:10 1156

空空如也

空空如也

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

TA关注的人

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