18910140161

递归解决整个数组问题的Java算法示例

顺晟科技

2021-08-28 09:42:36

167

排列问题

设置R={r1,r2,rn}是要排序的n个元素,Ri=R-{ri}。集合X中元素的完整阵列以Perm(X)记录。(ri)Perm(X)表示通过在Perm(X)的每个排序前加上前缀ri得到的排序。R的整体排列可以总结为:

当N=1时,Perm(R)=(r),其中R是集合中的元素。

在N1中,Perm(R)由(R1) perm (R1)、(R2) perm (R2)、(R3) perm (R3)组成。(rn)Perm(Rn)配置。

[java] view plaincopy

Public class AllSort {

公共静态void perm (int [] list,int k,int m) {

If(k==m) {

FOR(INT I=0;I=M;I) {

system . out . print(list[I]I);

}

system . out . print ln();

}

Else{

FOR(INT I=K;I=M;I) {

Swap(列表,K,I);

Perm(列表,k1,M);

Swap(列表,K,I);

}

}

}

公共静态voidswap (int [] list,int a,int b) {

Int temp

temp=list[a];

列表[a]=列表[B];

列表[b]=temp;

}

公共静态voidmain (stringargs []) {

int[]list=new int[5];

FOR(INT I=0;I list.lengthI) {

列表[I]=I 1;

}

Perm(list,0,list . length-1);

}

}

运行结果:

[java] view plaincopy

12345

12354

12435

12453

12543

12534

13245

13254

13425

13452

13542

13524

14325

14352

14235

14253

14523

14532

15342

15324

15432

15423

15243

15234

21345

21354

21435

21453

21543

21534

23145

23154

23415

23451

23541

23514

24315

24351

24135

24153

24513

24531

25341

25314

25431

25413

25143

25134

32145

32154

32415

32451

32541

32514

31245

31254

31425

31452

31542

31524

34125

34152

34215

34251

34521

34512

35142

35124

35412

35421

35241

35214

42315

42351

42135

42153

42513

42531

43215

43251

43125

43152

43512

43521

41325

41352

41235

41253

41523

41532

45312

45321

45132

45123

45213

45231

52341

52314

52431

52413

52143

52134

53241

53214

53421

53412

53142

53124

54321

54312

54231

54213

54123

54132

51342

51324

51432

51423

51243

51234

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航