2016年5月4日

Cantor数组问题

摘要: Cantor数组问题: 已知数组A[0...N-1]乱序着前N个正整数,现统计后缀数组A[i+1...N-1]中小于元素A[i]的数目,并存放在数组C[i]中。则C数组称为Cantor数组。 如给定数组:4,6,2,5,1,3。得到的Cantor数组为:3,4,1,2,1,0。 生成Cantor数组 阅读全文

posted @ 2016-05-04 23:59 Brainer-Gao 阅读(509) 评论(0) 推荐(0) 编辑

数组的最大间隔

摘要: 数组的最大间隔: 给定整数数组A[0...N-1],求这N个数排序后的最大间隔。要求时间复杂度为O(N)。 如:数组:1,7,14,9,4,13。 排序后:1,4,7,9,13,14。最大间隔为4。 问题分析: 如果对原数组排序,然后后项减前项的最大值,即为所求解。但是时间复杂度为O(nlogn)。 阅读全文

posted @ 2016-05-04 23:06 Brainer-Gao 阅读(681) 评论(0) 推荐(0) 编辑

荷兰国旗问题

摘要: 荷兰国旗问题: 现有红,白,蓝三个不同颜色的小球,乱序排列在一起,重新排列这些小球,使得红白蓝三色的同颜色的球在一起。 问题分析: 问题转换为:给定数组A[0,1,...,N-1],元素只能取0,1,2三个值,设计算法使得数组重新排列成“000...111..222”的形式。 可以使用三个游标,be 阅读全文

posted @ 2016-05-04 22:03 Brainer-Gao 阅读(190) 评论(0) 推荐(0) 编辑

最大子数组和

摘要: 最大子数组和问题: 给定一个数组A[0,1...,N-1],求A的连续子数组,使得该子数组和最大。 如:数组:1,-2,3,10,-4,7,2,-5 子数组:3,10,-4,7,2;该子数组和为 18。 程序实现: 运行结果: 转载请注明出处: C++博客园:godfrey_88 http://ww 阅读全文

posted @ 2016-05-04 19:43 Brainer-Gao 阅读(190) 评论(0) 推荐(0) 编辑

导航