qsort() 和 sort()

来源:互联网 发布:java 日历 calendar 编辑:程序博客网 时间:2024/05/27 20:30
C++可直接使用的排序函数:qsort(),sort()
 
qsort() 和 sort()

(wysuperfly原创 v1.1)

//基于c++描述 <<将标准 C++ 视为一个新语言>>

使用C++编译器(VC6,G++等)可以使用STL里的sort()函数或者CRT中的qsort()来排序,这么好的函数我居然才知道,真是孤陋阿~总算摆脱整天冒泡的日子了~~~
[注] qsort () 可在任何C/C++编译器里使用。
而sort()函数是标准模板库的的函数可在C++编译器里使用。

赫赫,介绍一下:

 


使用
#include <iostream>
using namespace std;
开头的,可以直接使用这2个函数,而不用额外包含其他头文件。

 


qsort()    

.

.

应该就是用的快排。貌似是以数据块的方式移动数据,速度较快。

原型:
_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*));

解释:    qsort ( 数组名 ,元素个数,元素占用的空间(sizeof),比较函数) 
比较函数是一个自己写的函数  遵循 int com(const void *a,const void *b) 的格式。
当a b关系为 >  <  = 时,分别返回正值 负值 零 (或者相反)。
使用a b 时要强制转换类型,从void * 转换回应有的类型后,进行操作。 
数组下标从零开始,个数为N, 下标0-(n-1)。

示例:

int nn[100],n=100;
int com(const void *a,const void *b)
{
    return *(int*)a-*(int*)b;
}   

qsort((void *)nn,n,sizeof(int),com);

相关:

为什麽你必须给予元素个数?(因为阵列不知道它自己有多少个元素)为什麽你必须给予 double 的大小?(因为 qsort 不知道它要排序的单位是 doubles.)为什麽你必须写那个丑陋的、用来比较 doubles 数值的函式?(因为 qsort 需要一个指标指向某个函式,因为它不知道它所要排序的元素型别)为什麽 qsort 所使用的比较函式接受的是 const void* 引数而不是 char* 引数?(因为 qsort 可以对非字串的数值排序)Bjarne Stroustrup

sort()    

 

.

.

sort()函数是标准模板库的的函数,已经进行了优化,根据情况的不同可以采用不同的算法,所以较快。

在同样的元素和同样的比较条件下,sort()的执行速度都比qsort()要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。

stl_algo.h 里面找到的:
template<typename _RandomAccessIterator>
    void
    __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)

只要开始和结束的地址就可以了。模板可以直接使用很多类型。

示例:

1:上面的程序:
sort(nn,nn+n);即可。

2:比较方便的字符串排序:

   char ch[20]="sdasdacsdasdas/0";
   cout<<ch<<endl;
   sort(ch,ch+14);
   cout<<ch<<endl;

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 4个月的婴儿恶心干呕怎么办 生了小孩后胆汁酸偏高怎么办 9个月宝宝吃盐了怎么办 两个月宝宝母乳拉大便太稀怎么办呀 两个月的宝宝不拉大便怎么办 两个月宝宝五天没拉大便怎么办 4个月宝宝不拉大便怎么办 2个月宝宝3天没拉大便怎么办 宝宝拉不出大便老是憋的哭怎么办 九个月的宝宝不爱吃水果怎么办 顺产侧切伤口发炎化脓有臭味怎么办 一岁宝宝感冒发烧39度怎么办 宝宝二岁半了只吃水果不吃饭怎么办 8个月小孩发烧39度怎么办 咳嗽吃了很多药都不见效果怎么办 生完孩子半个月奶水越来越少怎么办 买到了坏了的水果商家不赔怎么办 小孩奶不够吃又不吃奶粉怎么办 10个月的宝宝便秘很严重怎么办 四岁的宝宝突然不怎么吃饭怎么办 1岁7个月宝宝突然不爱吃饭怎么办 宝宝发烧好了之后不吃辅食怎么办 吃母乳的宝宝不喝奶粉怎么办 奶水不足宝宝又不喝奶粉怎么办 6个月宝宝断奶哭闹不用奶瓶怎么办 小孩不爱吃饭怎么办该吃些什么 二个月宝宝只认母乳不喝牛奶怎么办 满月宝宝只认奶粉不认母乳怎么办 宝宝四个月只认奶瓶不认母乳怎么办 新生儿只认奶瓶不认母乳怎么办 7个月宝宝不吃辅食怎么办 8个月小孩不吃辅食怎么办 9个月小孩不吃辅食怎么办 十一个月宝宝拉肚子拉水怎么办 小孩好动上课也坐不住会怎么办 幼儿大班关于环保的手抄报怎么办 捷达车打开丝位子风扇总转怎么办 小班个案分析:好动的孩子该怎么办 孩子突然过于的兴奋不睡觉是怎么办 刚出生的宝宝听力未通过怎么办 孩子多动症被老师打不上学怎么办