随笔分类 -  algorithm

生成格雷码
摘要:算法设计与分析老师又出了个练习题:利用分治策略设计一个算法,对任意的n构造相应的“格雷码”。“格雷码”(Gray code)是一个长度为2n的序列,满足A) 每个元素都是长度为n比特的串。B) 序列中无相同元素。C) 连续的两个元素恰好只有1比特的不同。例如,n=2时,格雷码为{00,01,11,10}。 二进制格雷码(也被称为二进制循环码)是一种无权码,其特点是任何相邻的两个码字中仅有一位代码不同,其他代码是一样的,所以二进制格雷码又叫单位距离码。仔细观察格雷码的编码方式:如果按顺序将格雷码每四个分为一组,对于格雷码的最后一位,具有折叠反射特性,即:最后一位的顺序为 01 10,01... 阅读全文

posted @ 2011-09-27 23:21 酿皮 阅读(1327) 评论(1) 推荐(0)

所有出栈顺序及其总数
摘要:算法设计与分析老师给了个练习题:栈是一种重要的数据结构,其主要的操作包括入栈和出栈。请编写程序,对任意给定的n,输出1,2,…,n的所有出栈顺序及其总数。 我用两种方法写了!第二种方法我写了好几天,自己的编程能力还不行啊!要多锻炼锻炼!还有总数应该用卡特兰数求的,我投机取巧了!各位大侠要是能帮忙改进就好了! algorithm1:设计:先求出全排列,再判断是否为正确的出栈顺序!分析:算法时间复杂度为O(n^3), 效率很低!空间复杂度为O(1);algorithm1 1 /* 2 * To change this template, choose Tools | Templates 3 *.. 阅读全文

posted @ 2011-09-23 13:06 酿皮 阅读(3232) 评论(2) 推荐(1)

导航