自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数组排序(7) 计数排序

目录 算法思想 代码实现 时间复杂度 算法思想 用辅助数组对数组中出现的数据计数,元素转下标 即array[0]=100,helper[100]++; 代码实现 private static void countSort(int[] array) { //找到绝对值最大的那个数 int max = maxOf(array); ...

2020-02-14 18:52:08 225

原创 数组排序(6) 堆排序

知识要求 需要二叉树、小顶堆、大顶堆的知识。 排序步骤 首先先将数组堆化,变成大顶堆。 然后将首元array[0]与尾元array[n]替换,接着将首元向下调整,变成array[0,...,n-1]为大顶堆 然后将首元array[0]与尾元array[n-1]替换,接着将首元向下调整,变成array[0,...,n-2]为大顶堆 · · · 然后将首元ar...

2020-02-13 12:17:28 276

原创 数组排序(5) 快速排序之三指针分区法

目录 算法思想 三指针分区法 代码实现(Java) 时间复杂度 算法思想 当所有数的左边的数据都小于等于这个数,右边的数据都大于这个数时,数组就有序了。 三指针分区法 先初始化主元为首元,然后初始化三个指针:smaller和equal都初始化为下标为数组第二个、bigger初始化为尾元。smaller为扫描指针,每次移动sma...

2020-02-12 22:34:43 800

原创 数组排序(5) 快速排序之双向扫描分区法

目录 算法思想 单向扫描分区法 代码实现(Java) 时间复杂度 算法思想 当所有数的左边的数据都小于等于这个数,右边的数据都大于这个数时,数组就有序了。 单向扫描分区法 一般将数组第一个元素看作分界的数,这个数称为主元。有两个索引,分别为left和right,初始化为一头一尾 left向右扫描,当扫描到大于主元的数时,ri...

2020-02-12 22:13:25 325

原创 数组排序(5) 快速排序之单向扫描分区法

目录 算法思想 单向扫描分区法 代码实现 时间复杂度 算法思想 当所有数的左边的数据都小于等于这个数,右边的数据都大于这个数时,数组就有序了。 单向扫描分区法 只有一个扫描指针left(或者说下标、索引),还有一个下标right指向数组最后一个位置。一般将数组第一个元素看作分界的数,这个数称为主元 然后一个扫描指针left从...

2020-02-11 21:11:28 447

原创 数组排序(4) 希尔排序

目录 简介 算法思想 代码实现 时间复杂度 简介: 希尔排序属于插入类排序,是升级版的插入排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。 算法思想: 首先初始化增量,根据把数组分成若干个小数组,然后对小数组做插入排序。 增量变为原先的一半,继续第一步。 继续第二步,直到增量为0。...

2020-02-10 21:49:27 348

原创 位运算(1)找出唯一出现两次的数

目录 算法思路 代码实现 算法思路: 使用辅助空间 找出已知数组arr中最大的数num 创建一个大小为num+1的数组array,初值全为0 循环arr,在下标为arr[i]的数组array的值自增,即array[arr[i]++] 找出array[i]值为2的下标,i就是唯一出现两次的数 使用位运算(此方法只适用知...

2019-10-28 09:21:38 1197

原创 数组排序(3) 递归插入排序

目录 算法思想 代码实现 时间复杂度 算法思想: 先将最后一个元素插入前(n-1)个元素组成的有序数组arr1中,整个数组便排好序了。但是在此之前要将数组arr1排好序 将倒数第二个元素插入前(n-2)个元素组成的有序数组arr2中,数组arr1便排好序了。但是在此之前要将数组arr2排好序 将倒数第三个元素插入前(n-3...

2019-02-17 18:54:12 418

原创 数组排序(2) 直接插入排序

目录 算法思想 代码实现 时间复杂度 算法思想:直接将待插入的元素插入到有序数组中 通常我们都以首元素为第一个有序数组,将第二个元素插入到这个有序数组中。 以数组前两个元素构成第二个有序数组,将第三个元素插入到这个有序数组中。 以数组前三个元素构成第三个有序数组,将第四个元素插入到这个有序数组中。 一直到以数组前(n-1)个元素构成第(n-...

2019-02-17 18:30:18 504

原创 数组排序(1) 冒泡排序

目录 算法思想 代码实现 时间复杂度 算法思想:(以从小到大为例) 从数组头部开始,不断比较相邻的两个元素,让较大的那个元素后移,直到数组的末尾。经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。 从数组头部开始,不断比较相邻的两个元素,让较大的那个元素后移,直到与数组的倒数第二个元素比完。经过第二轮的比较,就可以找到第二大的...

2019-02-17 14:30:12 144

空空如也

空空如也

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

TA关注的人

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