数据结构 算法
文章平均质量分 75
星空物语gplwz
好好学习,修炼内功
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
汉诺塔问题(递归过程解析)
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面. 如果有3个盘子, 大中小号, 越小的越在上面, 从上面给盘子按顺序编号 1(小),2(中),3(大), 后面的原理解析引用这里的编号. 小时候玩过这个游戏, 基本上玩到第7个,第8个就很没有耐心玩了,并且操作的动作都几乎相同觉得原创 2014-04-14 20:19:21 · 1647 阅读 · 0 评论 -
算法趣题之螺旋队列
螺旋队列的样子如下图: 两大规律: 1、螺旋规律 2、奇数(圈数,或X轴正坐标)平方规律(紫线) 问题描述: 设1的坐标是(0,0),x方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(1,0)。编程实现输入任意一点坐标(x,y),输出所对应的数字! 问题解决: 从紫线突破。 从图中不难发现,每圈最大值max=(转载 2014-07-28 19:58:12 · 895 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divideandconquer)策略来把一个转载 2014-07-24 12:55:27 · 640 阅读 · 0 评论 -
数字之美之-------求二进制中1的个数
给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?原创 2014-05-21 15:50:37 · 613 阅读 · 1 评论 -
求一个数组中递增不减最长子数组
/************本模块功能如下************/ /*现在有一个数组 我们可以定义数组的子数组 如 数组 1 3 4 2 5 8 7 它的子数组可以是 1 3 4 3 4 2 5 等等 请写一个算法 找一个子数组 这个子数组递增不减少 并且是满足递增不减的最长子数组 */ #include #include int main()原创 2014-04-02 21:49:25 · 954 阅读 · 0 评论 -
很简单的算法题目
1-32102的整数满足:(1)不能被2,3,5,7,整除 (2)是完全平方数 (3) 个位数不是3 求这些整数的和?原创 2014-04-17 19:44:18 · 767 阅读 · 0 评论 -
算法趣题之字符串压缩
题目描述: 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz" 要求实原创 2014-04-30 12:22:29 · 740 阅读 · 0 评论 -
神奇的魔术方阵
/* 对平面魔方的构造,分为三种情况:N为奇数、N为4的倍数、N为其它偶数(4n+2的形式) ⑴ N 为奇数时,最简单 (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数加1 (3) 如果行列范围超出矩阵范围,则回绕。 例如1在第1行,则2应放在最下一行,列数同样加1;原创 2014-04-25 15:27:30 · 2795 阅读 · 1 评论 -
编程趣题之字符串过滤
题目描述: 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入原创 2014-04-30 11:22:38 · 862 阅读 · 0 评论 -
计算两个字符串的距离
题目描述: 计算 对于不同的字符串,希望能够有办法判断其相似程度。定义了如下方法来把两个不同的字符串变得相同,具体的操作方法为: 1. 修改一个字符(如把"a"替换为"b") 2. 增加一个字符(如把"abc"变换为"aabc") 3. 删除一个字符(如把"abc"变换为"bc") 比如,对于”abc”和”bc”两个字符串来说,可以通过增加/删除一个”a”的方式来达到目的。上面原创 2014-09-10 16:36:40 · 2741 阅读 · 0 评论
分享