赫夫曼树在基础数据结构里也是一个难点,所以趁在家我把我课下和张同学写的报告提一些出来,稍微详细的写一下。   基本概念: 赫夫曼树又称为最优树,是一类带权路径长度最短的树。它具有n个叶子结点(每个结点的权值为wi) 的二叉树不止一棵,但在所有的这些二叉树中,必定存在一棵WPL值最小的树,称这棵树为H
拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某
1.题目描述: 2.解题思路:   本题是要合并两个已经有序的单链表,思路很简单,有两种方法:非递归和递归。 3.Java代码: (1)非递归:   为方便操作,定义一个辅助的头节点,然后比较原来两个链表的头节点,将小的那一个加入到合并链表,最后,当其中一个链表为空时,直接将另一个链表接入到合并链
自测-3 数组元素循环右移问题  一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M≥0)个位置,即将A中的数据由(A0A1···A​N-1​​)变换为(AN-M···AN-1A0A1⋯A​N-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考
1.题目描述: 2.解题思路:   题意:将K个已经排序的链表合并成一个排序的链表,分析并描述所用算法的复杂度。   方法一:基于“二分”思想的归并排序。本文用非递归和递归两种方法实现。   (1)非递归:归并排序”(Merging Sort):将两个或两个以上的有序表组合成一个新的有序表,无论是
静态查找表---静态存储 动态查找表----树、散列表(唯一仅适用于集合的存储结构)   查找: 内部查找-----比较次数作为衡量标准          外部---记录---访问外存次数   无序表: 顺序查找(O(N)) 第0个元素空出来作为哨岗,减少比较次数(避免比较下标是否合法) 1 da
1.题目描述: 2.解题思路:    题意:两个由整数构成的有序数组nums1和nums2,合并nums2到nums1,使之成为一个有序数组。注意,假设数组nums1有足够的空间存储nums1和nums2的所有元素(>=m+n)。   思路很简单,直接上代码。 3.Java代码: (1)普通
  本篇是上一篇赫夫曼树构建与编码的后续,稍微详细讲一下解码的算法。   Huffman解码算法流程: 1.定义指针p指向赫夫曼树结点,实际是记录结点数组的下标; 2.定义指针i指向编码串,定义ch逐个取编码串的字符; 3.初始化:读入编码串,设置p指向根结点,i为0; 4.执行以下循环:   a)
目录 1 问题描述 2 解决方案   1 问题描述 问题描述   给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序
最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列:  1,1,1,1,1,1,1,1,1  1,0,0,1,0,0,1,0,1  1,0,0,1,1,0,
 kmeans算法思想: 1.从数据集中随机选取k个初始点作为质心。 2.遍历数据集中所有的点,求出每个点到每个质心的距离,找出距离改点最近的质心,并改变此点类型为此质点的类型。 3.重新为每个类别更新其质心。 4.重复2,3,步直到最后两次质心位置相同退出while循环。 补充用python实现的
knn kmeans 1.knn是分类算法 2.监督学习 3.给它的数据是有label的,是已经事先分类好了的, 类别数不变。 1.kmeans是聚类算法 2.非监督学习 3.给它的数据是没有label,是没有事先分类好的, 以“物以类聚”原理进行聚集成簇。 没有明显的前期训练过程。 有明显