![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 55
qq_54658577
这个作者很懒,什么都没留下…
展开
-
数据结构与算法之堆排序
1、堆排序简介堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、堆排序思想 假设一个堆的结构如下:(1)调整:从最后个非叶子节点[arr.length / 2 -1]开始也就是索引为1的这个节点开始调整以它为根节点的树。且以一个临时变量保存这个节点的数据,即:int temp = ar...原创 2021-09-19 17:08:45 · 84 阅读 · 0 评论 -
数据结构与算法之归并排序
1、归并排序简介归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。2、归并排序思路解析...原创 2021-08-29 10:51:27 · 57 阅读 · 0 评论 -
数据结构与算法之快速排序
1、快速排序简介快速排序(Quicksort)是对冒泡排序算法的一种改进。2、快速排序的思路 从一个数组中找出一个数作为中间值,从中间值的左边找出一个大于中间值的数,移动到右边,从右边找出一个小于中间值的数移动到左边,然后分别将这个中间值的左边和右边作为一个数组,再继续从左边右边数组中找一个中间值,继续之前的操作直到左下标的索引大于等于右下标的索引。 举例: 以数组:int[] arr = { -9, 78,...原创 2021-08-28 11:11:36 · 87 阅读 · 0 评论 -
数据结构与算法之希尔排序
1、希尔排序简介希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。2、希尔排序思路: 假设数组为array,设循环条件for(int gap = array.lengh / 2; gap > 0; gap /= 2);1)第一次循环将...原创 2021-08-27 11:35:20 · 114 阅读 · 0 评论 -
数据结构与算法之插入排序
1、插入排序简介 有一组数据,假设第一个数据是一个有序表,后面其余的数据都是无序表,第一次拿出无序表中的第一个数据与有序表中的数据作比较,插入到合适的位置,有序表中插入处后面的元素也要响应下标加1。以此类推。2、插入排序核心实现代码insertIndex >= 0 && insertVal < array[insertIndex]insertIndex >= 0是为了约束,让循环跳出时...原创 2021-08-26 10:39:24 · 227 阅读 · 0 评论 -
数据结构与算法之选择排序
1、选择排序简介 遍历数组中的数据,找到数据中最小(最大)的一个,找到之后将其与最前面的数交换,随后不再考虑第一个数,从第二个数开始再次遍历找到最小的数,找到之后与第二个数进行交换,随后不再考虑第二个数,以此类推。package com.feng.sort;import java.util.Arrays;public class chooseSort { public static void main(String[] args) { int[] a = { 10...原创 2021-08-25 10:29:33 · 53 阅读 · 0 评论 -
数据结构与算法之冒泡排序
1、冒泡排序思路 假设定义一个数组array并将它初始化,int[] array = {1,5,3,2,4,6}; 那么第一次循环使array[0]与array[1]相比较,大的数向后移动小的数向前移动,这里我们需要借助中间变量。temp = array[j]; array[j] = array[j + 1]; ...原创 2021-08-24 15:55:11 · 103 阅读 · 0 评论