排序算法
IDOL小豆子
一起学习,一起成长,少写点bug。
全网唯一:IDOL小豆子
展开
-
快速排序
一、快速排序 快速排序就是在待排序数组选取一个基准值,把比基准值大的元素放在右边,小的元素放在左边,然后递归的去对左边和右边执行相同操作。 二、分析 三、代码 public void quickSort(int[] arr, int start, int end){ // 条件成立,说明当前序列已经有序 if (start >= end){ return; } // 基准值,左边的都比基准值小,右边的都比基准值原创 2020-07-21 07:38:01 · 87 阅读 · 0 评论 -
堆排序
一、基本介绍 堆排序:是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。升序大顶堆,降序小顶堆 二、分析 将初始待排序数组构建成大顶堆,此堆为初始的无序区; 将堆顶元素和最后一个交换,此时最后一个元素已经是有序的 由于交换后堆顶元素可能不符合大顶堆,所以将前 n - 1 个元素继续调整为大顶堆,不断重复,直到有序元素个数为 n - 1 三、代码 public class HeapSort { p原创 2020-07-19 21:48:28 · 121 阅读 · 0 评论 -
归并排序
一、基本介绍 归并排序:使用分治的思想,将一个数组划分成俩个数组,在将这俩个数组继续划分,直到不能划分为止,然后将数据合并,最后就是一个有序的数组 二、分析 例如对数组 {8,4,5,7,1,3,6,2} 进行排序。 使用中间数组,将每一次排序后的数值,放回原数组的位置,下面是最后一次合并的流程: 三、实现 public class MergeSort { private void mergeSort(int[] arr, int left, int right, int[] temp){原创 2020-07-19 21:47:21 · 79 阅读 · 0 评论 -
快速排序
快速排序 快速排序就是在待排序数组选取一个基准值,把比基准值大的元素放在右边,小的元素放在左边,然后递归的去对左边和右边执行相同操作。 public static void quickSort(int[] arr, int left, int right){ int l = left; int r = right; int pivot = arr[...原创 2020-03-03 19:54:38 · 90 阅读 · 0 评论 -
希尔排序
一、基本介绍 希尔排序:是一种改进后的插入排序,希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序,当增量减至 1 时,整个数组被分成一组,排序就完成了。 二、分析 当序列为 7,6,4,3,2,1 时,对 1 进行插入排序,需要和每一个都去比较,但是使用希尔排序时,可以将数组分为多组,例如刚开始分为 3 组,先对 {7,3},{6,2},{3,1} 进行排序,排序后 3,2,1,7,6...原创 2020-02-27 20:08:37 · 100 阅读 · 0 评论 -
插入排序
一、基本介绍 插入排序:是对要排序的元素以插入的方式找寻改元素适当的位置,以达到排序的目的,把 n 个待排序的元素看做一个有序表和一个无序表,开始的时候有序表只有一个元素,无序表有 n-1 个元素,排序的过程从无序表选取第一个元素和有序表中的元素进行比较,将它加入到适当的位置。 二、分析 例如对数组 {5,3,7,6,2} 进行排序。 第一轮 刚开始有序表中的元素是 5;待插入元素是 3 第一次...原创 2020-02-25 19:36:44 · 129 阅读 · 1 评论 -
选择排序
一、基本介绍 选择排序:第1次从 [0, n-1] 个数中选取最小的元素和第1个数交换,第2次从[1, n-1]选取最小的元素和第2个数交换,第n-1次从[n-2, n-1]个数中找出最小的数和第n-1个数交换,总共用了n-1次。 二、分析 例如:对 6,3,7,2,5 排序。 第一轮排序: 使用 index 记录最小值的下标,value 记录最小的值; (1) index = 3;value ...原创 2020-02-24 21:11:19 · 112 阅读 · 0 评论 -
冒泡排序
一、基本介绍 通过对待排序列从前向后,从下标小的元素向下标大的移动,依次比较相邻元素的值,若逆序则交换。 二、分析 例如:对 6,3,7,2,5 排序。 第一轮排序: (1) 3,6,7,2,5 (2) 3,6,7,2,5 (3) 3,6,2,7,5 (4) 3,6,2,5,7 第一轮排序后,最大的数字已经在最后了。 第二轮排序: 因为最后一个数字已经是排好序的,所有没有必要比较。 (1) 3,...原创 2020-02-23 11:54:41 · 114 阅读 · 0 评论