sort函数怎么用

bdqnwqk1年前问题12

1.C语言sort函数如何使用

C语言中没有预置的sort函数。

如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。一、可以编写自己的sort函数。

如下函数为将整型数组从小到大排序。void sort(int *a, int l)//a为数组地址,l为数组长度。

{ int i, j; int v;//排序主体 for(i = 0; i for(j = i+1; 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的一个例子: #include#include 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;i{ printf("%d\t",array[i]); } return 0; } 扩展资料:sort函数的用法(C++排序库函数的调用) 对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。(一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!(二)c++标准库里的排序函数的使用方法 I)Sort函数包含在头文件为#include的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!II)Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。

(2)第二个是结束的地址(最后一位要排序的地址的下一地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。Sort函数使用模板:Sort(start,end,排序方法) 下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!例一:sort函数没有第三个参数,实现的是从小到大#include#include using namespace std; int main() { int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;icoutsort(a,a+11); for(int i=0;icoutreturn 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函数。

2.sort函数的具体用法

MSDN中的定义:

template<class RanIt> void sort(RanIt first, RanIt last); //--> 1)template<class RanIt, class Pred> void sort(RanIt first, RanIt last, Pred pr); //--> 2)

头文件:

#include <algorithm>

using namespace std;

1.默认的sort函数是按升序排。对应于1)

sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址

2.可以自己写一个cmp函数,按特定意图进行排序。对应于2)

例如:

int cmp( const int &a, const int &b ){

if( a > b )

return 1;

else

return 0;

}

sort(a,a+n,cmp);

是对数组a降序排序

又如:

int cmp( const POINT &a, const POINT &b ){

if( a.x < b.x )

return 1;

else

if( a.x == b.x ){

if( a.y < b.y )

return 1;

else

return 0;

}

else

return 0;

}

sort(a,a+n,cmp);

是先按x升序排序,若x值相等则按y升序排

与此类似的还有C中的qsort,以下同附上qsort的使用方法:

#include <stdlib.h>

格式 qsort(array_name,data_number,sizeof(data_type),compare_function_name) (void*)bsearch (pointer_to_key_word,array_name,find_number,

sizeof(data_type),compare_function_name)

e.g.

int Cmp(const void*a,const void *b)

{

int*pa=(int*)a,*pb=(int*)b;

if(*pa>*pb) return 1;

else if (*pa==*pb) return 0;

else return -1;

}

qsort(data,N,sizeof(int),Cmp); // 对int型数组进行快速排序(非降序排列)

p=(int*)bsearch(&a,data,n,sizeof(int),Cmp);

3.如何使用Sort函数

#include

using namespace std;这两句需要有。然后sort是这样的

sort(begin,end,cmp_filename);其中begin和end表示的是对[begin,end)左闭右开区间,cmp_filename是一个函数名(你自己定义的),

bool cmp(类型 a,类型 b)

//eg:

bool cmp(int a,int b)

{

return a操作了。这个操作可以是系统已有的类型定义了,或者你自己定义的类通过函数重载定义

4.sort函数如何 使用

首先自己定义一个比较函数

bool cmp(int a,int b)

{

if (a>b) return true;

return false;

}

而后在调用sort的时候,第三个参数写上你自己定义的这个比较函数就行了,例如

sort(a,a+n,cmp);

a是一个整型数组。

例子程序如下(顺便鄙视一下上面要分的那个人):

#include

#include

using namespace std;

int a[10];

bool cmp(int a,int b)

{

if (a>b) return true;

return false;

}

int main()

{

for (int i=0;i

5.c语言中的sort函数怎么使用,请举出一个实例,非常感谢

#include <algorithm>;//需要包含这个头文件

#include <iostream>

using namespace std;

int main(void)

{

int a[10]={2,4,8,5,7,1,10,6,9,3};

sort(a,a+10);//对a数组进行升序排序

for(int i = 0;i < 10;i++)

cout<<a[i]<<endl;

}

//ps:这是C++的函数 C语言里没有。

6.关于sort函数的用法

#include<iostream.h>

#include <algorithm>

using namespace std; //

int main()

{

int a[20]={2,4,1,23,5,76,0,43,24,65},i;

for(i=0;i<20;i++)

cout<<a[i]<<endl;

sort(a,a+20);

for(i=0;i<20;i++)

cout<<a[i]<<endl;

return 0;

}

sort函数怎么用

标签: 函数sort