谷歌的一道面试题
2015-06-24 22:07
471 查看
转载自:/article/2947152.html
#include "stdafx.h" //============================================================================ // Name : CompetitionWinner.cpp // Author : YLF // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; #define MAX 10 /* * just like a heap sort!! */ void Competition(int** matrix, int row, int col, int* order, int n); void Promote(int *order, int index); int main() { int i = 0, j = 0; int n = 0; //int (*matrix)[MAX]=new int[MAX][MAX]; int **matrix; matrix=new int*[MAX]; //注意*的位置 for(i=0;i<MAX;i++) matrix[i] = new int[MAX]; int order[MAX]; //输入队伍实力对比 cin>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>matrix[i][j]; //输入队伍参赛顺序 for(i=0;i<n;i++) cin>>order[i]; //比赛 Competition(matrix, n, n, order, n); //比赛结果 cout<<"比赛结果排名:"; for(i=0;i<n;i++) cout<<order[i]<<" "; delete []matrix; //释放堆内存*/ /*int (*a)[4]=new int[4][4]; /*for (int i=0;i<4;i++) { a[i]=new int[4]; }*/ //delete []a; return 0; } void Competition(int** matrix, int row, int col, int* order, int n){ int i = 0, j =0, index = 0; int winner = 0; while(n>1) { for(index=0;index<n;index+=2) { if(index+1 < n) { //偶数 这里的奇数偶数 指的是当前这一轮参赛的队伍总数是基数还是偶数 winner = matrix[order[index]][order[index+1]]; if(winner == order[index]) Promote(order,index); else Promote(order, index+1); } else { //奇数,这里作直接晋级处理 Promote(order,index); } } n = (n+1)/2; //重新计算进入下一轮循环赛的队伍总数 } } void Promote(int *order, int index){ int temp = order[index]; order[index] = order[index/2]; order[index/2] = temp; /*for (int i=0;i<4;i++) { cout<<order[i]<<" "; } cout<<endl;*/ //输出排序后的order数组 测试用 }
相关文章推荐
- 剑指offer面试题6——重建二叉树(递归)
- 2015面试记二
- 经典面试题:如何让DIV水平和垂直居中
- 黑马程序员--js如何实现继承(js实现继承的五种方式)
- 微博再掀#职业扫盲体# 你的职业中枪了吗?
- 黑马程序员--舍友笔试中的一道算法题
- 初为面试官的几点思考
- 黑马程序员--Java可变参数方法重载时要注意的几个问题
- 黑马程序员--java面向对象之this的作用总结
- 黑马程序员----面向对象???(略长)
- 【转】推荐!国外程序员整理的Java资源大全
- 黑马程序员——Java基础——Map集合
- 黑马程序员--成员变量和局部变量
- 轻松搞定面试中的二叉树题目
- 面试题(无答案)
- 黑马程序员-C基础-推箱子(入门级)笔记总结
- 让程序员跳槽的非钱原因
- 阅读一个程序员的生命周期有感
- 黑马程序员--java 类的继承
- 黑马程序员--Java中的split函数的用法