- 博客(9)
- 资源 (1)
- 收藏
- 关注
转载 Numpy的tile函数
1.函数的定义与说明tile函数是模板numpy.lib.shape_base中的函数。函数的形式是tile(A,reps)函数参数说明中提到A和reps都是array_like的,什么是array_like的parameter呢?在网上查了一下,始终搞不明白,便把熟悉的python数据类型都试了一下,得出以下结论。A的类型众多,几乎所有类型都可以:array, list,
2014-06-03 21:14:20
516
原创 螺旋矩阵问题
很久以前参加一个公司的面笔试,其中有一道题是输出螺旋矩阵,当时毫无头绪,没有做出来,于是就搁置了。几天碰巧又遇到了,于是想了一会儿,发现只要找到规律,该问题相当简单,控制好转向条件即可。说一下思路:假如从1-n正整数作为数据元素,顺时针从左上角开始,设定一个字段orien,标识填充要推进的方向,然后设定四个方向的边界值,第一行为上边界,最后一行为下边界,最左边列作为左边界值,最右边列作为右边界
2014-02-27 16:39:25
622
原创 Huffman编码
哈夫曼树的创建:用一个指针数组存放每个字符的值和次数(权值),并按照权值升序规则排序,合并数组的前两个节点,并生成一个新的节点,其左右孩子即为数组的前两个元素,用根节点指向它,将其放在指针数组的首位,从第三个元素开始依次向前移动一位,重新排序,重复上述步骤直至数组中至剩下一个元素。比如:typedef struct HuffmanNode{ ElementType data; i
2014-02-27 09:49:26
544
原创 二叉搜索树的插入,搜索,删除
首先提一句什么是二叉搜索树:对于树中的每个结点P,其左孩子中所有值小于该节点的值,而其右孩子中所有值大于该节点的值。前者称作前驱,后者称作后继。利用这种大小特性可以很方便查找到需要的节点。 二叉搜索树的插入:插入某一节点,值为v,从根节点作为起始,如果v小于当前节点的值,则记录的当前节点的位置作为父节点,把当前节点指针指向其左节点继续判断;否则,记录当前节点的位置,然后指针指向其
2014-02-25 17:41:27
688
原创 求最长上升子序列
Q:有一个长为n的数列a0,a1,...,an-1。求出这个序列中最长的上升子序列的长度。上升子序列指的是对于任意的i大致思路是这样的,初始设定一个最大长度maxlength为0,从数列的第一项开始遍历,只要当前项大于前一项则加入,否则继续遍历,直至此次遍历结束。然后与maxlength做对比,如果大于maxlength,则将当前长度置为最大长度。然后继续从数组的第二项开始遍历,重复上述步骤。
2014-02-24 11:25:33
545
原创 非递归创建二叉树并求二叉树的深度
在学习二叉树时,必须要掌握的要点包括:二叉树的创建,遍历和了解二叉树的相关特性(二叉树的深度、高度、层数等等),这部分的代码实现很多教材直接以递归的方式展现,递归是个很好的编程思想,但是确实不是很容易理解,如果使用不当的话,往往写出来的程序运行效率较低,无论在耗费的时间还是占用的内存空间上比非递归较多,而且非递归能够将数据元素的出栈与进栈过程描述得更为清晰。因此我采用非递归的方式实现一遍。由于关于
2014-02-20 15:40:52
968
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人