sort与qsort使用细则

/*qsort与sort调用细则*/
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

//qsort

//普通数组
	a[1000];
	int comp(const void *a,const void *b)
	{
		return *(int *)a - *(int *)b;//(int *)表示把(const coid * a)强制准换成int型指针  外边的*是取内容
	}
	qsort(a,k,sizeof(int),comp);
//对结构体排序
	struct edgetype{
		int a;
		int b;
		int len;
	}edge[5000];
	int comp(const void *a,const void *b)
	{
		return (((struct edgetype *)a)->len)-(((struct edgetype *)b)->len);
	}
	qsort(edge,k,sizeof(struct edgetype),comp);
//对double
	int comp(const void *a,const void *b)
	{
		if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)>0)
			return 1;
		else if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)==0)
			return 0;
		else if((((struct edgetype *)a)->len)-(((struct edgetype *)b)->len)<0)
			return -1;
	}
//对特定长度进行排序
	qsort(a+x,k,sizeof(int),comp);//从a【x】开始的k个数进行排序 例如:a[0]=3 a[1]=2 a[2]=1 a[3]=0 qsort(a+1,2,sizeof(int),comp) 之后 3 1 2 0

//sort调用细则
#include<algorithm>

//对普通数组
	int a[1000];
	bool cmp(int a,int b)
	{                                              
		return a<b;//当满足当前顺序,返回1,不满足当前顺序,返回0                                              
	}
	sort(a+x,a+y,cmp);//对a【x】-a【y-1】进行排序(y==x 与 y==x+1效果相同)
//对结构排序
	struct edgetype{
		int a;
		int b;
		int len;
	}edge[5000];
	bool cmp(struct edgetype a,struct edgetype b)
	{                                              
		return a.len<b.len;//当满足当前顺序,返回1,不满足当前顺序,返回0                                              
	}
	sort(edge+x,edge+y,cmp);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值