sort函数怎么用
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;
}