分而治之
JustRun-0822
你的时间在哪里,你的成就就在哪里。愿有梦的人,都能活成自己想要的样子。
展开
-
逆序对计数
逆序对计数暴力枚举public static int ForceCount(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[i]) { sum += 1;原创 2021-03-26 19:12:15 · 268 阅读 · 0 评论 -
快速排序
快速排序快速排序由托尼 · 霍尔于1961年提出。分解原问题数组 arr[p…r] 被划分为两个(可能为空)子数组 arr[p…q - 1] 和 arr[q + 1,…r],使得 arr[p…q - 1] 中的每一个元素都小于等于 arr[q],arr[q + 1,r] 中的每一个元素都大于等于 arr[q]。解决子问题递归调用快速排序,对子数组 arr[p…q - 1] 和 arr[q + 1…r] 进行排序。合并问题解对于快速排序来说,数组进行的是原址排序,所以不需要进行合并操原创 2021-03-24 20:16:21 · 125 阅读 · 0 评论 -
最大子数组和
二、最大子数组和问题引入解决思路1.蛮力枚举 O(n^3)代码实现public static int MaxSubArray(int[] arr){ int max = Integer.MIN_VALUE; for(int l = 0; l < arr.length; l++){ for(int r = 0; r < arr.length; r++){ int Slr = 0; // S原创 2021-03-23 16:53:11 · 132 阅读 · 0 评论 -
归并排序
归并排序分而治之基本策略(框架)分解原问题解决子问题合并问题解1945 年,归并排序由冯 · 诺依曼提出。O(nlogn)算法流程伪代码复杂度分析代码实现 public static int[] MergeSort(int[] arr) { if (arr.length < 2) { return arr; } int mid = arr.length / 2; // 包含 0原创 2021-03-22 23:08:54 · 110 阅读 · 0 评论