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

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

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

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

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

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

2009-08-11 10:26:49

C#算法C#字符串反转

2009-08-11 14:51:11

C#数据结构与算法

2009-08-11 14:43:42

C#数据结构与算法

2009-08-11 14:59:57

一道面试题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-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-09-04 16:37:37

C# DES算法

2011-08-29 15:53:20

约瑟夫环Java

2009-08-25 17:59:49

C#入门

2023-10-09 07:11:03

排序算法序列

2009-08-17 13:07:27

C#马赛克算法

2009-08-21 15:02:31

C#加密算法

2009-08-25 17:41:51

C#开发排序算法

2009-08-21 17:02:31

C#编写数字转换中文算
点赞
收藏

51CTO技术栈公众号