自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 归并排序

1、归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。如 设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1第一次归并后:{6,202},{100,301},{8,38},{1},比较次数:3;第二次归并后:{6,100,202,301},{1,8,38},比较次数:4;第三次归并后:{1,6,8,38...

2019-05-25 08:28:02 252

原创 堆排序

1、堆排序:是直接选择排序的升级版,是不稳定的排序2、时间复杂度:T(n)= O(nlogn),3、堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。我们用简单的公式来描述一下堆的定义就是:大顶堆:arr[i] >= arr[2i+1] && arr[i] >= a...

2019-05-24 14:25:55 191

原创 希尔排序

1、希尔排序:是简单插入排序的改进版,是不稳定的排序2、时间复杂度:T(n) = O(n的平方),空间复杂度:S(n) = O(1)3、基本思想:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。代码实现public class ShellSort { public s...

2019-05-24 11:31:40 191

原创 MyBatis逆向工程

1、环境:在IDEA上使用maven的mybatis插件生成逆向工程2、创建maven项目2.1 pom文件中的配置<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</...

2019-05-22 16:34:52 228

原创 快速排序

1、快速排序是冒泡排序的升级版,思想主要是分治加递归,是不稳定的排序由于使用递归,需要的空间比较大,所以不适合数据量大的情况下使用2、时间复杂度: T(n) = O(nlogn)(平均情况),最快情况:T(n) = O(n的平方)空间复杂度:S(n) = O(nlogn)3、实现:(1)分区(2)递归public class TestQuickSort { publi...

2019-05-21 15:08:22 216

原创 排序算法及三种基本排序(冒泡排序、选择排序、直接插入排序)

一、排序的分类及效率分析二、三种基本排序(冒泡排序、选择排序、直接插入排序)的java代码实现/* 三种基本排序:T(n) = O(n的平方),S(n) = O(1) 1、直接选择排序 不稳定的排序 2、冒泡排序 稳定的排序 3、直接插入排序 稳定的排序 */public class BasicSort { public...

2019-05-20 10:44:51 889

原创 哈希表(散列存储)

一般查找是通过将关键字值与给定值比较来确定位置,效率取决于比较次数。理想的方法是:不需要比较,根据给定值能直接定位记录的存储位置。一、hashtable 也叫散列表特点是很快,结构有多种,最流行、最容易理解的为顺序表—+链表,主结构为顺序表,每个顺序表的节点在单独引出一个链表。1、哈希表添加数据:(1)计算哈希码(调用hashcode)(2)计算在hash表中的存储位置(3)存入h...

2019-05-19 14:28:22 3550

原创 二叉查找树(BST)及红黑树

一、定义:或者是一棵空树或者是具有下列性质的二叉树(1)当左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)它的右子树上所有结点的值均大于它的根节点的值(3)它的左、右子树也分别为二叉排序树二、分类1、平衡二叉树是自平衡的二叉查找树,又被称为AVL树(有别于AVL算法)它的左右两个子树的高度差(平衡因子)的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树2、红黑树...

2019-05-18 15:31:10 443

原创 线性表查找(顺序查找,二分查找)

1、顺序查找(无序)2、折半查找(必须是有序数组)实现代码(java)public class lineSearch { //测试代码 public static void main(String[] args) { //顺序查找 int[] arr1 = {34,76,23,98,87,35,8,32,74,44}; int ...

2019-05-18 08:17:58 1673

原创 图及最短路径

一、图1、定义:描述的是多对多的关系,图是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系(边)的集合组成。2、分类:3、图的存储(1)邻接矩阵:二维数组 顺序存储结构(2)邻接表:链表 链式存储结构4、应用:各种地图,地铁线路图等二、图的遍历1、概念图的遍历就是从图中某个顶点出发,按某种方法对图中所有顶点访问且仅访问一次。图的遍历算法是求解图的连通性...

2019-05-16 13:23:10 2462

原创 树和二叉树的先、中、后序遍历

一、树的一些概念:1、结点的度与树的度:结点的度:结点拥有的子树的数目(度为0的结点称为叶子结点)树的度:树内各结点的度的最大值2、结点的层次(level)和树的深度(depth)结点的层次:从根开始定义,层次数为1的结点是根结点。树的深度:树中结点的最大层次数称为树的深度或高度3、有序树、m叉树,森林有序树:树中结点的各子树看成是从左至右有次序的。m叉树:树中所...

2019-05-15 19:35:57 1095

原创 数据结构-栈和队列

一、栈1、栈的定义栈(stack )又称堆栈,它是运算受限的线性表。其限制是仅允许在表的一端进行插入和删除操作,不允许在其他任何位置进行插入、查找、删除等操作。表中进行插入、删除操作的一端称为 栈顶(top) ,栈顶保存的元素称为 栈顶元素。相对的,表的另一端称为栈底(bottom)当栈中没有数据元素时称为空栈;向一个栈插入元素又称为 进栈或 入栈;从一个栈中删除元素又称为 出栈或...

2019-05-14 08:56:36 293

原创 算法、时间复杂度及空间复杂度概念

算法一、概念:是指令的集合,是为解决特定问题而规定的一系列操作。它是明确定义的可计算过程,以一个数据集合作为输入,并产生一个数据集合作为输出。1、一个算法通常来说具有以下五个特性:输入:一个算法应以待解决的问题的信息作为输入。输出:输入对应指令集处理后得到的信息。可行性:算法是可行的,即算法中的每一条指令都是可以实现的,均能在有限的时间内完成。有穷性:算法执行的指令个数是有限的,...

2019-05-13 08:35:30 1120

原创 数据结构概念

数据结构数据结构=逻辑结构+存储结构+(在存储结构上的)运算/操作举例:线性表的逻辑结构如图所示:线性表逻辑结构对应的顺序存储结构为顺序表,对应的链式存储结构为链表。顺序表链表同一逻辑结构可以对应多种存储结构。同样的运算,在不同的存储结构中,其实现过程是不同的一、逻辑结构(1)线性结构:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。线性...

2019-05-12 15:31:37 262

原创 线性表(数组、链表)-ArrayList与LinkedList的自定义java实现

一、常见数据结构之链表和数组总结:List:ArrayList:底层数据结构是数组,查询快,增删慢LinkedList:底层数据结构是链表,查询慢,增删快二、自定义类实现ArrayList与LinkedList帮助理解java底层代码及数据结构,阅读难度会比源码简单。1、MyArrayList的实现(java代码)public class MyArrayList<AnyT...

2019-05-11 21:36:01 465

空空如也

空空如也

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

TA关注的人

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