
算法研究
GAMELOFT9
读万卷书,行万里路,知行合一。
展开
-
排列问题
一、问题原创 2014-10-16 21:57:49 · 752 阅读 · 0 评论 -
判断一个字符串是否含有相同字符
一、题目 判断一个字符串str是否含有相同的字符,假设字符为ASCII码表上的字符(前127位,不包括扩展字符)。二、分析 大家很容易想到的一个方法是,依次取一个字符x,然后遍历整个字符串,如果x==str[i],则返回true。当所有的字符都取出完毕都还没有发现相等,则返回false。该方法原理很简单,代码也很容易写出来,如下:#include#incl原创 2015-06-04 10:25:10 · 1705 阅读 · 0 评论 -
堆排序
什么是堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key[i]>=key[2i+2] 说白了就是分支结点比左右孩子都小(=)! 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key[i]>=key[2i+2]称为大顶堆,满足 Key[i]由上述性质可知大顶堆的堆顶的关键字肯定是所有关原创 2015-09-12 16:42:42 · 473 阅读 · 0 评论 -
求和为0的最长序列
一、题目有一串数字,求其和为0的最长序列。例如有序列:-4,2,1,1,3,-2,-1,5,那么和为0的最长序列就是:-4,2,1,1,3,-2,-1。二、分析可以一直相加,然后记住和为0的最后的一个相加元素的下标即可。三、源码#include /*打印和为0的最长序列*/void GetMaxLength(int* nums, int n){ int count =原创 2015-10-18 15:29:04 · 1277 阅读 · 0 评论 -
全排列算法的非递归实现
long begintime = Environment.TickCount; private void button6_Click(object sender, EventArgs e) { int slen = 4;//长度 int wlen = 3;//位数, Liststrin转载 2014-05-11 18:14:54 · 776 阅读 · 0 评论 -
排列组合算法
1。最近一直在考虑从m个数里面取n个数的算法。最容易理解的就是递归,但是其效率,实在不能使用。一直找寻中,今日得果2。算法来源与互联网组合算法 本程序的思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标 代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫转载 2014-05-11 18:12:35 · 1316 阅读 · 1 评论