前情:因平常写代码是常将比较函数弄混(写好了排序还要确认一下-.-!),还是写篇博客,方便以后查阅

C语言qsort函数int类型数组排序:

 #include "stdio.h"
#include "stdlib.h"
#define N 1005
int a[N]; //此比较函数让数组从小到大排列
int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%d",&a[i]);
qsort(a,n,sizeof(a[]),cmp);
for(i=; i<n; i++) printf("%d ",a[i]);
printf("\n");
return ;
}

C++中sort函数int类型数组排序:

 #include "cstdio"
#include "algorithm"
using namespace std;
#define N 1005
int a[N];
//sort函数不写比较函数的话,默认是从小到大排序的 int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%d",&a[i]);
sort(a,a+n); //将地址从a开始到a+n(不包括地址a+n对应元素)的所有数据进行排序
for(i=; i<n; i++) printf("%d ",a[i]);
printf("\n");
return ;
}

C语言qsort函数char类型数组排序:

 #include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 1005
char str[N]; //此比较函数让数组从小到大排列
int cmp(const void *a,const void *b){ return *(char *)a-*(char *)b; } int main()
{
int len;
scanf("%s",str);
len = strlen(str);
qsort(str,len,sizeof(str[]),cmp);
puts(str);
return ;
}

C++中sort函数char类型数组排序:

 #include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
#define N 1005
char str[N]; int main()
{
int len;
scanf("%s",str);
len = strlen(str);
sort(str,str+len); //默认也是按ascll码从小到大排序
puts(str);
return ;
}

C语言qsort函数double类型数组排序:

 #include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 1005
double a[N]; //此比较函数让数组从小到大排列
int cmp(const void *a,const void *b)
{
return *(double *)a > *(double *)b ? :-;
} int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%lf",&a[i]);
qsort(a,n,sizeof(a[]),cmp);
for(i=; i<n; i++) printf("%.1lf ",a[i]);
printf("\n");
return ;
}

C++中sort函数double类型数组排序:

 #include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
#define N 1005
double a[N]; //从小到大排序
bool cmp(double a,double b)
{
return a<b;
} int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%lf",&a[i]);
sort(a,a+n,cmp);
for(i=; i<n; i++) printf("%.1lf ",a[i]);
printf("\n");
return ;
}

C语言中qsort函数结构体二级排序:

 #include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 1005 typedef struct
{
int x,y;
}Point;
Point a[N];
//先按结构体中x从小到大排序,x相等的按y从大到小排序
int cmp(const void *a,const void *b)
{
Point *c = (Point *)a;
Point *d = (Point *)b;
if(c->x != d->x)
return c->x - d->x;
return d->y - c->y;
}
int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%d %d",&a[i].x,&a[i].y);
qsort(a,n,sizeof(a[]),cmp);
for(i=; i<n; i++) printf("%d %d\n",a[i].x,a[i].y);
return ;
}

C++中sort函数结构体二级排序:

 #include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
#define N 1005 typedef struct
{
int x,y;
}Point;
Point a[N]; //结构体中按x从小到大排序,x相等的按y从大到小排序
bool cmp(Point a,Point b)
{
if(a.x!=b.x)
return a.x < b.x;
return a.y > b.y;
} int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%d %d",&a[i].x,&a[i].y);
sort(a,a+n,cmp);
for(i=; i<n; i++) printf("%d %d\n",a[i].x,a[i].y);
return ;
}

C语言qsort函数字符串数组排序:

 #include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 1005 typedef struct
{
int data;
char s[N];
}TT; TT str[N];
//对字符串数组按从小到大排序
int cmp(const void *a,const void *b)
{
TT *c = (TT *)a;
TT *d = (TT *)b;
return strcmp(c->s,d->s); //strcmp(s1,s2),若s1>s2,return 1;若s1<s2,return -1;
} int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%s",str[i].s);
qsort(str,n,sizeof(str[]),cmp);
for(i=; i<n; i++)
puts(str[i].s);
return ;
}

C++中sort函数字符串数组排序:

 #include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
