排序
神不在成都
追求敏感部位
展开
-
Java数据结构-归并排序
思想:归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。上代码:package Data.Structure.sort.Merge;import java.util.Arrays;public class MergeSort { publi原创 2021-02-05 17:56:22 · 185 阅读 · 1 评论 -
Java数据结构-堆排序
堆排序步骤:堆排序--升序采用大根堆 -----降序采用小根堆1、将待排序序列构建成大根堆即:先要建立堆->建堆过程需要调整堆2、此时,整个序列的最大值就是堆顶的根节点,将其与末尾的元素进行交换,此时末尾元素就是最大值3、然后将剩余的n-1个元素构成一个堆,这样会得到n个元素的次小值,如此反复执行 便能得到一个有序序列了步骤:其实就是堆的初始化(过程中 调整堆)、交换第一个元素和最后一个元素、继续调整堆(是从最后一个非终端结点(n/2取下界) 开始往上调整)原创 2021-02-05 17:47:19 · 284 阅读 · 0 评论 -
Java数据结构-简单选择排序
思想: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。上代码:<font color=#999AAApackage Data.Structure.sort.select_sort;import java.util.Arrays;/** * 将选择排序封装成一个方法 直接调用就ok * 给8000个数排序 3秒 */public class Sel原创 2021-02-05 17:16:47 · 108 阅读 · 0 评论 -
Java数据结构-快速排序
快排基本思想:初始化标记low为划分第一个元素的位置(下标),high为最后一个元素的位置(下标),然后不断地移动两边的元素进行赋值。(1)high向前移动,找到第一个比pivot小的元素(2)low向后移动找到第一个比pivot大的元素(3)进行赋值操作(4)继续移动标记 执行上面3个步骤 直到low>=high上代码:建议手动敲一下 手动比划一下 理解过程package Data.Structure.sort.exchangeSort;import java.util.Ar原创 2021-02-05 17:06:23 · 77 阅读 · 0 评论 -
Java数据结构-冒泡排序
冒泡思想: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在 这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。优化冒泡:package Data.Structure.sort.exchangeSort;import java.util.Arrays;public class BubbleSort { pu原创 2021-02-05 16:46:13 · 85 阅读 · 0 评论 -
Java数据结构-希尔排序
基本定义:希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。代码1:/*** 希尔排序* 对相隔d位置的元素组进行直接插入排序* @param A*/public static void shellSort1(int A[]) {//对照直接插入 对比哈 int i, j, d, temp; d = A.length / 2;//d为增量 while (d > 0) { for (i =原创 2021-02-04 18:24:43 · 69 阅读 · 0 评论 -
Java数据结构-折半插入排序
基本定义:折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点可以采用折半查找的方法来加快寻找插入点的速度思想:直接插入 链接地址https://editor.csdn.net/md/?articleId=113657011折半插入 链接地址https://editor.csdn.net/md/?articleId=113638原创 2021-02-04 18:07:04 · 158 阅读 · 0 评论 -
Java数据结构-直接插入排序
插入思想:把n个待排序的元素看成一个有序表和一个无序表开始时有序表中只有一个元素,无序表中有n-1个元素排序过程中每次从无序表中取出第一个元素,依次和有序表中的元素比较,将他插入到合适的位置思路图:代码1-分解步骤:public class InsertSort {public static void main(String[] args) {int[] arr={101,34,119,1};insertSort(arr);}//插入排序public static vo原创 2021-02-04 17:33:15 · 153 阅读 · 0 评论