c语言用函数排序数组(c语言数组从小到大排序函数)

1. 排序算法介绍

C语言中,排序是一种常见的操作,即根据一定的规则重新排列一个数组中的元素。常用的排序算法有冒泡排序、插入排序、选择排序、快速排序等。

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,每次比较相邻的两个元素,如果顺序错误就将它们交换位置,直到整个数组排好序为止。

插入排序的思想是将数组分为已排序和未排序两部分,从未排序部分选择一个元素插入到已排序部分的合适位置,直到整个数组排好序。

选择排序是每次从未排序部分选择最小的元素,放到已排序部分的末尾,直到整个数组排好序。

快速排序是一种分治的排序算法,选取一个基准元素,将数组分为小于基准元素和大于基准元素的两部分,然后递归地对两部分进行排序,直到整个数组排好序。

2. 使用函数实现冒泡排序

下面是一个使用函数实现冒泡排序的例子:


void bubbleSort(int arr[], int n) {
    int i, j;
    for (i = 0; i < n-1; i++) {
        for (j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr)/sizeof(arr[0]);
    bubbleSort(arr, n);
    printf("Sorted array: \n");
    for (int i=0; i < n; i++)
        printf("%d ", arr[i]);
    return 0;
}

运行结果为:11 12 22 25 34 64 90

3. 函数实现其他排序算法

除了冒泡排序,我们也可以使用函数实现其他的排序算法。以下是使用函数实现插入排序的例子:


void insertionSort(int arr[], int n) {
    int i, key, j;
    for (i = 1; i < n; i++) {
        key = arr[i];
        j = i - 1;
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = key;
    }
}

int main() {
    int arr[] = {12, 11, 13, 5, 6};
    int n = sizeof(arr)/sizeof(arr[0]);
    insertionSort(arr, n);
    printf("Sorted array: \n");
    for (int i=0; i < n; i++)
        printf("%d ", arr[i]);
    return 0;
}

运行结果为:5 6 11 12 13

使用函数实现选择排序、快速排序等算法的过程与上面类似,只是排序的逻辑稍有不同。

总结起来,使用函数实现排序算法可以让代码更加模块化、可读性更好。无论是冒泡排序、插入排序还是其他的排序算法,都可以通过设计合适的函数来实现。通过以上的代码示例,希望能够对使用函数排序数组有所帮助。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cyuyan4fap5h.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年7月29日 上午9:25
下一篇 2023年7月29日 上午9:26

猜你喜欢