• 三位数全排序


    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    namespace quanpaixu

    {

        class Program {

             static void Main(string[] args)

                {

                   int[] a = new int[] { 5, 4, 3 }; //全排序数组

                   Program s = new Program();

                   int i=0;

                   s.paixu(a,i); //全排序

                }

              public void paixu(int[] a,int i) //把全排序数组分割成一个单独的数和一个长度减小1的数组(i为坐标)

                {

                   int t = 0; int c = 0;

                   int[] temp = new int[a.Length-1]; //存储分割后的数组

                   int b = 0;

                   for (int k = 0; k < a.Length; k++)

                     {

                       if (k == i)

                         {

                            t = a[k]; //取坐标为i的值,根据此值开始运算

                          }

                       else

                          { temp[b] = a[k];

                            b = b + 1;

                          }

                       }

                        insert(temp,t,c); //排序数组

                        i = i + 1; //遍历,长度超过数组长度时,跳出

                        if (i > a.Length - 1) { return; }

                        paixu(a, i);

                    }

                  public void insert(int[] a1,int t,int c)

                    {

                       int[] b = new int[a1.Length + 1]; b[0] = t;

                           if (c == 0) //不同的排序情况

                               { for (int j = 0; j < a1.Length; j++) { b[j + 1] = a1[j]; } }

                          else { for (int k = 0; k < a1.Length; k++) { b[k + 1] = a1[1-k]; } }

                       for (int d = 0; d < b.Length; d++)//输出遍历结果

                           { Console.Write(b[d]+" "); }

                       Console.WriteLine();

                      c = c + 1; //生出不同的排序结果,遍历

                     if (c > 1) { return; }

                      insert(a1, t, c);

    } } }

  • 相关阅读:
    【luogu T34117 打油门】 题解
    【luogu P1774 最接近神的人_NOI导刊2010提高(02)】 题解
    【luogu P1462 通往奥格瑞玛的道路】 题解
    【luogu P3808 AC自动机(简单版)】 模板
    替罪羊树~讲解
    【luogu P3369 【模板】普通平衡树(Treap/SBT)】 模板 Scapegoat Tree
    【luogu P1801 黑匣子_NOI导刊2010提高(06)】 题解
    【luogu P2590 [ZJOI2008]树的统计】 题解
    【luogu P3398 仓鼠找sugar】 题解
    【luogu P3884 [JLOI2009]二叉树问题】 题解
  • 原文地址:https://www.cnblogs.com/dalas/p/1800068.html
Copyright © 2020-2023  润新知