为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

约瑟夫环算法设计

2017-09-27 4页 doc 32KB 58阅读

用户头像

is_841159

暂无简介

举报
约瑟夫环算法设计约瑟夫环算法设计 实验一 基于约瑟夫环问题的算法设计 --计科一班钟祯穆20100810127 一、问题描述 设编号为1-n的n(n>0)个人按顺时针方向围成一圈(首先第1个人从1开始顺时针报数(报m的人(m 为正整数)(令其出列。然后再从他的下一个人开始,重新从1顺时针报数,报m的人,再令其出列。如此下去,直到圈中所有人出列为止。求出列编号序列。 二、需求分析 1、需要基于线性表的基本操作来实现约瑟夫问题 、需要利用顺序表来实现线性表 2 3、测试用例 输入:10,3 6 9 2 7 1 8 5 10 4 ...
约瑟夫环算法设计
约瑟夫环算法设计 实验一 基于约瑟夫环问题的算法设计 --计科一班钟祯穆20100810127 一、问题描述 设编号为1-n的n(n>0)个人按顺时针方向围成一圈(首先第1个人从1开始顺时针报数(报m的人(m 为正整数)(令其出列。然后再从他的下一个人开始,重新从1顺时针报数,报m的人,再令其出列。如此下去,直到圈中所有人出列为止。求出列编号序列。 二、需求分析 1、需要基于线性表的基本操作来实现约瑟夫问题 、需要利用顺序表来实现线性表 2 3、测试用例 输入:10,3 6 9 2 7 1 8 5 10 4 输出:3 三、概要设计 抽象数据类型 为实现上述程序的功能,应以整型(int)数据存储用户的输入,以及输出的结果。 算法的基本思想 利用数组来模拟一个环,然后模拟报号出圈的过程让数组元素循环报数,当报数编号和用户所输入的出列编号相同时,则输出此数,重复此过程,直到所有人都出列。 程序由三个模块组成: (1) 输入模块:完成两个整数的输入,存入变量n和m中。 (2) 计算模块:循环计算出这n个数的输出序列 (3) 输出模块:按序列输出这n个数。 四、详细设计 物理数据类型 队列元素以及出列序列皆以整型数组方式存储 算法的具体步骤 (1) 给输入输出序列元素编号 (2) 开始循环访问数组元素 (3) 从第一个元素开始报数,当报数编号与出列编号相同时即让该数 输出。 (4) 将下一个元素置1,即又重新从1开始报数,重复此循环过程, 直至所有数输出。 算法的时间复杂度 程序中循环语句为单程循环,无嵌套,时间复杂度为O(n) 输入和输出的格式 输入格式:n,m 输出格式1:在字符界面上输出这n个数的输出序列 输出格式2:将这n个数的输出序列写入到文件中 五、运行结果 六、源代码(此程序在DevC++上运行) /*求解约瑟夫环问题*/ #include using namespace std; int main() { int m,n,k,i,j; //n表示总人数,m是出列编号 cout<<"请输入总人数及出列编号"<>n>>m; int *listarray=new int[n]; //将这n个人存入数组 int *outarray=new int[n]; //存放依此出列的人的编号 for(int i=0;i
/
本文档为【约瑟夫环算法设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索