给定一个含 nn1个整数元素的a所有元素都不相同采用蛮力法求出a 中所有元素的全排列。用c语言写
#include <stdio.h>
void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
void permute(int *a, int start, int end) { if (start == end) { // 打印全排列 for (int i = 0; i <= end; i++) { printf("%d ", a[i]); } printf("\n"); } else { for (int i = start; i <= end; i++) { swap(&a[start], &a[i]); // 交换元素 permute(a, start + 1, end); // 递归求解子问题 swap(&a[start], &a[i]); // 恢复原始顺序 } } }
int main() { int n; printf("请输入数组长度:"); scanf("%d", &n); int a[n]; printf("请输入数组元素:"); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } permute(a, 0, n - 1); return 0; }
原文地址: https://www.cveoy.top/t/topic/bTkd 著作权归作者所有。请勿转载和采集!