自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Arrays.sort()的用法(对二维数组进行排序)。

四个方法:sort(T[] a):对指定数组进行升序排列。sort(T[] a,int formIndex, int toIndex):对指定数组的指定范围升序排列。sort(T[] a, Comparator<? supre T> c): 根据指定比较器产生的顺序对指定对象数组进行排序。sort(T[] a, int formIndex, int toIndex, Comparator<? supre T> c): 根据指定比较器产生的顺序对指定对象数组的指定范围进

2021-12-17 16:51:26 12056

原创 堆的定义,堆与树的区别,堆排序(Java实现)

堆的定义(Heap)堆是一个特殊的数据结构,可以看作是用数组实现的二叉树。它是一个完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不 是满的,那么要求左满右不满。数组实现的具体方法就是将二叉树的结点按照层级顺序放入数组中,根结点在位置1,它的子结点在位置2和3,而子结点的子结点则分别在位置4,5,6和7,以此类推。堆的每个结点都大于等于它的两个子结点。这里要注意堆中仅仅规定了每个结点大于等于它的两个子结点,但这两个子结点的顺序并没有做规定,跟二叉查

2021-03-31 16:51:27 1660 4

原创 高级排序之三:快速排序(Java实现)

快速排序快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。排序原理:首先设定一个分界值,通过该分界值将数组分成左右两部分; 将大于或等于分界值的数据放到到数组右边,小于分界值的数据放到数组的左边。此时左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值; 然后,左边和右边的数据

2021-03-26 11:36:46 182

原创 高级排序之二:归并排序(Java实现)

归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序 表,称为二路归并。排序原理:尽可能的一组数据拆分成两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。 将相邻的两个子组进行合并成一个有序的大组;在合并的时候进行排序 不断的重复步骤2,直到最终只有一个组为止。整个排序的流程如下:...

2021-03-25 20:49:04 166

原创 高级排序之一:希尔排序(Java实现)

希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。引入希尔排序的原因是插入排序在某些时刻看起来并不高效,例如如果已排序的分组元素为{2,5,7,9,10},未排序的分组元素为{1,8},那么下一个待插入元素为1,我们需要拿着1从后往前,依次和10,9,7,5,2进行交换位置,才能完成真正的插入,每次交换只能和相邻的元素交换位置。那如果我们要提高效率,直观的想法就是一次交换,能把1放到更前面的位置,比如一次交换就能把1插到2和5之间,这样一次交换1就向前走.

2021-03-24 11:31:01 187 2

原创 三种简单排序的Java实现以及区别(冒泡排序,选择排序,插入排序)

冒泡排序排序原理:比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。public static void main(String[] args) { int arr[] = {4,2,5,3,1,6}; for (int i = arr.length-1; i > 0; i--){ for (int j = .

2021-03-22 22:29:14 279

原创 B树,B+树,及其区别

B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度进行查找、顺序读取、插 入和删除等操作。B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实现。现在我们选择一个参数M,来构造一个B树,我们可以把它称作是M阶的B树,那么该树会具有如下特点:每个结点最多有M-1个key,并且以升序排列; 每个结点最多能有M个子结点; 根结点至少有两个子结点;例如M=4时B树的构造:B树在插入数据时是向上生长的:B树在磁.

2021-03-17 16:12:53 211

原创 索引优先队列

普通的队列:是一种先进先出的数据结构,每个元素都是按照存储的顺序来进出。但当我们有需求要找到最大值或最小值的时候,这种普通的队列就不友好了,它需要遍历全部元素经过比较之后才能找到,这时候就引入了优先队列。优先队列:是一个基于堆的数据结构,可以直接找到最大元素或者最小元素,但是它们有一个缺点,就是没有办法通过索引直接访问任意元素。为了实现这个目的,在优先队列的基础上,引入一种新的数据结构,索引优先队列。索引优先队列:在优先队列的基础上,通过三个数组,来达到可以随时访问任意元素并修改的目的。第一个数

2021-03-16 16:10:33 194

原创 Java:this关键字的使用

this关键字:就是用来区别同名变量或同名方法的。具体就是当方法的局部变量和类的成员变量重名的时候,因为根据就近原则,直接使用时调用的是局部变量,但如果需要调用成员变量时,就需要用this关键字,格式为this.成员变量。且有如下三种使用情况:1,在本类的成员方法中访问本类的成员变量2,在本类的成员方法中访问本类的另一个成员方法3,在本类的构造方法中访问本类的另一个构造方法例如:String name; //成员变量,我自己的名字// 再设立一个局部变量name是对方名字p

2021-02-24 19:29:47 214

空空如也

空空如也

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

TA关注的人

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