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 :

作者:风波

使用C++/C qsort 标准库对结构体进行快速排序的更多相关文章

  1. qsort 与sort 对结构体排序实例

    qsort 与sort 对结构体排序实例 #include<bits/stdc++.h> using namespace std; typedef struct { string book ...

  2. C语言(C99标准)在结构体的初始化上与C++的区别

    C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写. 比如现在要构造一个类Object,包含两个字段, ...

  3. C++线性表通过结构体实现操作和结构体字符串快速排序和shell排序结合

    #include<iostream> #include<string> #define ml 10 using namespace std; typedef struct{// ...

  4. Swift3.0P1 语法指南——类和结构体

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  5. swift学习笔记之-类和结构体

    //类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递 ...

  6. swift 类 与 结构体

    这两天突然有人问我  swift里面 类和 结构体  有什么区别? 说实在的本人目前不太看好swift,相信很多人也是,oc 都 很成熟了. 本人目前不打算深入了解swift的原因swift  语言 ...

  7. Swift类与结构体

    类和结构体有很多共性: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标访问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol),协议提供一种特 ...

  8. Swift语法学习之 类和结构体

    类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...

  9. swift 学习- 10 -- 类和结构体

    // '类和结构体' 是人们构建代码所使用的一种通用且灵活的构造体, 我们可以使用完全相同的语法规则来为 '类和结构体' 定义属性 (变量 和 常量) 和添加方法, 从而扩展 类和结构体 的功能 // ...

随机推荐

  1. string s = null 和 string s = “”的区别

    string s = null; 表示一个空串,没有占用了空间,不在内存中开辟空间 string s = "";在内存中开辟空间,但空间中没有值(""也是一个字 ...

  2. Segment Tree Modify

    For a Maximum Segment Tree, which each node has an extra value max to store the maximum value in thi ...

  3. Timer1控件的属性

  4. Delphi经验总结(2)

    Q: 怎么来改变ListBox的字体呢?就修改其中的一行. A: 先把ListBox1.Style 设成lbOwnerDrawFixed 然后在 OnDrawItem 事件下写下如下代码 proced ...

  5. HDU 2082 母函数模板题

    找单词 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status De ...

  6. [Android Pro] AndroidStudio导出jar包

    reference :  http://blog.csdn.net/beijingshi1/article/details/38681281 不像在Eclipse,可以直接导出jar包.Android ...

  7. 学习 BigInteger

    以下是摘抄与其他人的: JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和 ...

  8. Jil序列化JSON

    使用Jil序列化JSON提升Asp.net web api 性能   JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入 ...

  9. hdu 2044:一只小蜜蜂...(水题,斐波那契数列)

    一只小蜜蜂... Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepte ...

  10. HDU 4974 Dracula and Ethan 优先队列

    Dracula and Ethan Time Limit: 1 Sec  Memory Limit: 256 MB Description Dragon is watching competition ...