C++可直接使用的排序函数:qsort(),sort()
2010-03-31 15:52
211 查看
C++ 可直接使用的排序函数:qsort(),sort()
Posted by 超级苍蝇 on Oct 7, 2005 in 随风~ | Subscribe 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;
相关文章推荐
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的用法
- C++ 排序函数 sort(),qsort()的用法
- VC中sort()排序函数的使用
- C++ 排序函数 sort(),qsort()的用法
- 在STL泛型算法中的排序函数sort内部使用的是哪种排序算法呢?
- LeetCode/sort(地址A,地址B)和qsort(首地址,元素个数,sizeof(),cmp比较函数)的使用
- 在c++中qsort()排序函数的使用qsort函数应用大全
- qsort()函数直接进行排序
- (STL自带的排序功能的使用7.1.2)POJ 2388 Who's in the Middle(sort()函数的使用)
- C++标准库中的排序函数 sort和qsort
- c++中的sort 排序函数 less和greater使用
- C++ 排序函数 sort(),qsort()的用法
- 使用STL中的stable_sort()函数进行排序