- 博客(6)
- 资源 (23)
- 收藏
- 关注
原创 利用双向队列构造链接式优先队列
优先队列的定义优先队列中的元素被赋予优先级。插入元素时保持优先队列部分有序,删除元素时具有最高优先级的元素最先删除。优先队列分为面向最高优先级的优先队列和面向最低优先级的优先队列。数据结构二叉堆当一棵二叉树的每个结点都大于等于它的两个子结点时,这个二叉树称为堆有序,也被称作二叉堆。一般二叉堆都是一棵完全二叉树,如图所示: 基于二叉堆的优先队列二叉堆可以很好的实现优先队列的基本操作:插入元素和
2015-10-24 12:21:19 1538
原创 利用队列构造链接式完全二叉树
完全二叉树的定义若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。数组式完全二叉树将二叉树的节点按照层级顺序放入一个数组,就构建了一个数组式完全二叉树。根节点位于0,它的子节点位于1、2,子节点的子节点位于3、4、5、6,等等。这种构建方式非常简单,使用非常广泛,但是由于数组占用的是连续的内存,其大
2015-10-23 13:32:25 1972
原创 非递归快速排序
快速排序常常使用递归算法来实现,其运行时只使用lgN 的系统调用栈。如果想更清楚快速排序的运行过程,我们可以使用非递归的方法来实现快速排序。其方法最重要的部分是显式的使用一个栈来保存切分数组的下标,使用一个循环将出栈的子数组切分为二,并将结果重新入栈(这两个切分结果的入栈顺序不影响最后结果),直到结果都成为长度为一的子数组,此时排序完毕。 代码如下:// 非递归快速排序public class
2015-10-18 20:12:49 970
原创 单链表的归并排序
归并排序是分治算法思想的一个具体体现。利用分治算法进行排序时,可以从两个方面进行考虑:merge方法:将两个已经有序的小集合合并为一个有序的大集合;sort方法:利用递归的方法,将总集合逐次二分为只有单个元素的集合,然后用merge方法将集合逐次两两合并,最后达到将总集合排序的目的。对于链表而言,由于不能像数组一样随机访问,故而使用一般方法会因为迭代寻找节点而消耗大量的时间。归并排序可以说是链
2015-10-15 23:59:58 974
原创 将中序表达式转为后序表达式
中序表达式:操作运算符在中间,被操作数在操作运算符的两侧的表达式。一般书面上的表达式大多数都是中序表达式,人们看起来直观易懂。 后序表达式:要求操作符出现在其操作数之后。后序表达式易于计算机处理,因为表达式中可以没有括号,而且只需要单向扫描,不再需要考虑运算符的优先级。 举例: 中序表达式: 2*3/(2-1)+3 *(4-1) 后序表达式: 2321-/* 341- *
2015-10-02 21:17:38 2441
原创 使用堆栈将缺少左括号的表达式补全并计算其值
问题描述:输入一个缺少左括号的表达式,打印出其补全括号的中序表达式,并计算表达式的值。例如给定表达式: 1+2)*3-4)*5-6)))得到输出: ((1+2)((3-4)(5-6)))计算得到其值为3 问题分析:计算表达式的问题通常使用堆栈。有的算法中利用操作符的优先级以及复杂的记录过程,其实只要利用好堆栈的特性,任何多余的操作都是完全没有必要的。这里首先考虑计算出表达式的值的问题,
2015-10-02 17:32:24 1076 2
深度学习 中文译版
2017-04-29
magmamic-1.4.0 Intel MIC port of MAGMA
2016-10-03
magma-2.0.2 Matrix Algebra for GPU and Multicore Architectures Library
2016-10-03
easybcd2.3
2015-11-18
实用Fourier变换与C++实现
2014-05-15
emu8086汇编程序编辑器
2013-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人