• 没事练习一下算法:全排列的递归算法。


    using System;

    namespace TotalSort
    {
        
    /// <summary>
        
    /// 全排列的递归算法
        
    /// </summary>

        class Class1
        
    {
            
    /// <summary>
            
    /// 应用程序的主入口点。
            
    /// </summary>

            [STAThread]
            
    static void Main(string[] args)
            
    {
                
    //char[] s = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
                char[] s = "abcde".ToCharArray();
                TotalSort(s, 
    0);            
                Console.WriteLine(
    "\n\n总数:{0}", resultCount);
                Console.ReadLine();
            }


            
    static int resultCount = 0;

            
    public static void TotalSort(char[] list, int start) {
                
    int end = list.Length - 1;

                
    if (start == end) {
                    resultCount
    ++;
                    Console.WriteLine(list);
                }

                
    else {
                    
    for (int i = start; i <= end; i++{
                        
    char[] temp = new char[list.Length];
                        list.CopyTo(temp, 
    0);
                        
    char tempc = temp[start];
                        temp[start] 
    = temp[i];
                        temp[i] 
    = tempc;

                        TotalSort(temp, start 
    + 1);
                    }

                }

            }

        }

    }


    本来想测试 a - z 的全排列,但估算了一下数目相当惊人,只好作罢。
    (这个数目是 26!)

    采用了递归仅仅是为了锻炼算法,效率肯定是很低的。
  • 相关阅读:
    MySQL Unable to convert MySQL datetime value to System.DateTime 解决方案
    Zend 无限试用
    SQL 触发器
    C# 多线程示例
    JS 实现打印
    apache开启.htaccess
    MySQL 安装包下载教程
    js系列(10)js的运用(二)
    js系列(9)js的运用(一)
    js系列(8)简介
  • 原文地址:https://www.cnblogs.com/RChen/p/178268.html
Copyright © 2020-2023  润新知