自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 顺序存储二叉树的前中后序遍历

顺序存储二叉树的前、中、后序遍历概念什么是顺序存储二叉树?我们知道顺序存储对于树这种一对多的关系结构实现起来还是很困难的,但是二叉树是一种特殊的树,由于它的特殊性,使得用顺序存储结构也可以实现。二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标要能体现节点间的逻辑关系(父子关系,左右兄弟关系)。顺序存储结构的特点:顺序存储结构一般只考虑完全二叉树二叉树中第n个元素的左子结点的数组下标为(2*n+1)二叉树中第n个元素的右子结点的数组下标为(2*n

2020-11-05 19:41:20 1414

原创 内部排序之快速排序(巨详细!!!)

快速排序简介快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare 在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。基本思想1)选择一个基准元素,通常选择第一个元素或者最后一个元素,2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素

2020-11-01 23:16:14 271

原创 内部排序之直接插入排序

直接插入排序简介插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。基本思想插入排序的基本思想是将一个待排序的数组分为两个部分,一部分是已经排好序的,另一部分是待排序的,然后将待排序的部分依次和已排序的部分进行比较,比较完毕再插入到正确的位置,然后插入位置之后的数据后移。在我看来现实生活中有一个最形象的事件可以说说插入排序的最好例子——打麻将时摸牌,每次从桌上摸到一张牌,就和自己已有的牌进行比较,然后放入,插入排序就是如此。图解代码实现 //按升序

2020-11-01 20:11:37 332

原创 内部排序之选择排序(java实现)

简单排序之选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。时间复杂度最好和最坏都为为 O(n^2)代码实现:public static void selectSort(int[] arr){ int temp =

2020-11-01 19:29:45 148 2

原创 java多线程——锁优化

java多线程——锁优化引言在java高并发环境中,“锁”是最常用的同步方法,但是激烈的锁竞争以及不合理的加锁又会导致程序的性能下降,所以锁的优化就变成了一个重要的问题,具体的锁的优化包括减小锁粒度、锁分离等。减小锁的持有时间在锁的竞争当中,单个线程对锁的持有时间将会对整个程序的性能产生较大的影响。例如,银行排队去ATM机存钱,此时ATM机就是一个竞争的资源,只有一台机器供客户存钱,如果每个客户都等到进入ATM机处才开始从钱包里面拿钱、拿银行卡,再存钱,那么就会导致机器被占用的时间变得很长,从而对

2020-10-28 13:20:25 116

原创 数据结构之后缀表达式求值(java实现)

数据结构之后缀表达式求值(java实现)前记​ 今天在刷leet code的时候刷到了一道题,后缀表达式(逆波兰表达式)求值,我花了一会儿写了一下它的解法。但是今天我不谈什么是后缀表达式,有兴趣的同学可以去论坛上看看其他人聊后缀表达式的问题,单就解题来说,我用了最为常规的办法,应该也是初学者最容易理解的方法写的,故代码数量较多,一定要读下去哦!图解分析首先我们拿出一个后缀表达式的例子,这里我直接用力扣上的测试用例。String[] expression = {"2", "1", "+", "3"

2020-10-21 20:41:21 2928 7

原创 Session技术

Session(会话)什么是sessionsession是一个接口(HttpSession)session是一个用来维护客户端和服务器之间关联的一种技术每个客户端都有一个自己的sessionsession会话中,经常用来保存用户登录之后的信息(区别于cookie,cookie是保存在客户端)session会话的创建API提供一个方法用于创建和获取sessionrequest.getSession();第一次调用时是创建session会话第二次调用时是获取前面创建好的

2020-10-19 09:57:39 240

原创 cookie基本知识

cookie什么是cookie:cookie是服务器通知客户端保存键值对的一种技术。客户端有了cookie后每次请求都发送给服务器每个cookie的大小不能超过4KBcookie的工作过程服务器创建cookie对象调用response.addCookie(cookie)告诉客户端保存cookie,并在响应行里面显示Set-Cookie:key=value客户端收到响应后查看有没有cookie,有的话就将其保存起来protected void createCo

2020-10-19 08:38:48 172

原创 冒泡排序学习及简单优化(java)

冒泡排序是排序算法里面较为简单的一种排序方法,两年前学习该排序算法时,总是很懵,不知道它和选择排序有什么区别,随着学习的深入,我理解了它为什么要叫做冒泡排序。之所以叫冒泡,我们可以想象一个现象。桶里面装了一桶水,我们扔下一块石头,那么桶里面的水是不是会冒出一连串的水泡到水面上炸开。石头就相当于是一个待比较的数,它进去和水里面的其它数作比较,遇到比它大(小)的就去和它交换位置,然后大(小)的数就继续往下走,去交换更大(小)的数到水面上来。 这就是为什么要叫冒泡排序。接下来,我将用代码具体实现其基本操作,并

2020-09-25 23:44:12 228

原创 自定义实现数据结构中的双向链表(JAVA实现)

**自定义实现数据结构中的双向链表**双向链表是数据结构线性表中的一种,较单向表来说,使用起来会更加方便,特别是在插入和删除时能更好寻找结点,所以我尝试着自己来实现一下双向链表,供大家参考和提建议,找bug。首先要弄清楚双向链表的结构:结点 Node,每个结点都由三个部分组成,直接前驱指示previous,结点中的对象object,直接后继指示next,结点如图结点实现如下:public class Node { /*private*/ Node privoius; /*pr

2020-09-24 18:03:44 512

原创 自定义实现顺序表(C语言)

近段时间在学数据结构,看到顺序表的时候,尝试着自己去实现一下,但是总感觉有问题,自己的代码,特别是DestoryLIst那个方法,我有很多疑问,为什么销毁顺序表之后还是能去使用它和调用,发出来让大家找找错误,第一次写博客,不喜勿喷。#include “stdio.h”#include “stdlib.h”#define MAX_SIZE 10#define ADDITION 10#define ERROR 0typedef struct {int* data;int length;int

2020-09-23 22:28:39 326

空空如也

空空如也

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

TA关注的人

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