zoukankan      html  css  js  c++  java
  • 算法:排列算法

    背景

    记得上大学期间试着实现一个排列算法,可惜当时没有写出来,只是硬编码了几层循环,今天用递归终于写出来了。

    实现

    代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace DataStuctureStudy
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Arrange(new char[] { 'A', 'B', 'C', 'D'});
    14         }
    15 
    16         private static void Arrange(char[] items)
    17         {
    18             Arrange(items, 0);
    19         }
    20 
    21         private static void Arrange(char[] items, int startIndex)
    22         {
    23             if (startIndex == items.Length - 1)
    24             {
    25                 Console.WriteLine(String.Join(",", items));
    26             }
    27 
    28             for (var i = startIndex; i < items.Length; i++)
    29             {
    30                 Arrange(items, startIndex + 1);
    31                 Rolate(items, startIndex);
    32             }
    33         }
    34 
    35         private static void Rolate(char[] items, int startIndex)
    36         {
    37             var temp = items[startIndex];
    38             for (int i = startIndex; i < items.Length - 1; i++)
    39             {
    40                 items[i] = items[i + 1];
    41             }
    42             items[items.Length - 1] = temp;
    43         }
    44     }
    45 }

    输出

  • 相关阅读:
    数据库结构中的"树"
    Jquery学习
    cms系统也不复杂
    让你的博客园变灰
    IList对象排序方法
    计算机简介(二)
    在同一台电脑上使用U盘时快时慢的解决方法
    计算机简介
    合并排序
    javascript小结
  • 原文地址:https://www.cnblogs.com/happyframework/p/3485468.html
Copyright © 2011-2022 走看看