c语言直接调用排序函数 c语言直接调用排序函数的方法( 二 )


{
int i, j;
int v;//排序主体
for(i = 0; il - 1; i ++)
for(j = i+1; jl; j ++)
{
if(a[i]a[j])//如前面的比后面的大,则交换 。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}
}
对于这样的自定义sort函数,可以按照定义的规范来调用 。
二、C语言有自有的qsort函数 。
功 能: 使用快速排序例程进行排序 。头文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址 。
2、数组中待排序元素数量 。
3、各元素的占用空间大小4 指向函数的指针,用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int , float一类的C语言基础类型 。
C语言中通过函数调用对一维数组进行排序#include stdio.h
#include stdlib.h
#include time.h
#define MAXlen 100
void select_sort(int *x, int n) {//选择排序
int i, j, min;
int t;
for (i = 0; in - 1; i++) {// 要选择c语言直接调用排序函数的次数:0~n-2共n-1次
min = i;// 假设当前下标为i的数最小,比较后再调整
for (j = i + 1; jn; j++) { //循环找出最小的数的下标是哪个
if (*(x + j)*(x + min)) {
min = j;// 如果后面的数比前面的小,则记下它的下标
}
}
if (min != i) {// 如果min在循环中改变c语言直接调用排序函数了,就需要交换数据
t = *(x + i);
*(x + i) = *(x + min);
*(x + min) = t;
}
}
}
int main() {
int i;
int iArr[MAXlen];
srand((unsigned int)time(NULL));
printf("\n排序前:\n");
for(i = 0 ; iMAXlen ; i++) {
iArr[i] = (unsigned int)rand() % 1000;
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n");
select_sort(iArr,MAXlen);
printf("\n排序后:\n");
for(i = 0 ; iMAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",iArr[i]);
}
printf("\n\n");
return 0;
}
C语言编写一个排序函数(对一维数组排序)并在主函数中调用以下是一个使用C语言编写一维数组排序函数并在主函数中调用的示例代码,采用的是从小到大排序的方式,可以根据需要进行修改:
```c
#include stdio.h
// 排序函数,参数为待排序数组和数组长度
void sort(int arr[], int len) {
int i, j, tmp;
// 冒泡排序
for (i = 0; ilen - 1; i++) {
for (j = 0; jlen - i - 1; j++) {
if (arr[j]arr[j + 1]) {// 相邻元素比较,如果前面的大于后面的,则交换位置
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main() {
int arr[] = { 3, 1, 5, 7, 2, 4, 6 };
int len = sizeof(arr) / sizeof(int);
int i;
// 输出排序前的数组
printf("排序前:
");
for (i = 0; ilen; i++) {
printf("%d ", arr[i]);
}
printf("
");
// 调用排序函数进行排序
sort(arr, len);
// 输出排序后的数组
printf("排序后:
");
for (i = 0; ilen; i++) {
printf("%d ", arr[i]);
}
printf("
");
return 0;
}
```
在上面的代码中,我们定义了一个`sort`函数,实现了一维数组排序,并接受待排序数组和数组长度为参数 。排序的算法采用的是冒泡排序,每次比较相邻元素的大小并交换它们的位置,直到排序完成 。
在主函数中,我们声明了一个待排序的一维数组`arr`,并计算了数组长度 。然后 , 我们输出了排序前的数组,并调用`sort`函数进行排序 。最后,我们输出排序后的数组 。

推荐阅读