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

原创 堆排序

堆排序升序->大顶堆降序->小顶堆步骤(1)构造堆(2)取下堆顶值,继续构造堆(3)循环(2)直到堆中剩下最后一个元素,排序完成构造堆举例 构造大顶堆找到最后一个非叶子节点的下标,arr.length/2-1从右往左,从下往上,构造大顶堆第一轮第二轮第三轮(1)拿到索引节点的值,存到temp中,比较索引节...

2020-01-03 15:35:40 142

原创 二叉树的遍历(递归与非递归)

二叉树的遍历1.前序遍历根左右非递归法箭头序号对应访问步骤打印结果:A B D E C F/** * 前序遍历 - 递归 * @param treeNode */ public static void rePreOrderTraversal(TreeNode treeNode) {...

2020-01-02 22:31:42 183

原创 哈希表

哈希表散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表 = 数组 + 链表哈希表 = 数组 + 二叉树google 公司的一个上机题有一个公司,当有新的员工来报道时,要求将该员工的信息...

2020-01-01 19:59:58 266 1

原创 二分查找与插值查找

一、二分查找(折半查找)思路考虑数组中可能有等值元素二、插值查找介绍插值查找算法: 插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找插值索引:int mid = low + (high - low) * (key - arr[low]) / (arr[high] - arr[low]) ;对比1) 对于数据量较大,关键字分布比较均匀的...

2019-12-31 17:13:47 518 1

原创

栈(FILO)栈的介绍1) 栈的英文为(stack)2) 栈是一个先入后出(FILO-FirstInLastOut)的有序列表。3) 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。4) 根据栈的定义可知,最先放入栈中元素在栈...

2019-12-31 09:19:08 159

原创 Josephu(约瑟夫) 问题

Josephu 问题:设编号为 1,2,... n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此 产生一个出队编号的序列。生活中的问题:丢手绢问题,小孩出圈问题,猴子选大王问题(https://blog.csdn.net/Ben_m...

2019-12-30 15:23:21 376 1

原创 双向链表

双向链表插入删除代码package com.linkedlist;import java.util.Scanner;/** * @program: DataStructures * @description: 双向链表 * @author: XuDeming * @date: 2019-12-29 16:45:30 **/public class D...

2019-12-29 22:17:44 88

原创 单链表

单链表插入与删除反转代码实现package com.linkedlist;import java.util.Scanner;import java.util.Stack;/** * @program: DataStructures * @description: 单链表 * @author: XuDeming * @date: 2019-12-28 00...

2019-12-29 16:40:01 102

原创 队列与循环队列(数组实现)

队列:FIFO一、普通队列问题分析并优化1) 目前数组使用一次就不能用, 没有达到复用的效果2) 将这个数组使用算法,改进成一个环形的队列 取模:%二、循环队列数组得到复用package com.queue;import java.util.Scanner;/** * @program: DataStructures * @description:...

2019-12-27 23:49:41 172

原创 稀疏数组

稀疏数组当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1)记录数组一共有几行几列,有多少个不同的值2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模二维数组<-->稀疏数组<-->磁盘代码实现package com.sparsearray;import ...

2019-12-26 23:38:14 91

原创 Proxy(代理模式)与AOP

一、代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。二、代理模式的实现方式 代理模式在java 中分为静态代理和动态代理 a)静态代理 ...

2019-10-19 22:11:22 365

原创 15只猴子循环报数找大王

15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子成为大王。问:哪只猴子会成为大王?

2019-08-29 08:59:26 514

原创 TCP:文件传输

服务端代码客户端代码

2019-08-27 23:26:35 1058

原创 TCP:信息的发送与接收

TCP和“三次握手” TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”。第一次握手客户端向服务器端发出连接请求,等待服务器确认,第二次握手,服务器端向客户端回送一个响应,通知客户端收到...

2019-08-27 21:47:58 790

原创 UDP:单人聊天

import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.util.Scanner;public c...

2019-08-27 20:14:06 119

原创 UDP:信息的发送与接收

UDP UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。 由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况即使...

2019-08-26 22:43:35 1396

原创 等待唤醒机制:生产者与消费者

public class TestPractice2 { /* * 线程等待唤醒机制:生产者与消费者 * 生产者和消费者轮流生产和消费 * 生产者每次生产的产品数量+剩余的产品数量不能大于1000 * 消费者每次消费不能超过剩余产品数量 */ public static void main(String[]...

2019-08-24 20:33:04 144

原创 等待唤醒机制:两个学生轮流自我介绍

public class TestWaitNotify { //两个学生轮流自我介绍 public static void main(String[] args) { //创建学生 Student student = new Student(); student.setName("小明");...

2019-08-24 16:56:19 187

原创 死锁:打印机和扫描仪

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。举例:打印机和扫描仪T1和T2是两个用户R1和R2是打印机和扫描仪public class TestDeadLock { //共享的打印机和...

2019-08-24 11:54:50 510

原创 第一个多线程小Demo

public class TestRePtactice { // 多线程:三个窗口卖同时卖同一种票(100张) // 三个线程一个对象 public static void main(String[] args) { Ticket ticket = new Ticket(); //...

2019-08-23 21:43:21 337

原创 求素数的方法汇总

// 按字典序输出2 到 n 的素数// 效率由低到高// 方法6 目前还不会 以后再加上#include &lt;iostream&gt;#include &lt;cmath&gt;using namespace std;void is_Prime_1(int n);//试除法void is_Prime_2(int n);//试除法void is_Prime_3(int n);//试除法void...

2018-05-02 21:49:08 261

原创 任意进制转换十进制

#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;cmath&gt;using namespace std;int main (){    while(1)    {        cout &lt;&lt; "任意进制转10进制" &lt;&lt; endl;        cout &lt;&lt; "请输

2018-04-27 22:05:48 830

原创 十进制转换为任意进制

输入一个十进制数N,将它转换成R进制数输出。 Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2&lt;=R&lt;=16, R&lt;&gt;10)。 Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。Sample Input7 223 12-4 3Sample Output1...

2017-05-22 23:23:35 518

原创 Twins

Imagine that you have a twin brother or sister. Having another person that looks exactly like you seems very unusual. It's hard to say if having something of an alter ego is good or bad. And if you do...

2017-05-22 23:22:02 459

原创 Bit++

The classic programming language of Bitland is Bit++. This language is so peculiar and complicated.The language is that peculiar as it has exactly one variable, called x. Also, there are two operation...

2017-05-22 23:16:48 784

空空如也

空空如也

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

TA关注的人

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