전체 배열 알고리즘 원리 와 실현
2189 단어 직장이루어지다의 원리레저전체 배열 알고리즘
。
1、 4, 5。 4 5 5 4, 4 5 5 4 。
, 。
2、 3, 4, 5。 3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 。
3 4,5 、 4 3,5 5 3,4 .
, p = {r1, r2, r3, ... ,rn}, perm(p),pn = p - {rn}。
perm(p) = r1perm(p1), r2perm(p2), r3perm(p3), ... , rnperm(pn)。 n = 1 perm(p} = r1。
, , n-1 。
:
#include
<
stdio.h
>
int
n
=
0
;
void
swap(
int
*
a,
int
*
b) {
int
m; m
=
*
a;
*
a
=
*
b;
*
b
=
m; }
void
perm(
int
list[],
int
k,
int
m) {
int
i;
if
(k
>
m) {
for
(i
=
0
; i
<=
m; i
++
) printf(
"
%d
"
, list[i]); printf(
"
"
); n
++
; }
else
{
for
(i
=
k; i
<=
m; i
++
) { swap(
&
list[k],
&
list[i]); perm(list, k
+
1
, m); swap(
&
list[k],
&
list[i]); } } }
int
main() {
int
list[]
=
{
1
,
2
,
3
,
4
,
5
}; perm(list,
0
,
4
); printf(
"
total:%d
"
, n);
return
0
; }
, 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
양식 제출 후 제출 버튼 비활성화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.