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. What is the difference between provider network and self-service network in OpenStack?

    "self-service networking" allows users to create their own virtual networks, subnets, rout ...

  2. 【Spring】Spring系列4之Spring支持JDBC

    4.Spring支持JDBC 4.1.使用JdbcTemplate简化JDBC开发 也可以这么用(不推荐): 4.2.使用NamedParameterJdbcTemplate

  3. Java for LeetCode 179 Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  4. iOS PickerView动态加载数据

    将新的数据放入临时数组 NSMutableArray *tmp=[[NSMutableArray alloc] init]; [tmp addObject:[[NSString alloc] init ...

  5. Hibernate核心思想—ORM机制(一)

    转:http://blog.csdn.net/wanghuan203/article/details/7566518 hibernate是一个采用ORM(Object/Relation Mapping ...

  6. 二进制日志BINARY LOG清理

    mysql> show master logs; +------------------+-----------+ | Log_name | File_size | +------------- ...

  7. MySQL日常应用和操作记录

    整理MySQL日常操作. 1.知道一个字段名,怎样查到它在数据库里的哪张表里? USE Information_schema;SELECT TABLE_NAME FROM COLUMNS WHERE ...

  8. Android源码编译

    参考百度文章: http://jingyan.baidu.com/article/a501d80ce61ad0ec630f5e0b.html

  9. SVN服务器搭建和使用(二)(转载)

    转载地址:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html 上一篇介绍了VisualSVN Server和Torto ...

  10. String.split使用竖线做为分隔符

    String.split使用竖线做为分隔符时会发现得到的数组不对,每个字符都被拆分成数组里的一个值: 解决办法:竖线需要转义才可以作为split的参数,String.split("\\|&q ...