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;
      }
     }
     
    }

  • 相关阅读:
    1118诗名,诗词形式,类别实体导入
    1119飞花令句子,好友关系导入
    1116五言诗生成&古今地名标注与展示
    1120地点实体与事件实体导入
    1121实体导入总结
    1111诗人生平信息提取
    1114诗词收集&藏头诗生成&Snownlp正负情感分析
    1112全体诗人个人生平提取
    1113七言诗词收集与LSTM自动写诗
    WPF ListView DataGrid日期时间类型格式转换
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700712.html
Copyright © 2011-2022 走看看