#include <stdio.h> #include <stdlib.h>

void sortArray(int n, int a[], int size) { int t;

for (int i = 0; i < n / 2; i++) {
    for (int q = 0; q < n / 2 - i; q++) {
        if (a[q] > a[q+1]) {
            t = a[q];
            a[q] = a[q+1];
            a[q+1] = t;
        }
    }
}

if (n % 2 == 0) {
    for (int i = n / 2; i < n; i++) {
        for (int q = n / 2; q < n - i; q++) {
            if (a[q] > a[q+1]) {
                t = a[q];
                a[q] = a[q+1];
                a[q+1] = t;
            }
        }
    }
} else {
    for (int i = (n / 2) + 1; i < n; i++) {
        for (int q = (n / 2) + 1; q < n - i; q++) {
            if (a[q] < a[q+1]) {
                t = a[q];
                a[q] = a[q+1];
                a[q+1] = t;
            }
        }
    }
}

for (int i = 0; i < size; i++) {
    printf('%d ', a[i]);
}

}

int main() { int n; scanf('%d', &n);

int *a = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
    scanf('%d', &a[i]);
}

sortArray(n, a, n);

free(a);
return 0;

}

该代码实现了一个简单的数组排序函数 sortArray,它接受三个参数:

  • n:数组的大小
  • a[]:待排序的数组
  • size:数组的大小

函数使用双层循环对数组进行排序,并使用一个临时变量 t 来进行元素交换。

main 函数负责获取用户输入的数组大小和元素,并调用 sortArray 函数进行排序。最后,main 函数释放了动态分配的内存,并返回 0 表示程序正常结束。

该代码示例中使用了动态内存分配,可以根据需要动态调整数组的大小,避免了固定数组大小带来的限制。此外,代码中还使用了 scanf 函数来获取用户输入,以及 printf 函数来输出排序后的结果。

需要注意的是,该代码示例仅仅提供了一个简单的排序算法,在实际应用中,可能会需要更加高效的排序算法,例如快速排序、归并排序等。

C 语言排序函数代码示例 - 实现数组排序功能

原文地址: https://www.cveoy.top/t/topic/bVyr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录