全排列程式

2021-06-18 17:59:05 字數 484 閱讀 6452

昨天筆試又碰到全排列,不幸的是居然寫錯了。。。

回來後又仔細把當時的思路完善了一下,c++**如下

#include "stdafx.h"

#include

using namespace std;

#define maxsize 5

void swap(int *a,int *b)

void quanpailie(int *a,int n)

for(int i=0;iif(i!=0)//i=0單獨處理,不做交換,少呼叫函式,節省資源

swap(a,a+i);

quanpailie(a+1,n-1);

swap(a,a+i);

else

quanpailie(a+1,n-1);

}

}void main()

;quanpailie(a,maxsize);

system("pause");

}

46 全排列 全排列 遞迴

遞迴的時候每次確定乙個位置的數字 nums陣列在遞迴過程中分為左右兩部分,左邊部分是已經確定好的部分,而右邊是待確定數字的部分。每次都嘗試用當前位置右邊的數字來交換當前數字以確定當前數字。題目可以使用collections來優化。詳見 class solution 遞迴過程中每次確定乙個位置的數,遞...

全排列問題pascal解題程式

var a,b array 0.9 of longint n longint procedure print vari longint begin for i 1 to n do write a i 5 要保留五個常寬 writeln end procedure search dep longint...

46 全排列 47 全排列II

46.全排列 這題和之前做的劍指offer上的字串全排列。一樣。分析 1 如果原始要排列的陣列順序為1 2 3 4,現在只要分別交換1 2,1 3,1 4然後對剩下的3個元素進行遞迴的排列。自己的code 100 class solution if start nums.size 1 return ...