全排列算法的c++實現


 1 void cp(int n, int*A, int cur) {//n表示總共要排幾個數,A來記錄已經排好的數,cur表示正在排的是第幾個數
 2     if (cur == n) {//說明n-1已經排好 輸出
 3         for (int i = 0; i < n; i++)cout << A[i];
 4         cout << endl;
 5     }
 6     else for (int i = 1; i <= n; i++) {
 7         int ok = 1;
 8         for (int j = 0; j < cur; j++)//如果排列中已經有這個數 跳過
 9             if (A[j] == i)ok = 0;
10         if (ok) {
11             A[cur] = i;
12             cp(n, A, cur + 1);
13         }
14     }
15 }

主要是對int *A有了比較深刻的認識!!!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM