zoukankan      html  css  js  c++  java
  • 字典序法实现全排列

    #include<iostream>

    using namespace std;

    #define M 9

    int tempData[9 * 8 * 7 * 6 * 5 * 4 * 3 * 2][M] = {0};

    void sort(int array[],int begin,int end);
    void view(int array[],int length);
    bool jud(int array[]);
    void getData(int array[]);
    int getPoint(int array[],int value);


    int main(int argc,char** argv){
     
     int data[M] = {1,2,3,4,5,6,7,8,9};
     getData(data);
     
     return 0;
    }

    void getData(int array[]){
     
     int i = 0,j = 0;
     int temp;
     int nums = 0;
     
     for(int i = 0;i < M;i++){
       
      tempData[nums][i] = array[i];
     }
     nums++;
     
     while(jud(array)){
      
      for(int m = M - 1;m > 0;m--){
       
       if(array[m] > array[m - 1]){
        
        i = m - 1;
        j = getPoint(array,array[i]);
        
        temp = array[i];
        array[i] = array[j];
        array[j] = temp;
        break;
       }
      }
      
      sort(array,i + 1,M - 1);
      for(int i = 0;i < M;i++){
       
       tempData[nums][i] = array[i];
      }
      nums++;
     }
    }

    void sort(int array[],int begin,int end){
     
     int temp = 0;
     
        for(int i = begin;i < end;i++){
         
         for(int j = i + 1;j <= end;j++){
          
          if(array[i] > array[j]){
           
           temp = array[i];
           array[i] = array[j];
           array[j] = temp;
       }
      }
     }

    }

    void view(int array[],int length){
     
     for(int i = 0;i < length;i++){
      
      cout << array[i] << "  ";
     }
     cout << endl;
    }

    bool jud(int array[]){
     
     for(int i = 0;i < M - 1;i++){
      
      if(array[i] < array[i + 1]){
       
       return true;
      }
     }
     
     return false;
    }

    int getPoint(int array[],int value){
     
     for(int i = M - 1;i >= 0;i--){
      
      if(array[i] > value){
       
       return i;
      }
     }
     
    }

  • 相关阅读:
    Android-ViewPagerIndicator框架使用——CirclePageIndicator
    Fragment Transactions和Activity状态丢失
    管理Fragments
    Android自动滚动 轮播循环的ViewPager
    android-async-http框架库使用基础
    android-async-http AsyncHttpClient介绍
    Universal-Image-Loader解析(一)——ImageLoaderConfiguration的详细配置
    MyBasic架构
    JDBC存在的问题
    Spring整合jdbc-jdbc模板api详解
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700712.html
Copyright © 2011-2022 走看看