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. Resumable Media Uploads in the Google Data Protocol

    Eric Bidelman, Google Apps APIs team February 2010 Introduction The Resumable Protocol Initiating a ...

  2. poj 2709

    http://poj.org/problem?id=2709 题意:就是那个老师需要n瓶颜色的墨水,和1瓶颜色的灰色的墨水,但是灰色的墨水没得卖,只能由三种颜色相同的墨水混合而成,但是3瓶50ML的墨 ...

  3. PHP+七牛云存储上传图片代码片段

    2014年11月14日 16:37:51 第一段代码是上传单个图片的,第二个是上传多个图片的 //上传到七牛 //单个文件 //formname: 表单名字; pre: 图片Url中显示的图片名字(也 ...

  4. css form 表单组对齐

    2014年7月1日 15:31:17 第一次写css,见谅 css: .form-box .form-group .form-label {text-align: right; width: 200p ...

  5. windows下安装Appserv等php套件之后无法进入数据库管理的问题

    在win7下安装Wamp或者Appserv后无法进入数据库管理,但是php.Apache运行全都没问题,mysql可以在命令行中管理,但是就是无法打开phpmyadmin数据库管理,点击后浏览器就显示 ...

  6. JS Replace 全部替换字符 用法

    转载自:http://www.cnblogs.com/skykang/archive/2011/08/04/2127158.html <script language="javascr ...

  7. Instruments_Activity Monitor使用入门

    Activity Monitor,官方解释为:(活动监视器)即实时显示CPU.内存和网络的使用情况,记录由虚拟内存大小测量的系统负载.用一句大白话来说,Activity Monitor类似Window ...

  8. Libsvm自定义核函数【转】

    1. 使用libsvm工具箱时,可以指定使用工具箱自带的一些核函数(-t参数),主要有: -t kernel_type : set type of kernel function (default 2 ...

  9. C#实现UTC时间与Datetime转换

    为了便于传输,通信过程中传输的都是:当前时间跟标准时间相隔的秒数,并且是以16进制字节的形式传输的. public double ConvertDateTimeInt(System.DateTime ...

  10. jmeter之调度器配置

    Jmeter的线程组设置里有一个调配器设置,用于设置该线程组下脚本执行的开始时间.结束时间.持续时间及启动延迟时间.当需要半夜执行性能测试时会用到这个功能. ps:设置调度器配置,需要将前面的循环次数 ...