C#算法之约瑟夫环算法浅析

开发 后端 算法
C#约瑟夫环算法向你介绍了使用C#算法实现瑟夫环算法,以及实现的代码等等内容。

在C#算法的学习中碰到了C#约瑟夫环算法,那么约瑟夫环算法是什么呢?,首先我们来看看约瑟夫环问题描述:

设有n个人围坐一圈,现以某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,如此下去,直到所有人都出列为止.按出列顺序输出.

下面就是C#算法之约瑟夫环算法的实现程序:

  1. public class Josephas   
  2.    
  3.  //从第start人开始计数,以alter为单位循环记数出列,总人数为total   
  4.    public int [ ] Jose(int total, int alter, int start)       
  5.    {            
  6.         int i, j, k = 0;   
  7.  
  8.         //count数组存储按出列顺序的数据,以当结果返回   
  9.         int[] count = new int [ total+1];      
  10.  
  11.         //s数组存储初始数据   
  12.         int[] s = new int [ total+1];       
  13.  
  14.         //对数组s赋初值,第一个人序号为0,第二人为1,依此下去  
  15.         for (i = 0; i <total; i++)       
  16.         {   
  17.             s[i] = i;   
  18.        }   
  19.  
  20.         //按出列次序依次存于数组count中   
  21.         for (i = total; i >= 2; i--)        
  22.        {   
  23.             start = (start + alter - 1) % i;   
  24.             if (start == 0)   
  25.                 start = i;   
  26.             count[k] = s[start];   
  27.             k++;   
  28.             for (j = start + 1; j <= i; j++)           
  29.          s[j - 1] = s[j];   
  30.         }                   
  31.         count[k]=s[1];   
  32.  
  33.         //结果返回   
  34.         return count;       
  35.     }   
  36. }  

以上程序在Microsoft Visual Studio .NET 2003 和Visual C# 2005 Express Edition Beta1中均调试通过.

C#约瑟夫环算法的基本情况就向你介绍到这里,希望通过介绍C#约瑟夫环算法使你对C#算法有一定的了解。

【编辑推荐】

  1. C#算法实现字符串反转浅析
  2. C#算法解决萝卜地问题
  3. C#九九乘法表的实现浅析
  4. C#算法应用之高斯消元法实现
  5. C#二叉树遍历算法实现浅析
责任编辑:仲衡 来源: cnblogs
相关推荐

2009-08-11 09:19:52

C#选择排序C#算法

2009-08-11 10:26:49

C#算法C#字符串反转

2009-08-11 09:16:00

2009-08-11 14:43:42

C#数据结构与算法

2009-08-11 14:59:57

一道面试题C#算法

2009-08-11 14:51:11

C#数据结构与算法

2009-08-11 14:30:32

C#数据结构与算法

2009-08-11 13:29:57

C#二叉树遍历

2009-08-11 14:14:42

C#数据结构与算法

2009-08-07 17:25:37

C# SortedLi

2009-09-04 16:37:37

C# DES算法

2011-08-29 15:53:20

约瑟夫环Java

2023-10-09 07:11:03

排序算法序列

2009-08-17 13:07:27

C#马赛克算法

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-21 15:02:31

C#加密算法

2009-08-21 17:02:31

C#编写数字转换中文算

2009-08-11 10:42:14

C#算法

2009-08-25 17:41:51

C#开发排序算法
点赞
收藏

51CTO技术栈公众号