C自带排序函数qsort()的使用
2008-07-14 15:19
197 查看
stdlib.h中提供了qsort()这个函数可以实现快速排序。
MSDN中的描述如下:
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
Parameters
base
Start of target array
num
Array size in elements
width
Element size in bytes
compare
Comparison function
elem1
Pointer to the key for the search
elem2
Pointer to the array element to be compared with the key
Remarks
The qsort function implements a quick-sort algorithm to sort an array of num elements, each of width bytes. The argument base is a pointer to the base of the array to be sorted. qsort overwrites this array with the sorted elements. The argument compare is a pointer to a user-supplied routine that compares two array elements and returns a value specifying their relationship. qsort calls the compare routine one or more times during the sort, passing pointers to two array elements on each call:
compare( (void *) elem1, (void *) elem2 );
Example
Output
MSDN中的描述如下:
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
Parameters
base
Start of target array
num
Array size in elements
width
Element size in bytes
compare
Comparison function
elem1
Pointer to the key for the search
elem2
Pointer to the array element to be compared with the key
Remarks
The qsort function implements a quick-sort algorithm to sort an array of num elements, each of width bytes. The argument base is a pointer to the base of the array to be sorted. qsort overwrites this array with the sorted elements. The argument compare is a pointer to a user-supplied routine that compares two array elements and returns a value specifying their relationship. qsort calls the compare routine one or more times during the sort, passing pointers to two array elements on each call:
compare( (void *) elem1, (void *) elem2 );
Example
/* QSORT.C: This program reads the command-line * parameters and uses qsort to sort them. It * then displays the sorted arguments. */ #include <stdlib.h> #include <string.h> #include <stdio.h> int compare( const void *arg1, const void *arg2 ); void main( int argc, char **argv ) { int i; /* Eliminate argv[0] from sort: */ argv++; argc--; /* Sort remaining args using Quicksort algorithm: */ qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare ); /* Output sorted list: */ for( i = 0; i < argc; ++i ) printf( "%s ", argv[i] ); printf( "\n" ); } int compare( const void *arg1, const void *arg2 ) { /* Compare all of both strings: */ return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); }
Output
[C:\code]qsort every good boy deserves favor boy deserves every favor good本文出自 “国产0与1” 博客,请务必保留此出处http://qq164587043.blog.51cto.com/261469/87646
相关文章推荐
- C自带排序函数qsort()的使用
- 关于标准库函数qsort()的使用
- 在c++中qsort()排序函数的使用qsort函数应用大全
- qsort的使用以及*(char**)p与(char*)p之间的区别
- C库函数qsort七种使用方法示例
- ***快排sort与qsort的使用
- 使用qsort实现快速排序
- 关于qsort使用时出现的一个问题
- C++ 排序函数 sort(),qsort()的使用方法
- 浅谈C++中qsort与sort的使用方法与区别
- milk2<uscao>1.2-<涉及指针是qsort的使用>
- QDirModel使用QSortFilterProxyModel过滤指定磁盘和非系统盘
- 使用qsort对结构体的数据排序
- C库函数 qsort 七种使用方法示例
- C库函数qsort七种使用方法示例
- qsort(…)的使用方法
- C/C++中关于qsort的使用
- qsort函数使用
- qsort函数和bsearch函数的使用
- C/C++中关于qsort的使用