• TOJ---2621--全排列


    这个方法 是超神教我的 --- 全排列的方法太多种了 感觉他这种写的 字典序法 是最简单的 最容易让人接受的

    而且在时间复杂度和空间复杂度上 都可以让人接受

    我待会将具体每步做法简要写一下...-> 我现在被一个 三角形给 深深烦死了  。。。。。。贴个代码 来 缓解下.....

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 int arr[30];
     6 const int inf = 0x3f3f3f3f;
     7 
     8 int main()
     9 {
    10     int n , temp;
    11     int t;
    12     int i , j , k;
    13     while( ~scanf("%d",&t) )
    14     {
    15         while( t-- )
    16         {
    17             scanf( "%d",&n );
    18             for( i = 0 ; i<n ; i++ )
    19             {
    20                 scanf( "%d",&arr[i] );
    21             }
    22             sort( arr , arr+n );
    23             while(1)
    24             {
    25                 int mmin = inf;
    26                 for( i = 0 ; i<n ; i++ )
    27                 {
    28                     printf( "%d%c",arr[i],(i==n-1)?'
    ':' ' );
    29                 }
    30                 for( i = n-1 ; i>=1 ; i-- )
    31                 {
    32                     if( arr[i]>arr[i-1] )
    33                     {
    34                         temp = arr[i-1];
    35                         k = i-1;
    36                         break;
    37                     }
    38                 }
    39                 if( i<=0 )
    40                     break;
    41                 for( i = n-1 ; i>k ; i-- )
    42                 {
    43                     if( arr[i]>arr[k] && arr[i]<mmin )
    44                     {
    45                         mmin = arr[i];
    46                         j = i;
    47                     }
    48                 }
    49                 swap( arr[j] , arr[k] );
    50                 for( i = k+1 , j = n-1 ; i<j ; i++ , j-- )
    51                 {
    52                     swap( arr[i] , arr[j] );
    53                 }
    54             }
    55             printf( "
    " );
    56         }
    57     }
    58     return 0;
    59 }
    View Code

    today:

      世间最美 不过 残缺美

      所以 留点遗憾 是件很美的事

    just follow your heart
  • 相关阅读:
    Go 实现一个简单的TCP服务端
    将博客搬至CSDN
    My solution for Git Client Error: Permission denied (publickey)
    The Key to final data
    Design Pattern
    Difference between TCP and UDP
    Oracle SQL自带函数整理
    Java JDBC Batch
    Javascript Date 判断输入日期是否正确
    Javascript 数字保留2位小数
  • 原文地址:https://www.cnblogs.com/radical/p/3790117.html
Copyright © 2020-2023  润新知