Linux 拨号vps windows公众号手机端

C语言怎么将一串数字全排序

lewis 9年前 (2016-11-12) 阅读数 9 #程序编程
文章标签 c语言

要将一串数字进行全排列,可以使用递归算法来实现。以下是一个C语言实现的全排列算法示例:

#include <stdio.h>

// 交换两个元素的值
void swap(int *x, int *y) {
    int temp = *x;
    *x = *y;
    *y = temp;
}

// 递归函数,生成所有可能的排列
void permute(int *nums, int start, int end) {
    if (start == end) {
        for (int i = 0; i <= end; i++) {
            printf("%d ", nums[i]);
        }
        printf("\n");
    } else {
        for (int i = start; i <= end; i++) {
            swap(&nums[start], &nums[i]);
            permute(nums, start + 1, end);
            swap(&nums[start], &nums[i]);  // 恢复原数组顺序
        }
    }
}

int main() {
    int nums[] = {1, 2, 3}; // 要进行全排列的数字序列
    int n = sizeof(nums) / sizeof(nums[0]); // 数组长度
    permute(nums, 0, n - 1);
    
    return 0;
}

运行以上代码,会输出数组 {1, 2, 3} 的所有全排列结果。你可以根据需要修改输入数组来得到其他数字的全排列。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门