
数据结构
Champhoenix
这个作者很懒,什么都没留下…
展开
-
归并排序java代码
递归: public int[] sortArray(int[] nums){ int[] dst=new int[nums.length]; dst=Arrays.copyOf(nums,nums.length); mergeSort(nums,dst,0,nums.length); return dst; } private void mergeSort (int[] src,int[] dst,int start原创 2021-11-20 00:30:08 · 680 阅读 · 0 评论 -
快速排序java实现
快速排序java实现 public int[] sortArray(int[] nums){ quicksort(nums,0, nums.length-1); return nums; } public void quicksort(int[] nums,int start,int end){ if (end>start) { int pivot=partiton(nums,start,原创 2021-11-10 13:17:17 · 291 阅读 · 0 评论 -
计数排序java实现
计数排序java实现 public int[] sortArray(int[] nums){ int min=Integer.MAX_VALUE; int max=Integer.MIN_VALUE; for (int num:nums) { min=Math.min(min,num); max=Math.max(max,num); } int[] cou原创 2021-11-10 10:41:48 · 317 阅读 · 0 评论 -
通过先序遍历和中序遍历重构二叉树
通过先序遍历和中序遍历重构二叉树直接上代码node* create (int preL,int preR,int inL,int inR){ if (preL>preR) return NULL; node* root=new node; root->data=pre[preL]; int k; for (k=inL;k<=inR;k++) if (pre[preL]==in[k]) break; int numLeft=k-inL; root-&原创 2021-10-25 23:52:52 · 147 阅读 · 0 评论 -
哈夫曼树思路及C++代码
哈夫曼树思路及C++代码先介绍经典的合并果子问题哈夫曼树的构建思想:反复选择最小的两个元素,合并,直至只剩下一个元素。代码:#include <stdio.h>#include <queue>using namespace std;int main (){ int n,i,x,y,a,ans=0; priority_queue<int,vector<int>,greater<int> > Q; scanf ("%d",原创 2021-10-25 13:39:25 · 2995 阅读 · 0 评论 -
BFS变形题1
BFS变形题1注:广度优先搜索,判断最小层数,要把层数放在结构体里,#include <stdio.h>#include <queue>using namespace std;struct node{ int x,y; int ans=0;}Node;const int maxn=100;char matrix[maxn][maxn];int m,n,xS,yS,xT,yT;int X[]={0,0,1,-1};int Y[]={-1,1,0,0};原创 2021-10-18 23:59:56 · 92 阅读 · 0 评论 -
哈希函数的构造方法与解决冲突的方法
哈希函数的构造方法与解决冲突的方法哈希函数的构造方法有:直接定址法、数字分析法、平方取中法、折叠法、除留余数法、随机数法等。(1)直接定址法其哈希函数为一次函数,即以下两种形式:H(key)= key 或者 H(key)= a * key + b其中 H(key)表示关键字为 key 对应的哈希地址,a 和 b 都为常数。(2)数字分析法如果关键字由多位字符或者数字组成,就可以考虑抽取其中的 2 位或者多位作为该关键字对应的哈希地址,在取法上尽量选择变化较多的位,避免冲突发生。(3)平方取中转载 2021-10-15 14:03:18 · 2548 阅读 · 0 评论 -
霍夫曼树
霍夫曼树可以利用二叉树来设计二进制的前缀编码。下图所示二叉树,四个叶子结点分别表示A、B、C和D四个字符,约定左分支表示字符‘0’,右分支表示字符‘1’,则以由从根到叶子的路径上的分支表示的字符组成的字符串作为该叶子结点字符的编码。即“左0右1”,从上到下编码如下图中A、B、C和D的二进制前缀编码分别为0、10、110和111。并且,若以字符出现的次数为权,构造一棵赫夫曼树,由此得到的二进制前缀编码便为“最优前缀编码”(赫夫曼编码)。即以这组编码传送电文可使电文总长最短。...原创 2020-12-15 20:00:35 · 516 阅读 · 0 评论