![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Nigtunt
这个作者很懒,什么都没留下…
展开
-
数据结构-哈夫曼编码java实现
1.哈夫曼编码是一种可变字长编码如果一组编码中任一编码都不是其他任何一个编码的前缀,我们称这组编码为前缀编码。哈夫曼树可用于构造最短的不等长编码方案。2.算法流程(1)根据给定的n个权值{w1,w2,w3…,wn}构成n棵二叉树的集合F={T1,T2,…Tn},其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树均空。(2)在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二...原创 2019-12-21 15:49:46 · 1086 阅读 · 1 评论 -
十大经典排序算法总结
1、选择排序最容易想到的排序算法,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。public void selectionSort(int[] array){ if(array.length==0) return ; for (int ...原创 2019-12-15 13:12:12 · 268 阅读 · 0 评论 -
数据结构-平衡二叉搜索树-java实现平衡二叉搜索树添加和删除节点
为什么要创建平衡二叉搜索树当一个二叉搜索树每个结点的C(i)为该结点的层次数。最坏情况下,当先后插入的关键字有序时,构成的二叉排序树蜕变为单支树,树的深度为其平均查找长度(n+1)/2(和顺序查找相同),最好的情况是二叉排序树的形态和折半查找的判定树相同,其平均查找长度和log 2 (n)成正比。所以要创建一个尽量平衡的树降低查找时间复杂度平衡二叉搜索树的数据结构平衡二叉树定义(AVL)...原创 2019-11-17 23:42:35 · 511 阅读 · 0 评论 -
数据结构-二叉树-二叉搜索树
一、什么是二叉搜索树二叉搜索树本质还是二叉树,但它在不空时添加节点,它左子树上所有的元素都小于根节点的元素,而根节点右子树上所有的元素都大于根节点的元素。通过以上方法建的树的中序遍历是从小到大的序列,所以二叉搜索树又称之为二叉排序树。二、二叉搜索树的基本操作2.1二叉搜索树插入节点由于二叉搜索树仍然是二叉树,所以先建立二叉树类public class tree { priva...原创 2019-11-17 22:20:34 · 700 阅读 · 0 评论 -
利用位运算找到数组中只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字原创 2019-11-15 18:47:57 · 441 阅读 · 0 评论 -
二叉搜索树的后序遍历序列-牛客网剑指offer
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路(1)题中首先给出了一数组并要求判断是不是二叉搜索树的后序遍历结果,那么可知,如果他真的时一个二叉搜索树的后序遍历结果,那么对这个数组排序之后得到的一定是这个二叉搜索树的中序遍历结果。(2)现在就相当于已知了一个二叉...原创 2019-11-11 18:43:57 · 349 阅读 · 0 评论 -
递归、动态规划、回溯法解决整数划分问题,并输出所有划分情况
整数的分划问题。如,对于正整数n=6,可以分划为:65+14+2, 4+1+13+3, 3+2+1, 3+1+1+12+2+2, 2+2+1+1, 2+1+1+1+11+1+1+1+1+1+1现在的问题是,对于给定的正整数n,编写算法打印所有划分。用户从键盘输入 n (范围1~10)程序输出该整数的所有划分。递归算法在正整数a的不同划分中,将最大加数n不大于m的划分个数记为...原创 2019-11-08 21:05:34 · 2354 阅读 · 0 评论 -
回溯法解决字符串排序的问题
题目(1)字符串的排列输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:回溯法,每次先固定第一个字符,然后求剩余序列的排列。而求剩余字符排列时跟原问题一样,此时可以递归回去。...原创 2019-11-08 19:36:39 · 762 阅读 · 0 评论