用汇编的类编程实现快速排序的例子,本例子按字符串索引,支持插值和删除!
上传时间: 2013-12-14
上传用户:hphh
在通讯中,为了保证行运安全可靠,标准的串行口必须具有许多握手信号和 状态信息。这是因为通兜母鞲黾扑慊鶦PU速度不一样(这会导致“错帧”)以 及发送机发送数据速度比接收机接收速度快(这会导致“过冲”)。为解决这个 问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节(低4位) 的数据,而另外半个字节(高4位)则用来传送信息。我们可以对信息位(高4位) 进行如下简单的编码: 0H:发送的是新的半个字节数据 1H:重新发送上次传送错误的数据 2H:文件名结束 3H:文件结束 这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就 是发送机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节 相比较,如果相同,就发送新的半个字节,否则就重新发送。新数据与旧数据通 过信息位来区分。下面就是用C语言编写控制串行口的程序。
标签: 通讯
上传时间: 2015-05-22
上传用户:黑漆漆
将大数看作一个n进制数组,对于目前的32位系统而言n可以取值为2的32次方,即0x10000000, 假如将一个1024位的大数转化成0x10000000进制,它就变成了32位,而每一位的取值范围就不是0-1 或0-9,而是0-0xffffffff。我们正好可以用一个无符号长整数来表示这一数值。所以1024位的大数 就是一个有32个元素的unsigned long数组。而且0x100000000进制的数组排列与2进制流对于计算机 来说,实际上是一回事,但是我们完全可以针对unsigned long数组进行“竖式计算”,而循环规模 被降低到了32次之内,并且算法很容易理解。
上传时间: 2015-05-29
上传用户:xsnjzljj
附有本人超级详细解释(看不懂的面壁十天!) 一、 实际问题: 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。它又称“缩小增量分类法”,在时间效率上比插入、比较、冒泡等排序算法有了较大改进。能对无序序列按一定规律进行排序。 二、数学模型: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。 三、算法设计: 1、将相隔某个增量dlta[k]的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t为排序趟数,1≤k≤t≤[log2 (n+1)],其中n为待排序序列的长度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])进行一趟希尔插入排序。 3、在主函数中控制程序执行流程。 4、时间复杂度:1≤k≤t≤[log2 (n+1)]时为O(n3/2)。
上传时间: 2013-12-11
上传用户:天涯
一, 一般步骤 (1),消除或减小恒定系差 (2),求测量数据的数学期望 ,即算术平均值 : , 其中n为测量数据次数, 为第 次测量的数据。 (3),求剩余误差 : (4),根据贝塞尔公式求标准偏差 : (5),检查是否有粗大误差。检查时用了肖维纳准则。如果某次测量的结果 所对应的 ,则认为是坏值,予以剔除。 (6),如有坏值,剔除后重新进行步骤(2)~(5)的计算,直至无坏值为止。 (7),判断有无变值系差。判断是可用马利科夫准则或阿卑—赫梅特准则。 (8),求出算术平均值的标准偏差 : 必须注意,如前面计算中曾出现坏值,则这里的 应为剔除后重新计算出的标准偏差。 (9),求算术平均值的不确定度
标签:
上传时间: 2015-06-01
上传用户:shizhanincc
分成机器语言,汇编语言,高级语言三大类。 电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。 目前通用的编程语言有两种形式:汇编语言和高级语言。 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。 高级语言是目前绝大多数编程者的选择。和汇编
上传时间: 2013-12-28
上传用户:wys0120
按15*16列的表格形式显示ASCII为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻每两个字符之间用空白隔开。
上传时间: 2015-06-04
上传用户:1109003457
这个小软件( RealEditor )是同学一起编写的,可编辑,打印,更换主题,并有传输功能 注意,要想正确运行此软件,务必要把JDK升级到JDK 5.0_update4即tiger版(未来的JDK版本应该也可以),如果运行软件后,端口冲突或突然非法将它关闭(用任务管理器进程结束掉),导致软件无法正常退出,无法再次启动此软件,请到C:\Documents and Settings\All Users\Application Data\RealEditor下的那个文件删掉即可(注意,Application Data是个隐藏文件夹) Register.rar是注册机,需要在DOS下运行"java Register" (不带""注意路径) 如果path和classpath设置没有问题的话,只要双击RealEditor.jar文件( 没有与WinRaR相关联 )即可启动此软件.
标签: RealEditor 软件 编写
上传时间: 2015-06-06
上传用户:TF2015
设计四 拔河游戏机 1、 设计一个能进行拔河游戏的电路。 2、 电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点。 3、 游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。 4、 亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。 5、 用数码管显示获胜者的盘数。 教学提示: 1、 按钮信号即输入的脉冲信号,每按一次按钮都应能进行有效的计数。 2、 用可逆计数器的加、减计数输入端分别接受两路脉冲信号,可逆计数器原始输出状态为0000,经译码器输出,使中间一只二极管发亮。 3、 当计数器进行加法计数时,亮点向右移;进行减法计数时,亮点向左移。 4、 由一个控制电路指示谁胜谁负,当亮点移到任一方终端时,由控制电路产生一个信号,使计数器停止计数。 5、 将双方终端二极管“点亮”信号分别接两个计数器的“使能”端,当一方取胜时,相应的计数器进行一次计数,这样得到双方取胜次数的显示。 6、 设置一个“复位”按钮,使亮点回到中心,取胜计数器也要设置一个“复位”按钮,使之能清零。
上传时间: 2015-06-08
上传用户:LouieWu
---- Huffman 算法的不同实现 本目录下的程序用8种不同的方式实现了Huffman编码算法,这8种方式分别是 * huffman_a 使用链表结构生成Huffman树的算法,这是最基本的实现方法,效率最低。 * huffman_b 使用《数据结构》(严蔚敏,吴伟民,1997,C语言版)中给出的算法,将二叉树存放在连续空间里(静态链表),空间的每个结点内仍有左子树、右子树、双亲等指针。 * huffman_c 使用Canonical Huffman编码,同时对huffman_b的存储结构进行改造,将二叉树存放在连续空间tree里,空间的每个结点类型都和结点权值的数据类型相同,空间大小为2*num,tree[0]未用,tree[1..num]是每个元素的权值,生成Huffman后,tree[1..2*num-1]中是双亲结点索引。 * huffman_d 在huffman_c的基础上,增加预先排序的功能先用QuickSort算法对所有元素的权值从小到大排序,这样,排序后最前面的两个元素就是最小的一对元素了。我们可以直接将它们挑出来,组合成一个子树。然后再子树的权值用折半插入法插到已排序的元素表中, 保证所有结点有序。为了保证初始元素的顺序不变,我们另外使用了一个索引数组,所有排序中的交换操作都是在索引数组中进行的
上传时间: 2015-06-12
上传用户:xg262122