数据结构与算法
数据结构与算法
掘源
计算机科学爱好者,劝退师,工程师。
展开
-
动态规划(一)
动态规划(一)动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表.原创 2021-08-31 10:09:46 · 148 阅读 · 2 评论 -
前缀树(prefix tree trie)
前缀树老规矩,先来几个概念1)单个字符串中,字符从前到后的加到一棵多叉树上2)字符放在路上,节点上有专属的数据项(常见的是pass和end值)3)所有样本都这样添加,如果没有路就新建,如有路就复用4)沿途节点的pass值增加1,每个字符串结束时来到的节点end值增加1可以完成前缀相关的查询show code, create itpublic class TrieTree { public static class Node1 { public int pass; public.原创 2021-07-27 11:30:58 · 189 阅读 · 3 评论 -
手写堆(一)
堆结构(一)堆结构总结:1)堆结构就是用数组实现的完全二叉树结构2)完全二叉树中如果每棵子树的最大值都在顶部就是大根堆3)完全二叉树中如果每棵子树的最小值都在顶部就是小根堆4)堆结构的heapInsert与heapify操作5)堆结构的增大和减少6)优先级队列结构,就是堆结构show codepublic static class MaxHeap { private int[] heap; private final int limit; private int.原创 2021-07-27 11:14:33 · 134 阅读 · 2 评论 -
排序算法之归并排序
归并排序过程分析主要理解递归的过程, 分–> 合我们可以理解一下使用递归进行排序:让我喝口酒show code:由最大值的问题引出: public static int getMax(int[] arr) { return process(arr, 0, arr.length - 1); } // arr[L..R]范围上求最大值 L ... R N public static int process(int[] arr, int L, int R) { i.原创 2021-07-19 11:36:13 · 46 阅读 · 1 评论 -
排序算法之插入排序
插入排序实现过程分析大家可以想一想打牌时摸牌、 排列手中牌的感觉, 对, 就是这样!想让arr[0~0]上有序,这个范围只有一个数,当然是有序的。想让arr[0~1]上有序,所以从arr[1]开始往前看,如果arr[1]<arr[0],就交换。否则什么也不做。…想让arr[0~i]上有序,所以从arr[i]开始往前看,arr[i]这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。最后一步,想让arr[0~N-1]上有序, arr[N-1]这个数不停向左移动,一直移动.原创 2021-07-19 10:59:29 · 49 阅读 · 1 评论 -
排序算法之冒泡排序
冒泡排序实现过程分析:过程:在arr[0~N-1]范围上:arr[0]和arr[1],谁大谁来到1位置;arr[1]和arr[2],谁大谁来到2位置…arr[N-2]和arr[N-1],谁大谁来到N-1位置在arr[0~N-2]范围上,重复上面的过程,但最后一步是arr[N-3]和arr[N-2],谁大谁来到N-2位置在arr[0~N-3]范围上,重复上面的过程,但最后一步是arr[N-4]和arr[N-3],谁大谁来到N-3位置…最后在arr[0~1]范围上,重复上面的过程,但最后.原创 2021-07-19 10:47:07 · 65 阅读 · 2 评论 -
排序算法之选择排序
选择排序过程分析:arr[0~N-1]范围上,找到最小值所在的位置,然后把最小值交换到0位置。arr[1~N-1]范围上,找到最小值所在的位置,然后把最小值交换到1位置。arr[2~N-1]范围上,找到最小值所在的位置,然后把最小值交换到2位置。…arr[N-1~N-1]范围上,找到最小值位置,然后把最小值交换到N-1位置。估算:很明显,如果arr长度为N,每一步常数操作的数量,如等差数列一般所以,总的常数操作数量 = a*(N^2) + b*N + c (a、b、c都是常数)所以选.原创 2021-07-19 10:04:09 · 63 阅读 · 2 评论