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


    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!)

    采用了递归仅仅是为了锻炼算法,效率肯定是很低的。
  • 相关阅读:
    监控日志(把访问超过指定次数的ip预警出来) 青青子佩
    修改文件(通常使用第二种) 青青子佩
    前端使用Promise实现多线程
    CSS实现鼠标移上去按钮表面光影划过特效
    linux安装配置阿里云的yum源
    二维数组的定义
    java中2进制,8进制,16进制的表示
    创建索引
    stream 在 groupingby 之后,对结果数据再进行封装后返回
    java类初始化顺序
  • 原文地址:https://www.cnblogs.com/RChen/p/178268.html
Copyright © 2020-2023  润新知