c语言利用函数排序 c语言函数实现快速排序算法

c语言怎么用自定义函数排序#include stdio.h
#include string.h#define NUM 3
struct student
{
char name[20];/*姓名*/
long num;/*12位学号*/
double sum;/*总分*/
};
void Create_Students(struct student stu[NUM])
{
struct student *p;
printf("请输入学生姓名 学号(12位) 总分:\n");
for( p = stu; p stu+NUM; p++)
{
scanf("%s %d %lf",p-name,p-num,p-sum); }
}
void Order_Students(struct student stu[NUM])//起泡法
{
int i,j;
struct student temp;
for(i=NUM-1;i=0;i--)
for(j=0;ji;j++)
if(stu[j].sumstu[j+1].sum)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1]=temp;
}
}
void main()
{
int i=1;
struct student *p;
struct student stu[NUM];
Create_Students(stu);
Order_Students(stu);
printf("%-20s %-13s %-6s %4s\n","姓名","学号(12位)","总成绩","名次");
for(p=stu;pstu+NUM;p++,i++)
{
printf("%-20s %-13.0d %-8.2f %2d\n",p-name,p-num,p-sum,i);
}
}//你参考参考,嘿
c语言,使用函数的选择法排序void selectionsort(int a[],int m)
{
int i,j;
int k;
int tmp;
【c语言利用函数排序 c语言函数实现快速排序算法】for(i = 0; im-1; i++)//控制循环次数,n个数需要n-1次循环
{
k = i;
for(j = i+1; jm ; j++)
{
if(a[j]a[k])
k = j;
}
//i不等于k是就证明a[i]不是最小的 , 
//i等于k时证明a[i]就是本轮比较过程中最小的值
if(i != k)
{
tmp = a[i];
a[i] = a[k];
a[k] = tmp;
}
}
}
C语言sort函数如何使用C语言中没有预置的sort函数 。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数 , 功能一般用于排序 。
一、可以编写自己的sort函数 。
如下函数为将整型数组从小到大排序 。
void sort(int *a, int l)//a为数组地址 , l为数组长度 。
{
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语言基础类型 。
以下是qsort的一个例子:
#includestdio.h
#includestdlib.h
int comp(const void*a,const void*b)//用来做比较的函数 。
{
return *(int*)a-*(int*)b;
}
int main()
{
int a[10] = {2,4,1,5,5,3,7,4,1,5};//乱序的数组 。
int i;
qsort(a,n,sizeof(int),comp);//调用qsort排序
for(i=0;i10;i++)//输出排序后的数组
{
printf("%d\t",array[i]);
}
return 0;
}
扩展资料:
sort函数的用法(C++排序库函数的调用)
对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了 。
(一)为什么要用c++标准库里的排序函数
Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!

推荐阅读