【插入排序】
数组前k-1个元素已经有序,如何确定第k个元素的插入位置,使得这k个元素有序。
方法1:从左到右扫描扫描这个有序子数组,直到遇到第一个大于等于A[k]的元素,然后把A[k]插在这个元素的前面。
方法2:从右到左扫描这个有序子数组,直到遇到第一个小于等于A[k]的元素,然后把A[k]插在这个元素的后面。
【希尔排序】
先将数组分组,分别对每组进行插入排序,依次减少分组数进行插...
分类:
其他好文 时间:
2014-04-27 22:46:19
阅读次数:
267
了解了数据结构--栈(基础知识)
下面简单整理了下有关栈的几个应用。
递归
把一个直接调用自己,或间接调用自己的函数,成为递归函数。
这里有一个比较好的例子,看下面一组数:
你是否发现了这组数的规律呢,没错你会发现从第三个数开始,每个数都是前面两个数的之合。
现在我们通过程序来实现这个算法,如下java代码:
public class Test {
private ...
分类:
其他好文 时间:
2014-04-27 22:37:30
阅读次数:
404
再过段时间就要邀请赛了。下去开始写周总结。就研究的东西来看,这一周主要研究了研究了线段树和树状数组,并写了几篇博客,博客链接:http://www.cnblogs.com/fightingboy/p/3686188.html或 http://blog.csdn.net/asdfghjkl1993/article/details/24499001
用简单的几句话概括它们,线段树和树状数组都是...
分类:
其他好文 时间:
2014-04-27 22:17:19
阅读次数:
268
作业
通信编码
假设通信的物理设备只能表示1和0两种状态。
1和0状态都不能持续太久,否则物理设备会出现故障。因而人们设计出一种变通的方法:
多个0后人为地补入一个1
多个1后人为地补入一个0
当然,在解码的时候,要相应处理。
下面我们用串来模拟这个算法。
假设有需要通信的串:
String s = "101010010010000101111010001010101010000...
分类:
其他好文 时间:
2014-04-27 21:42:01
阅读次数:
388
Huffman编码相信学过数据结构这么课的都知道,概念也比较好理解,但是一般好理解的算法,在实际实现的过程中总是会遇到各种问题,一方面个人认为是对算法的实现过程不熟,另一方面在实际实现的过程中可以提升自己实现算法的能力,将自己的想法实现后还是比较满足的。下面是本人亲自实现的Huffman编码与解码的C语言实现,主要是记录一下自己当时的想法,供以后备忘吧。
数据结构定义如下:
typedef s...
分类:
其他好文 时间:
2014-04-27 21:41:06
阅读次数:
313
把不使用中间变量交换变量a、b的值扩展为不使用中间变量改变n个变量的值的顺序。...
分类:
其他好文 时间:
2014-04-27 21:34:59
阅读次数:
234
算法基础(八):超详细最优二叉树构建(2)求编码...
分类:
其他好文 时间:
2014-04-27 21:34:00
阅读次数:
236
一般密码相关的算法,个人是很难实现的,我们可以参照权威机构提供的方案,我想说美国标准与技术研究院 ,NIST(National Institute of Standards and Technology)。
今天谈到的MAC,使用NIST提供的公开800-38B算法文档。这个MAC算法是基于对称密钥块算法,故称之为CMAC,还是使用了AES。
算法原理:
1,根据输入的key,产生两个子ke...
分类:
其他好文 时间:
2014-04-27 21:25:58
阅读次数:
808
很久没有用过二叉树了,最近由于需要用到了,发现很多知识需要巩固了,中间涉及到一个算法就是找任意两个节点的最近祖先。通过本人回顾和演算,最终提出了下面一个方法,网上也有很多其他的方式实现,再次仅对自己好几个小时的工作作个记录和积累吧! 程序是用C语言写的,个人觉得如果用C#实现会更加方便。
首先是数据结构定义:
typedef char TElemType;
typedef bool Statu...
分类:
其他好文 时间:
2014-04-27 21:14:06
阅读次数:
366