Loading

上一页 1 ··· 6 7 8 9 10
摘要: ##主要用到的思想: 对于数组A[1..n],如果已知其子数组A[1..j]的最大子阵列,则可以在常数时间内获取A[1..j+1]的最大子数组,具体思路如下:A[1..j+1]的最大子数组(记为max_j+1),要么(不包含A[j+1])(即,A[1..j]的最大子数组(记为max_j)),要么是包 阅读全文
posted @ 2017-08-19 20:17 lif323 阅读(366) 评论(0) 推荐(0)
摘要: 只是机械实现,和算法导论的伪代码区别不大;复杂度分析 T(n)=2T(n/2)+O(n),由主定理(算法导论内容),时间复杂度为O(nlgn). #include<iostream> using namespace std; //寻找跨越中点的最大子数组; void find_crossing_su 阅读全文
posted @ 2017-08-19 20:11 lif323 阅读(1240) 评论(0) 推荐(0)
摘要: ##问题描述 : 排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。 写一个程序计算出,计算出的一个包括1、2、3三种值的数字序列,排成升序所需的最少交换次数。 输入第1行为类别的数量N 阅读全文
posted @ 2017-08-18 16:03 lif323 阅读(818) 评论(0) 推荐(0)
摘要: 模板类实现时与普通类实现时的差别 ####1、类模板不支持分离编译,即类的声明与实现应写在同一个文件中(实践所得,调试很久才发现这个错误); ####2、模板友元函数声明方法:(自己实现图数据结构时的一段代码) //定点类的声明; template<typename T>class Vertex; 阅读全文
posted @ 2017-07-01 17:24 lif323 阅读(757) 评论(0) 推荐(0)
摘要: 思路总结:这道题重点在于对罗马数字规则的把握,熟悉了罗马数字的规则以后,实现主要思路是 1、输入的罗马数字字符串str; 2、一个字符数组C,在代码中给出c; 在给定的字符数组C中,不断地判断C的当前元素是否为str的前缀,即分别确定str所代表数字的千位,百位,十位,个位: 实现代码如下: 1 i 阅读全文
posted @ 2017-05-02 19:21 lif323 阅读(220) 评论(0) 推荐(0)
摘要: 使用数组的来表示一个较大的数: #include<iostream> using namespace std; void add(int* &a, int length) { int c = 1; //c代表进位,完成对数组的更新,并保留最高为的进位; for (int i = length - 1 阅读全文
posted @ 2017-04-30 22:03 lif323 阅读(171) 评论(0) 推荐(0)
摘要: #include<iostream> using std::endl; using std::cout; using std::cin; inline bool isRes(long x,long y){//判断 x是否为y的平方根; return (x*x==y)||((x*x<y)&&((x+1 阅读全文
posted @ 2017-04-30 21:40 lif323 阅读(189) 评论(0) 推荐(0)
摘要: c++类中可以用const关键字来声明不修改对象的成员函数,它使用时需要注意: 1、常量对象只能调用const成员函数 2、非常量对象可以调用const成员函数 以下列代码为例,来解释: 1 class Person{ 2 public: 3 void print(){ 4 cout<<"I am 阅读全文
posted @ 2017-04-29 21:29 lif323 阅读(225) 评论(0) 推荐(0)
摘要: int blased_random() {//返回1的概率为0.1,返回0的概率为0.9; return rand() % 10 > 8 ? 1 : 0; } int unblased_random() {//等概率返回1,0; int a = 0, b = 0; for (;a == b;a = 阅读全文
posted @ 2017-04-27 10:19 lif323 阅读(318) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10