使用C++/C qsort 标准库对结构体进行快速排序
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 标准库对结构体进行快速排序的更多相关文章
- qsort 与sort 对结构体排序实例
qsort 与sort 对结构体排序实例 #include<bits/stdc++.h> using namespace std; typedef struct { string book ...
- C语言(C99标准)在结构体的初始化上与C++的区别
C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写. 比如现在要构造一个类Object,包含两个字段, ...
- C++线性表通过结构体实现操作和结构体字符串快速排序和shell排序结合
#include<iostream> #include<string> #define ml 10 using namespace std; typedef struct{// ...
- Swift3.0P1 语法指南——类和结构体
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- swift学习笔记之-类和结构体
//类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递 ...
- swift 类 与 结构体
这两天突然有人问我 swift里面 类和 结构体 有什么区别? 说实在的本人目前不太看好swift,相信很多人也是,oc 都 很成熟了. 本人目前不打算深入了解swift的原因swift 语言 ...
- Swift类与结构体
类和结构体有很多共性: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标访问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol),协议提供一种特 ...
- Swift语法学习之 类和结构体
类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...
- swift 学习- 10 -- 类和结构体
// '类和结构体' 是人们构建代码所使用的一种通用且灵活的构造体, 我们可以使用完全相同的语法规则来为 '类和结构体' 定义属性 (变量 和 常量) 和添加方法, 从而扩展 类和结构体 的功能 // ...
随机推荐
- MVC 修饰标签
MVC中的修饰标签有很多用途.它以修饰标签形式应用在控制器或控制器中的动作上. 最先想到的就是AcceptVerbs标签,在创建的时候,如果导航到创建视图,但不创建,则: public ActionR ...
- iOS 关于多线程的一些知识点(不断更新)
1.NSOperation 对于NSOperation,In OS X v10.6 and later, operation queues ignore the value returned by t ...
- mysql cluster 运行的必备条件
1.由于同步复制一共需要4次消息传递,故mysql cluster的数据更新速度比单机mysql要慢.所以mysql cluster要求运行在千兆以上的局域网内,节点可以采用双网卡,节点组之间采用直 ...
- Java for LeetCode 072 Edit Distance【HARD】
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...
- HDU 5651 xiaoxin juju needs help (组合数)
xiaoxin juju needs helpTime Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64uSu ...
- MVC自带的校验
一.添加控制器Home和Model数据 public class UserInfo { public int Id { get; set; } [Display(Name="用户名" ...
- iptables 无法连外网
[root@v01-svn-test-server ~]# service iptables status Table: filter Chain INPUT (policy DROP) num ta ...
- IOS项目自动构建
# Sets the target folders and the final framework product. # 如果工程名称和Framework的Target名称不一样的话,要自定义FMKN ...
- VBScript [ 译 ]
VBScript ( Visual Basic Scripting Edition) 使用COM 来和宿主环境交互.从Microsoft Windows 98 开始的所有的微软桌面操作系统的relea ...
- HDU 5009 Paint Pearls 双向链表优化DP
Paint Pearls Problem Description Lee has a string of n pearls. In the beginning, all the pearls ha ...