ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:72KB ,
资源ID:7237463      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7237463.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(算法.循环赛.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

算法.循环赛.doc

1、一 void Table(int k,int * *a) { int n=1; for (int i=1;i<=k;i++)n* =2; for (int i=1;i<=n;i++)a[1][i]=i; int m=1; for (int s=1;s<=k;s++) { n/=2; for(int t=1;t<=n;t++) for(int i=m+1;i<=2*m;i++)

2、 for(int j=m+1;j<=2*m;j++) { a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m]; a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)*m*2]; } m* =2; } } 二 1 #include 2 using namespace

3、std; 3 const int SIZE = 100; 4 int table[SIZE][SIZE]; 5 void fillTable(int x,int y,int step){ 6 /*其实step=2的情形也可以用下面的递归通式完成 7 if(step==2){ 8 table[x+1][y+1]=table[x][y]; 9 table[x][y+1]=table[x+1][y]; 10 return ; 11 }*/ 12 if(step==1)return; 1

4、3 14 step/=2;//把原问题分为四个表格的填写 15 fillTable(x,y,step);//填写左上子表格 16 fillTable(x+step,y,step);//填写左下的子表格 17 //右上的子表格抄写左下的子表格 18 //右下的子表格抄写左上的子表格 19 //注意坐标要使用相对坐标 20 for(int i=0;i

5、table[x+i][y+j]; 23 table[x+i][y+step+j]=table[x+step+i][y+j]; 24 } 25 } 26 27 int main(){ 28 int n;cin>>n; 29 for(int i=1;i<=n;i++)table[i][1]=i; 30 fillTable(1,1,n); 31 for(int i=1;i<=n;i++){ 32 for(int j=1;j<=n;j++) 33 cout<

6、e[i][j]<<" "; 34 cout< 2 using namespace std ; 3 #include 4 int main(){ 5 int m,n=-1,i,j,k; 6 int two[20]; 7 cin>>m; 8 j=1; 9 for(i=0;i<20;i++){ 10 two[i]=j; 11

7、 if(m==j)n=i; 12 j*=2; 13 14 } 15 cout<>arr(m,vector(m)); 18 for(i=0;i

8、{ 22 if(j%two[i]==0)updown++; 23 if(updown%2==1){ 24 for(k=two[i];k<=two[i+1]-1;k++){ 25 arr[j+two[i]][k]=arr[j][k-two[i]]; 26 } 27 } 28 else{ 29 for(k=two[i];k<=two[i+1]-1;k++

9、){ 30 arr[j-two[i]][k]=arr[j][k-two[i]]; 31 } 32 } 33 } 34 } 35 36 for(i=0;i

10、lude #define N 64 void GameTable(int k,int a[][N]) { //n=2^k(k>=1)个选手参加比赛,二维数组a表示日程安排,数组下标从1开始 int n=2;//k=0,两个选手比赛日程可直接求得 //求解两个选手比赛日程,得到左上角元素 a[1][1]=1;a[1][2]=2; a[2][1]=2;a[2][2]=1; int i,j,t; for(t=1;t

11、下角元素     for(i=temp+1;i<=n;i++)          for(j=1;j<=temp;j++)              a[i][j]=a[i-temp][j]+temp;//左下角元素和左上角元素的对应关系          //将左下角元素抄到右上角          for(i=1;i<=temp;i++)              for(j=temp+1;j<=n;j++)                  a[i][j]=a[i+temp][(j+temp)%n];              //将左上角元素抄到右下角        

12、      for(i=temp+1;i<=n;i++)                  for(j=temp+1;j<=n;j++)                      a[i][j]=a[i-temp][j-temp];                                   } for(i=1;i<=n;i++)//显示日程表      for(j=1;j<=n;j++)      {          printf("- ",a[i][j]);          if(j==n)              printf("n");     

13、} } void main() { int a[N][N]; int k; printf("输入选手的个数:(注意为2的平方)"); scanf("%d",&k); GameTable(k,a); } 2、结果验证 当两个选手,即k=1时   当4个选手时,即k=2   当8个选手,即k=3   当16个选手时,即k=16   时间复杂度分析: 迭代处理的循环体内部3个循环语句,每个循环语句都是一个嵌套的for循环,且它们的执行次数相同,基本语句是最内层循环体的赋值语句,即填写比赛日程表的元素。基本执行语句的执行次数是: T(n)= 所以时间复杂度为

