当前位置:首页C语言 > 正文

C语言交换法排序

作者:野牛程序员:2023-08-23 11:59:10C语言阅读 2669

一种使用交换法进行排序的示例代码,它实际上是冒泡排序的变体。

以下是一个使用 C 语言实现交换法排序(类似冒泡排序)的示例代码:

#include <stdio.h>

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

// 交换法排序函数
void exchangeSort(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = i + 1; j < size; j++) {
            if (arr[i] > arr[j]) {
                swap(&arr[i], &arr[j]);
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int size = sizeof(arr) / sizeof(arr[0]);

    printf("未排序数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\\n");

    exchangeSort(arr, size);

    printf("交换法排序后数组:");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\\n");

    return 0;
}

在这段代码中,swap 函数用于交换数组中两个元素的值。exchangeSort 函数是主要的交换法排序函数,它遍历数组中的每对元素,如果顺序不正确,则进行交换。

交换法排序的时间复杂度为 O(n^2),其中 n 是数组的大小。它与冒泡排序类似,都是比较简单的排序方法,不适用于大规模数据集合。在实际应用中,通常会考虑更高效的排序算法,如快速排序、归并排序等。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击