C标准库快速排序函数:升(降)序排序

来源:互联网 发布:多系统数据一直性 编辑:程序博客网 时间:2024/05/21 04:44
#include <iostream>#include <cstdlib>using namespace std;const size_t INDEX_ZERO = 0;//升序比较:第一个元素比第二个元素大返回正数(这是元素需要交换的条件) int compare_rise(const void *a,const void *b){return *(int*)a - *(int*)b;}//降序比较:第二个元素比第一个元素大返回正数(这是元素需要交换的条件) int compare_fail(const void *a,const void *b){return *(int*)b - *(int*)a ;}void display( const int* array, size_t size ){     if (NULL == array)     {              throw;     }          else     {     for(size_t i=INDEX_ZERO; i<size; ++i)     {                 cout << array[i] << " ";         }                  cout << endl;     }}//C标准库中的快速排序(quick-sort)函数int main( void ){int array[] = {9, 1, 7, 3, 4, 8, 2, 6, 0, 5};const size_t SIZE = sizeof (array) / sizeof (*array);cout << "原始数据:" << endl;display( array, SIZE );cout << "升序排序后:" << endl;qsort(array, SIZE, sizeof (*array), compare_rise);display( array, SIZE );cout << "降序排序后:" << endl;qsort(array, SIZE, sizeof (*array), compare_fail);display( array, SIZE ); system( "PAUSE" ); return EXIT_SUCCESS;}/*-------------------原始数据:9 1 7 3 4 8 2 6 0 5升序排序后:0 1 2 3 4 5 6 7 8 9降序排序后:9 8 7 6 5 4 3 2 1 0请按任意键继续. . .---------------------------------*/

原创粉丝点击