全排列算法的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