循环赛问题 日程安排的一种排列方式 使用C++实现
2013-07-11 22:52
281 查看
笔试时遇到的题目,当时没有写出来。。。
球员个数仅限于2的k次方个,如2 4 8 16 32 。。。。,第一列表示球员的编号,从第二列开始分别表示比赛的时间第一天、第二天、第三天。。。。
事后在网上查了,有任意球员个数的解决方案,但原理基本上就是这些。
技术点:
1,首先得分析出算法。
2,递归算法的设计:init()。
3,二位数组在类中的使用。
昨天发的匆忙,今天一想,竟然忘记释放内存了,真是不应该。。。
球员个数仅限于2的k次方个,如2 4 8 16 32 。。。。,第一列表示球员的编号,从第二列开始分别表示比赛的时间第一天、第二天、第三天。。。。
#include <cstdlib> #include <iostream> using namespace std; class B{ private: const int N; int **a; public: B(int n=4):N(n){ a=new int * ; for(int i=0;i<N;i++)a[i]=new int ; };
~B(){ for(int i=0;i<N;i++)delete[] a[i]; cout<<"释放。。。"<<endl; delete [] a; cout<<"释放完毕"<<endl; }; void pailie(){init(N);}; void print(); void init(int n); }; void B::init(int n) { if(2==n) { a[0][0]=1; a[0][1]=2; a[1][0]=2; a[1][1]=1; return; }else{ init(n/2); } int i,j; for(i=0;i<n/2;i++) for(j=0;j<n/2;j++) { a[(i+n/2)][j]=a[i][j]+n/2; a[(i+n/2)][j+n/2]=a[i][j]; a[i][j+n/2]=a[(i+n/2)][j]; } } void B::print() { int i,j; for(i=0;i<N;i++) { for(j=0;j<N;j++) //cout<<" "<<a[i][j]; printf("%3d", a[i][j]); cout<<endl; } } int main(int argc, char *argv[]) { cout<<"请输入球员的个数2 4 8 16 32 :"; int a; cin>>a; {B b(a); b.pailie(); cout<<"日程表:"<<endl; b.print();} system("PAUSE"); return EXIT_SUCCESS; }
事后在网上查了,有任意球员个数的解决方案,但原理基本上就是这些。
技术点:
1,首先得分析出算法。
2,递归算法的设计:init()。
3,二位数组在类中的使用。
昨天发的匆忙,今天一想,竟然忘记释放内存了,真是不应该。。。
相关文章推荐
- C++如何避免使用rand() % xxx的方式实现类似抽奖概率类的问题
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 【python】使用redis pool的一种单例实现方式
- 使用注解方式实现Dubbo搭建,解决消费者调用接口出现空指针异常以及事务等问题
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 开始想使用f#,只因为它提供了另一种思考问题的方式,框架架构师应该会多门语言的,就选你作为我的第二种吧。
- Python使用redis pool的一种单例实现方式
- 使用jdk1.5的多线程 lock condition 实现方式实现 生产者消费者问题
- C++异常机制的实现方式和开销分析 (大图,编译器会为每个函数增加EHDL结构,组成一个单向链表,非常著名的“内存访问违例”出错对话框就是该机制的一种体现)
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 集合的全排列问题-递归实现方式的改进---旋转法
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- MFC使用CEF并实现js与C++交互功能,解决Render进程中OnContextCreated绑定与OnWebKitInitialized的js扩展无法回调问题
- Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 雇佣问题原址排列给定数组(randomize In Place)-c++代码实现及运行实例结果
- 使用java实现多种方式解决图片压缩的问题