您的位置:首页 > 编程语言 > C语言/C++

sort()和qsort()两个排序函数有什么主要区别吗?

2014-05-04 10:42 731 查看

qsort是c语言的,sort是c++的stl里面的

需要#include<stdlib.h>

qsort(数组名,数组长度,数组中每个元素大小,compare); compare函数的写法决定了排序是升序还是降序。

例如:int compare(const void*a,const void*b){return *(*int)a-*(int*)b;}
示例:qsort(a,10,sizeof(int),compare) //假设已定义了整型数组a[10]

升序排序的写法,如果是:return *(*int)b-*(int*)a 就是降序

//快速排序算法有什么作用:首先它是一种排序算法,排序算法是为了让无序的数据组合变成有序的数据组合。有序的数据组合最大的优势是在于:当你进行数据定位和采用时,会非常的方便,因为这个数据是有序的,从而在代码设计的时候会让你避免很多不必要的麻烦,因为无序数据你在进行推断数据前后关系的时候会显示很繁琐。
 
快速排序是排序中的一种,它在最差情况下和别的排序相差不大,而在最优,一般情况下,会比一般的排序方法更节省时间。
 
这里的一般排序是指:起泡,希尔,插入等常规排序方法。//

不论是什么类型的数组,该函数的形式都是这样的

sort(数组名,数组末地址,compare) //若不写compare则默认升序排列,

需要#include<algorithm>

例如:sort(a,a+10); //将数组a以升序排序,假设先前定义了a[10]并输入了数据

我想写一个判断,如果输入的不是正规的整数(输入非阿拉伯数字),提示重新输入,怎么写啊?
直接用while(cin)就可以判断是否输入正确。如果输入不是正规整数,cin会置false位.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序 algorithm stl c++ 数据