帮忙写一个C语言的排列函数
时间: 2023-05-30 07:06:34 浏览: 88
简单C语言的队列函数
3星 · 编辑精心推荐
下面是一个简单的C语言排列函数:
```c
void permute(int arr[], int start, int end)
{
int i;
if (start == end) {
for (i = 0; i <= end; i++) {
printf("%d ", arr[i]);
}
printf("\n");
} else {
for (i = start; i <= end; i++) {
swap(&arr[start], &arr[i]);
permute(arr, start+1, end);
swap(&arr[start], &arr[i]);
}
}
}
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
```
这个函数使用递归方法来生成数组的所有排列。函数接受一个整数数组,以及数组的起始和结束索引。如果起始索引等于结束索引,就打印出当前的排列。否则,函数遍历数组,将起始索引与每个位置交换,然后递归调用自己,以生成所有可能的排列。最后,将数组还原为原始状态,以便下一次交换。
阅读全文