C 语言排序函数代码示例 - 实现数组排序功能
#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 函数来输出排序后的结果。
需要注意的是,该代码示例仅仅提供了一个简单的排序算法,在实际应用中,可能会需要更加高效的排序算法,例如快速排序、归并排序等。
原文地址: https://www.cveoy.top/t/topic/bVyr 著作权归作者所有。请勿转载和采集!