数据结构
宁小葵
这个作者很懒,什么都没留下…
展开
-
堆排序
public class HeapSort { private static void heapSort(int[] arr, int count) { //1.构建大顶堆 for(int i=arr.length/2-1;i>=0;i--){ //从第一个非叶子结点从下至上,从右至左调整结构 adju...原创 2019-10-11 22:00:55 · 218 阅读 · 0 评论 -
希尔排序
/** * @Author: AnNing * @Description: * @Date: Create in 10:48 2019/6/20 */ public class ShellSort { /** * 希尔排序 * @param arr 待排数组 */ public static void shellSort(int[] arr)...原创 2019-10-11 22:00:13 · 182 阅读 · 0 评论 -
归并排序
/** * 归并排序 * @Author: AnNing * @Description: * @Date: Create in 11:28 2019/6/18 */ public class MergeSort { /** * * 将arr[l...mid]和arr[mid+1...r]两部分进行归并 * @param arr * @p...原创 2019-10-11 21:59:29 · 182 阅读 · 0 评论 -
冒泡排序
public class BubbleSort { public static void bubbleSort(int [] a){ if(a.length!=0||a!=null){ for(int i=a.length;i>0;i--){ for(int j=0;j<i-1;j++){ ...原创 2019-10-11 21:58:44 · 138 阅读 · 0 评论 -
快速排序
/** * 快速排序主要是每次都找到基准元素的位置,然后再分而治之 * 指针交换法:1、将第一个元素当做基准元素,第一个元素为left,最后一个为right * 如果left!=right时,将right与pivot比较,如果大于则向左移动,否则则切换到left; * 切换到left时,如果left比pivot小,则left向右移动,否则切换到right * 交换left和right的...原创 2019-10-11 21:58:06 · 136 阅读 · 0 评论 -
排序算法——堆排序
堆的定义: 大顶堆:arr[i]>=arr[2i+1]&&arr[i]>=arr[2i+2] 小顶堆:arr[i]<=arr[2i+1]&&arr[i]<=arr[2i+2] 堆排序的思想: 对于给定的N个记录,初始化时把这些记录看做一颗顺序存储的二叉树,然后将其调整为一个大顶堆,然后将堆的最后一个元素与堆顶元素(二叉树的根节点)进行交...原创 2019-08-15 16:41:57 · 143 阅读 · 0 评论