1234进行全排列
#include <stdio.h>
void swap(int a[], int i, int j) {
int temp;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
void fun(int a[], int p, int q) {
if (p == q) {
for (int i = 0; i <= q; i++) {
printf("%d", a[i]);
}
printf("\n");
} else
for (int j = p; j <= q; j++) {
swap(a, j, p);//跟滑动数组差不多只进行p右边的变动
fun(a, p + 1, q);//p向右滑动
swap(a, j, p);//保证每一个都能够遍历到
}
}
int main() {
int q, p;
int a[] = {1, 2, 3, 4};
fun(a, 0, 3);
}