使用C++/C qsort 标准库对结构体进行快速排序

时间:2022-04-20 21:18:18

C++标准快速排序库qsort进行结构体快速排序

代码如下

 #include <stdio.h>
#include <stdlib.h>
typedef struct
{
int date;
int value;
}X_S; /* a->z */
int cmpfunA2Z(const void * a, const void * b)
{
X_S * p1 = (X_S *)a;
X_S * p2 = (X_S *)b; return p1->value > p2->value;
} /* z -> a */
int cmpfunZ2A(const void * a, const void * b)
{
X_S * p1 = (X_S *)a;
X_S * p2 = (X_S *)b; return p1->value < p2->value;
} int quickSortOfCpp()
{
X_S Xlist[];
int Ilist[];
int i = ;
for(i = ; i < ; i++)
{
Xlist[i].date = i+;
double t = (double)i - 50.3;
Xlist[i].value = (int)(t * t + 5.6);
} for(i = ; i < ; i++)
{
printf("num : %3d, value : %4d\n", Xlist[i].date, Xlist[i].value);
} qsort(Xlist, , sizeof(X_S), cmpfunA2Z);
printf("\033[034m-------------sorted-------------\033[0m\n"); for(i = ; i < ; i++)
{
printf("num : %3d, value : %4d\n", Xlist[i].date, Xlist[i].value);
} return ;
} int main(int argc, char * argv[])
{
quickSortOfCpp(); return ;
}

运行结果如下

1. 排序前结构体数组情况

num :   , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :

2. 排序后结构体数组情况

num :  , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :
num : , value :

作者:风波