14、O(4k)   改进的算法: #include    using namespace std;       const int SIZE = 50;    int a[SIZE][SIZE];       void copy(int n);    void tournament(int n);      int odd(int n);  //判断奇偶性  void makecopy(int n);  //makecopy 与copy算法类似,但是区分了n/2为奇数或偶数的情形  void copyodd(int n);  // 实现n/2为奇数时的

15、复制       void  main()    {           int n;        int i,j;        cin >> n;        tournament(n);        if(odd(n))   // n为奇数和偶数输出情况不同,要分别考虑         {            for(i = 1; i<=n; i++)            {                for(j = 1; j<=n+1; j++)                    if(a[i][j] == n+1)           

16、             cout << "0  ";                    else                       cout << a[i][j] << "  " ;                cout << endl;            }        }        else       {            for(i = 1; i<=n; i++)            {                for(j = 1; j<=n; j++)                    cout << a[i][j]

17、<< "  " ;                cout << endl;            }           }       }       void copy(int n)        {        int m = n/2;        for(int i = 1; i<=m; i++)            for(int j = 1; j<=m; j++)            {                a[i][j+m] = a[i][j] + m;                a[i+m][j] = a[i][j+m];  

18、              a[i+m][j+m] = a[i][j];            }    }       void tournament(int n)    {        if(n == 1)        {            a[1][1] = 1;            return;         }        if(odd(n))        {            tournament(n+1);            return;        }        tournament(n/2);       

19、 makecopy(n);    }       int  odd(int n)    {    if(n%2==1)     return 1;   else return 0; }       void makecopy(int n)  //makecopy 与copy算法类似,但是要区分n/2为奇数或偶数的情形    {        if(n/2 > 1 && odd(n/2))             copyodd(n);        else           copy(n);    }       void copyodd(int n) 

20、       // 实现n/2为奇数时的复制    {        int b[SIZE];        int m = n/2;        for(int i = 1; i<=m; i++)        {            b[i] = m+i;            b[m+i] = b[i];        }        for(i = 1; i<=m; i++)                  {            for(int j=1; j<=m+1; j++)            {                if(a[i

21、][j] > m)                {                    a[i][j] = b[i];                     a[m+i][j] = (b[i] + m)%n;                }                else                   a[m+i][j] = a[i][j] + m;            }            for(j = 2; j<=m; j++)            {                a[i][m+j] = b[i+j-1];      

22、           a[b[i+j-1]][m+j] = i;            }        }    }  结果验证: 当参赛人数为偶数 8时   当参赛人数为奇数  7时 六 #include void copy(int n); void tour(int n); void makecopy(int n); void copyodd(int n); int a[100][100]; int b[100]; int main() { int n,i,j; printf("Please input n :\n");

23、 scanf("%d",&n); for(i=1;i<=n;i++) { a[1][i]=i; a[i][1]=i; } tour(n); if(n % 2 == 1) for(i=1;i<=n;i++) { for(j=1;j<=n+1;j++) { if(a[i][j] == n +1) printf(" "); else printf("%-4d",a[i][j]); } printf("\n");; } else for(i=1;i<

24、n;i++) { for(j=1;j <= n;j++) { if(a[i][j] == n +1) printf(" "); else printf("%-4d",a[i][j]); } printf("\n");; } } void copy(int n) { int m = n/2; int i,j; for(i=1;i<=m;i++) for(j=1;j<=m;j++) { a[i][j+m]=a[i][j]+m; a[i+m][j]=a[i][

25、j+m]; a[i+m][j+m]=a[i][j]; } } void tour(int n) { if(n==1) { a[1][1]=1; return; } if(n%2==1)//奇数 { tour(n+1); return; } tour(n/2); makecopy(n); } void makecopy(int n) { if(n/2>1 && ((n/2)%2)) copyodd(n); else copy(n); } void copyodd(int n) { i

26、nt i,j; int m=n/2; for(i=1;i<=m;i++) { b[i]=m+i; b[m+i]=b[i]; } for(i=1;i<=m;i++) { for(j=1;j<=m+1;j++) { if(a[i][j]>m) { a[i][j]=b[i]; a[m+i][j]=(b[i]+m)%n; } else { a[m+i][j]=a[i][j]+m; } } for(j=2;j<=m;j++) { a[i][m+j]=b[i+j-1]; a[b[i+j-1]][m+j]=i; } } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服