排序(qsort sort的使用)
前情:因平常写代码是常将比较函数弄混(写好了排序还要确认一下-.-!),还是写篇博客,方便以后查阅
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的使用)的更多相关文章
- C++排序函数sort/qsort使用
问题描述: C++排序函数sort/qsort的使用 问题解决: (1)sort函数使用 注: sort函数,参数1为数组首地址,参数2是数组 ...
- C++ 排序函数 sort(),qsort()的使用方法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描写叙述 sort 对给 ...
- linux内核中的排序接口--sort函数
linux内核中的sort函数,其实跟我们所说的qsort函数很像,我们来看看qsort: qsort 的函数原型是 void qsort(void*base,size_t num,size_t wi ...
- 数据结构杂谈(二)简单有趣的地精排序Gnome sort
很早之前便听说过地精排序的名字,今天自己看来一下,发现这是一种非常简单而且有趣的排序算法. 为什么叫地精排序? 地精排序在2000年由Dr. Hamid Sarbazi-Azad 提出的时候被称作 s ...
- python 字典排序 关于sort()、reversed()、sorted()
一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...
- 排序命令sort
Unix和Linux自带的sort命令功能非常强大,其主要功能是对文本内容按不同的方法排序.它不仅可以按一个或多个字段排序,还可以合并文件.使用sort处理一些较大的文件时,可能处理速度会比较慢,但却 ...
- [算法] 希尔排序 Shell Sort
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它的基本思想是: ...
- 经典排序算法 - 高速排序Quick sort
经典排序算法 - 高速排序Quick sort 原理,通过一趟扫描将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整 ...
- 排序算法 - 选择排序(selection sort)
选择排序(Selection sort)跟插入排序一样,也是O(n^2)的复杂度,这个排序方式也可以用我们的扑克牌来解释. 概念 桌面上有一堆牌,也是杂乱无章的,现在我们想将牌由小到大排序,如果使用选 ...
随机推荐
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数
方法的参数有六种,分别是值参数.引用参数.输出参数.参数数组.命名参数.可选参数. 值参数 值参数是方法的默认类型,通过复制实参的值到形参的方式把数据传递到方法,方法被调用时,系统作两步操作: 在栈中 ...
- C#的pictureBox怎样使用多张图片简单切换
首先,先创建一个新的winform项目ImageTest,选择窗体,起名我ImageForm,在ImageForm拉一个picturebox控件,一个控制器trimer,一个相册imageList,在 ...
- 与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl
[源码下载] 与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl 作者:webabcd 介绍与众不同 windows p ...
- C# on Visual Studio Code
installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download ...
- jquery 下拉选择框/复选框常用操作
通常 1.我们需要获取select中选中的值,可以使用: $("#selectID").find("option:selected").val(); --一般 ...
- ORACLE 中ROWNUM用法总结!
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=) ...
- Java字符串格式化String.format常用用法
常规的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形 ...
- HTML JavaScript简介
一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...
- [WF] Quickstart Sample
[WF] Quickstart Sample 前言 Workflow Foundation(WF),总是给人一种很有用.可是却不知道怎么用的印象.这主要是因为前置的功课太多.要整合很多底层知识,才能完 ...