数据结构与算法实验室
文章平均质量分 77
_千鸟
程序员的双手比魔术师更厉害!
展开
-
huffman编码测试
/*huffman测试:如: char c[]={a,b,c,d,e,f}; 字符集 int a[] ={ 16, 4, 8, 6, 20, 3}; 频度集 huffman树 57 0/ /1原创 2009-12-23 01:41:00 · 922 阅读 · 0 评论 -
二维码生成算法及c#实现(附源码)
一、什么是二维码:二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。原创 2013-10-15 18:31:33 · 51561 阅读 · 27 评论 -
帮豆包刷“天天爱消除”,“天天连萌(附java代码)
通过计算机自动玩微信游戏“天天爱消除”,“天天连萌”,主要目的是为帮助老婆刷分。 1、 用电脑程序实现手动模拟触屏; 2、 图像识别,捕获屏幕图像,把图像转换为对应的数组(数组中不同的值代表不同图案); 3、 搜索最优移动方案。原创 2013-10-07 00:35:48 · 8624 阅读 · 57 评论 -
八数码编码(优化数据结构,优化算法)
/*重温八数码,优化算法数据结构:一维数组。 num[i]表示第i+1行第num[i]列有元素,通过对num[i]初始化进行排列即可模拟所有格局。如:num[0]=3,表示第一行第3列有元素。核心算法:判断是否在对角即可(横向、纵向已经在数据结构设计中避开,免去判断) 求下一排列推广:在很多带回溯、递归的索搜,可试着用数组进行全排列并判断原创 2013-03-25 02:03:52 · 944 阅读 · 0 评论 -
(转)高效算法求逆序数
1. 分治法(合并排序时计算) 把数组 a 划分为 [first, (first+last)/2)(左)、[(first+last)/2, last)(右) 两部分 [first, last) 的逆序数 = 左半部分逆序数 + 右半部分逆序数 + 两数分别出现在左、card(pair(i, j) | i∈左 且 j∈右) #include #include #define N 10转载 2010-01-07 18:10:00 · 2126 阅读 · 0 评论 -
字典树trie_tree
闲着没事,把以前写的字典树搬过来,贴一下。 深搜遍历那块个人觉得没有写太好,因为其余都是用char *实现的,那部分却用了string. char*的速度是比string快很多的,所以还有待改进。所有代码均属个人编写,没有经过专门 测试,所以暂时还不知道正确性,如果有问题,还请指正。 #include#includeusing namespace std;原创 2010-01-03 00:18:00 · 1536 阅读 · 2 评论 -
堆排序小结
堆排序:什么是堆? 最大堆:根结点的键值是所有堆结点键值中最大者的堆。最小堆:根结点的键值是所有堆结点键值中最小者的堆。 (1) 基本思想 (需要会手动进行堆排序操作)1. 构建堆;2. 取堆得顶部元素,调整堆;(2)代码void heap_sort(int data[],int count){ int current; int l原创 2009-12-31 01:53:00 · 609 阅读 · 0 评论 -
快速排序小结
快速排序(1)基本思想在待排序的数组的n 个元素中取一个元素(一般取第一个),将其移动到这样的位置:在其之前的元素的值都小于它,在其之后的元素都大于它,这样是一趟快速排序;然后对数组的两个部分进行同样的操作,直到每部分只有一个记录为止;总之,每趟使表的第一个元素放在适当位置,将表两分,再对两子表进行同样的递归划分,直至划分的子表长度为1!(2)代码: //返回基准位置原创 2009-12-31 01:52:00 · 1069 阅读 · 0 评论 -
树:宽度,广度计算
树:宽度,广度计算.(含层次遍历思想)pairint,int> fun(node *root) //返回值first = depth; second = width{ pairint,int> temp; if(root == NULL) return temp; int len = 0,wid = 1;原创 2009-12-31 01:47:00 · 887 阅读 · 0 评论 -
微软必应·英雄会第三届在线编程大赛 “几个bing” 题解
新年之初,登陆CSDN看到了英雄会的题目,好久没有头脑风暴了,一看题目还算掌握中,决定试试,于是开始分析题目了。 题目要求: 例如有一个字符串"iinbinbing",截取不同位置的字符‘b’、‘i’、‘n’、‘g’组合成单词"bing"。若从1开始计数的话,则‘b’ ‘i’ ‘n’ ‘g’这4个字母出现的位置分别为(4,5,6,10) (4,5,9,10),(4,8,9,10)和原创 2014-01-02 22:05:23 · 2093 阅读 · 3 评论