网站首页 > 文章中心 > 其它

sort函数c语言源码

作者:小编 更新时间:2023-09-30 19:44:33 浏览量:88人看过

C语言. .编写一个Sort函数,完成对整型数组元素升序排列.

#include?stdio.h

void?sort(int?a[],?int?n)?{//选择排序

int?i,j,k,t;

for(i?=?0;?i?n?-?1;?◆◆i)?{

k?=?i;

for(j?=?k?◆?1;?j?n;?◆◆j)?{

if(a[k]?a[j])?k?=?j;

}

if(k?!=?i)?{

t?=?a[i];

a[i]?=?a[k];

a[k]?=?t;

int?main()?{

int?i,n?=?sizeof(a)/sizeof(a[0]);

printf("排序前:\n");

for(i?=?0;?i?n;?◆◆i)

printf("%d?",a[i]);

printf("\n");

sort(a,n);

printf("排序后:\n");

return?0;

C程序 sort函数

C语言中没有预置的sort函数.如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序.

第一段:可以编写自己的sort函数.

如下函数为将整型数组从小到大排序.

void?sort(int?*a,?int?l)//a为数组地址,l为数组长度.

{

int?i,?j;

int?v;

//排序主体

for(i?=?0;?i?l?-?1;?i?◆◆)

for(j?=?i◆1;?j?l;?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 *));

参数:

①. 待排序数组首地址

这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型.

以下是qsort的一个例子:

#includestdio.h

#includestdlib.h

int?comp(const?void*a,const?void*b)//用来做比较的函数.

return?*(int*)a-*(int*)b;

int?main()

int?i;

qsort(a,n,sizeof(int),comp);//调用qsort排序

for(i=0;i10;i◆◆)//输出排序后的数组

printf("%d\t",array[i]);

扩展资料:

sort函数的用法(C◆◆排序库函数的调用)

对数组进行排序,在c◆◆中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了.

(一)为什么要用c◆◆标准库里的排序函数

(二)c◆◆标准库里的排序函数的使用方法

I)Sort函数包含在头文件为#includealgorithm的c◆◆标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!

II)Sort函数有三个参数:

(1)第一个是要排序的数组的起始地址.

Sort函数使用模板:

Sort(start,end,排序方法)

下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!

例一:sort函数没有第三个参数,实现的是从小到大

#includeiostream

#includealgorithm

using namespace std;

int main()

for(int i=0;i10;i◆◆)

couta[i]endl;

sort(a,a◆11);

return 0;

编译器

GCC,GNU组织开发的开源免费的编译器

MinGW,Windows操作系统下的GCC

Clang,开源的BSD协议的基于LLVM的编译器

Visual C◆◆?:: cl.exe,Microsoft VC◆◆自带的编译器

集成开发环境

CodeBlocks,开源免费的C/C◆◆ IDE

CodeLite,开源、跨平台的C/C◆◆集成开发环境

Orwell Dev-C◆◆,可移植的C/C◆◆IDE

C-Free

Light Table

Visual Studio系列

Hello World

参考资料:百度百科-sort函数

C语言编程创建自定义函数sort(),sort函数中实现选择法升序排序,主函数输出排序后的数组元素

//选择排序算法,升序

void?sort(int?*arr,int?n)

int?i,j,k;

int?tmp;

for(i=0;in-1;i◆◆)

k=i;?//开始一趟选择排序,假定第i个元素是后面n-i◆1个未排序的元素中最小的元素

for(j=i◆1;jn;j◆◆)

if(arr[k]?arr[j])?//如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k

k=j;

//如果最小元素的下标不是后面n-i◆1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置

if(k?!=?i)

tmp=arr[k];

arr[k]=arr[i];

arr[i]=tmp;

sort(a,10);

for(i=0;i10;i◆◆)

//运行结果

F:\c_worka.exe

c语言 编写函数sort(int*x,int n)函数

void?sort(int*x,int?n)

int?i,j,t;

for(j=0;jn-i-1;j◆◆)

if(abs(*(x◆j))abs(*(x◆j◆1))){

t=*(x◆j);

*(x◆j)=*(x◆j◆1);

*(x◆j◆1)=t;

int?n,i;

scanf("%d",n);

for(i=0;in;i◆◆)

scanf("%d",x[i]);

sort(x,n);

printf("%d?",x[i]);

以上就是土嘎嘎小编为大家整理的sort函数c语言源码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章