
数据结构及算法
坟场之书
且行且珍惜
展开
-
简述快速排序
简述快速排序 快排基本思路 public class QuickSort { public static void main(String[] args) { int[] arr={5,3,7,4,67,2,9,1,8,45,32}; quick(arr,0, arr.length-1); System.out.println(Arrays.toString(arr)); } public static void quick(i原创 2021-10-31 11:33:07 · 133 阅读 · 0 评论 -
简述堆排序
简述堆排序 堆是一种做完全二叉树的数据结构。 常见的有两种堆: 大顶堆:每个节点的值都大于或者等于它的左右子节点的值。 小顶堆:每个节点的值都小于或者等于它的左右子节点的值。 根节点索引为i 父结点索引:(i-1)/2 左子节点索引为2i+1 右子节点索引为2i+2 所以 大顶堆:arr[i] >= arr[2i + 1] && arr[i] >= arr[2i + 2] 小顶堆:arr[i] <= arr[2i + 1] && arr[i] <=原创 2021-10-28 10:07:44 · 213 阅读 · 0 评论 -
简述归并算法
简述归并排序 归并排序(Merge sort)是采用分治法的一种应用算法 分治法的精髓: 分–将问题分解为规模更小的子问题; 治–将这些规模更小的子问题逐个击破; 合–将已解决的子问题合并,最终得出“母”问题的解; 如图所示,数列{5,7,6,3,9,2,1,8} 先将其对半分开,直到每个数独立为一组,再进行排序合并 解析数组temp的长度[right-left+1],分开后原数据的索引并没有变所以每次合并数组的长度都为right-left+1。如第一次合并数组长度:1-0+1=2,3-2+1=2… 同理原创 2021-10-23 12:54:42 · 177 阅读 · 0 评论