qsort函数
qsort函数用法举例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//数字比较函数
int cmp_num(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
} //字符比较函数
int cmp_char(const void* a, const void* b)
{
return *(char*)a - *(char*)b;
} //字符串比较函数
int cmp_string(const void* a, const void* b)
{
return strcmp((char*)a, (char*)b);
} //结构体某个成员比较函数
struct Node
{
double data;
int other;
};
int cmp_struct(const void* a, const void* b)
{
return (*(struct Node*)a).data > (*(struct Node*)b).data ? : -;
} int main()
{
int i;
//1.对一维数组进行排序
int n, *array;
scanf("%d", &n);
array = (int*)malloc(n*sizeof(int));
for(i = ; i < n; i++)
{
scanf("%d", (array+i));
}
qsort(array, n, sizeof(int), cmp_num);
for(i = ; i < n; i++)
{
printf("%d ", array[i]);
}
free(array);
printf("\n\n"); //2.对二维数组进行排序
int j;
int array2[][] = {{, }, {, }, {, }, {, }, {, }};
qsort(array2, , sizeof(int)*, cmp_num);
for(i = ; i < ; i++)
{
for(j = ; j < ; j++)
{
printf("%d ", array2[i][j]);
}
printf("\n\n");
} //3.对字符进行排序
char array3[] = "cdefba";
qsort(array3, strlen(array3), sizeof(char), cmp_char); //string.h
for(i = ; i < (int)strlen(array3); i++)
{
printf("%c ", array3[i]);
}
printf("\n\n"); //4.对字符串进行排序
char array4[][] = {"this", "is", "my", "computer", "."};
qsort(array4, , sizeof(array4[]), cmp_string);
for(i = ; i < ; i++)
{
printf("%s\n", array4[i]);
}
printf("\n"); //5.对结构体某个成员进行排序
struct Node array5[] = {{, }, {1.2, }, {1.1, }, {8.1, }, {5.7, }};
qsort(array5, , sizeof(array5[]), cmp_struct);
for(i = ; i < ; i++)
{
printf("%f %d\n", array5[i].data, array5[i].other);
}
return ;
}
说明:
compare比较函数原型:compare( (void *) & elem1, (void *) & elem2 );
| Compare函数的返回值 |
描述
|
| <0 | elem1将被排在elem2前面 |
| 0 | elem1 等于 elem2 |
| >0 | elem1 将被排在elem2后面 |
qsort函数的更多相关文章
- qsort函数、sort函数【转】
http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...
- C中的qsort函数和C++中的sort函数的理解与使用
一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...
- C语言中qsort函数的应用
qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序 一.对int类型数组排序 ]; int cmp ( const void *a , const voi ...
- C语言中qsort函数用法
C语言中qsort函数用法-示例分析 本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...
- qsort函数详解
C语言标准库函数 qsort 详解 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 原文链接:http://www.slyar.c ...
- qsort函数用法【转】
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(con ...
- qsort函数用法
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(co ...
- qsort函数用法(转)
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(c ...
- C语言qsort函数用法
qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...
随机推荐
- CSS:opacity 的取值范围是 0~1
CSS:opacity 的取值范围是 0~1,难怪设置为 1~100 看不到效果.
- Spark中文指南(入门篇)-Spark编程模型(一)
前言 本章将对Spark做一个简单的介绍,更多教程请参考:Spark教程 本章知识点概括 Apache Spark简介 Spark的四种运行模式 Spark基于Standlone的运行流程 Spark ...
- getopt解析命令行参数一例:汇集多个服务器的日志
高效工作的一个诀窍就是尽可能自动化, 简便化. 比如, 公司里, 要搜索多个集群下的应用日志来排查问题, 需要使用 pssh: pssh -i -h api_hangzhou.iplist " ...
- WLST 命令和变量
下列部分将详细描述 WLST 命令和变量.主题包括: WSLT 命令类别概述 浏览命令 控制命令 部署命令 诊断命令 编辑命令 信息命令 生命周期命令 节点管理器命令 树命令 W ...
- Centos7下Rinetd安装与应用
Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.haproxy.nginx就不说了,配置相对简单:iptables配置复杂, ...
- python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动
左侧菜单跟着滚动条动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...
- 实用Redis操作类
<?php /** * ------------------------------------------ * 统一redis的配置与数据存储规范,便于扩展与修改 * # redis通常用于热 ...
- 如何通过iframe以post方式提交form表单
以前用过一次这种技术,这次用居然忘了,现纪录下来,下次再用就来看看. 首先在html中需要准备好form和iframe元素代码如下: <form id="speaker_form&qu ...
- viewport 详解
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale= ...
- Visual Studio的Web Performance Test提取规则详解(2)
总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...