#define N 1005 typedef struct
{
int data;
char s[N];
}TT; TT str[N];
//对字符串数组按从小到大排序
bool cmp(TT a,TT b) //cmp只返回真或假
{
return strcmp(a.s,b.s)==-; //strcmp(s1,s2),若s1>s2,return 1;若s1<s2,return -1;
} int main()
{
int i,n;
scanf("%d",&n);
for(i=; i<n; i++) scanf("%s",str[i].s);
sort(str,str+n,cmp);
for(i=; i<n; i++)
puts(str[i].s);
return ;
}

排序(qsort sort的使用)的更多相关文章

  1. C++排序函数sort/qsort使用

    问题描述:        C++排序函数sort/qsort的使用 问题解决:           (1)sort函数使用   注:           sort函数,参数1为数组首地址,参数2是数组 ...

  2. C++ 排序函数 sort(),qsort()的使用方法

    想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描写叙述 sort 对给 ...

  3. linux内核中的排序接口--sort函数

    linux内核中的sort函数,其实跟我们所说的qsort函数很像,我们来看看qsort: qsort 的函数原型是 void qsort(void*base,size_t num,size_t wi ...

  4. 数据结构杂谈(二)简单有趣的地精排序Gnome sort

    很早之前便听说过地精排序的名字,今天自己看来一下,发现这是一种非常简单而且有趣的排序算法. 为什么叫地精排序? 地精排序在2000年由Dr. Hamid Sarbazi-Azad 提出的时候被称作 s ...

  5. python 字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  6. 排序命令sort

    Unix和Linux自带的sort命令功能非常强大,其主要功能是对文本内容按不同的方法排序.它不仅可以按一个或多个字段排序,还可以合并文件.使用sort处理一些较大的文件时,可能处理速度会比较慢,但却 ...

  7. [算法] 希尔排序 Shell Sort

    希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它的基本思想是: ...

  8. 经典排序算法 - 高速排序Quick sort

    经典排序算法 - 高速排序Quick sort 原理,通过一趟扫描将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整 ...

  9. 排序算法 - 选择排序(selection sort)

    选择排序(Selection sort)跟插入排序一样,也是O(n^2)的复杂度,这个排序方式也可以用我们的扑克牌来解释. 概念 桌面上有一堆牌,也是杂乱无章的,现在我们想将牌由小到大排序,如果使用选 ...

随机推荐

  1. ADO.NET学习系列(一)

    一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的 ...

  2. OnMeasureItem和OnDrawItem的区别和联系

    我们在做程序设计时界面与功能,那个更加吸引用户的兴趣呢?这是一个很难回答的问题.拥有美丽的外观,软件就成功了一半.界面由控件.工具栏.菜单.窗体等元素组成,对他们进行美化就能得到一个美丽的界面. 目前 ...

  3. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  4. 解决android引用library project错误

    在andriod项目中引用另一个library project时,报 The container 'Android Dependencies' references non existing libr ...

  5. SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈【转】

    转载自:http://blog.csdn.net/dba_huangzj/article/details/7607844#comments 通过DMV查看当时SQL SERVER所有任务的状态(sle ...

  6. 【Bootstrap基础学习】01 Bootstrap的CSS

    Bootstrap 使用了一些 HTML5 元素和 CSS 属性,所以需要使用 HTML5 文档类型. <!DOCTYPE html> <html lang="zh-CN& ...

  7. 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient

    [源码下载] 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient 作者:webabcd 介绍重新想象 Windows 8.1 Store ...

  8. Python调用C的SDK出现返回值不符合预期以及Segmentation fault

    1.sdk返回值不是int型 1.1 登录函数调用 def login(ip, port, username, password, device_info, error_code):"&qu ...

  9. springmvc+mybatis+spring 整合

    获取[下载地址]   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] ...

  10. Sass学习之路(2)——Sass环境安装(windows版)

    因为本喵目前用的是window10的本子,所以这里就发windows版本的安装流程啦.(希望有朋友可以赞助我一个mac(┳_┳)): 第一步:安装ruby 因为Sass是基于ruby编写的,所以先去官 ...