C语言:qsort函数的排序
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b; //*(int *)a表示先将空类型指针强转为int类型指针,在对该指针取其中的值
}
int main()
{
int a[100],n;
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(int),cmp);
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
C++:sort函数的排序
sort 使用时得注明:using namespace std; 或直接打 std::sort() 还得加上 #include <algorithm> 头文件
例:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[20];
cin>>a[i];
sort(a,a+20); //范围,很明显这里是a+20 注意,这是必要的,如果是a+19
cout<<a[i]<<endl;
return 0;
}
std::sort是一个改进版的qsort. std::sort函数优于qsort的一些特点:对大数组采取9项取样,更优化的三路划分算法,更细致的对不同数组大小采用不同方法排序。
本文介绍了C语言中qsort函数及C++中sort函数的使用方法,通过具体实例展示了如何进行数组排序,并对比了两者之间的区别。std::sort相较于qsort在算法优化方面更具优势。
2万+

被折叠的 条评论
为什么被折叠?



