20-整型数组、double类型数组、字符数组快排

qsort()函数的基本格式:

void qsort(void *base,//需要排序的数组指针(数组名本身就是指针)
size_t num,(需要排序的数组的大小)
size_t width,(数组每个元素的字节数)
int (__cdecl *compare )(const void *, const void *)
);(需要排序的方法)

一:整型数组

代码:
#include <stdio.h>
#include <stdlib.h>

int Cmp_int(const void *vp1,const void *vp2)
{
	return *(int *)vp1 - *(int *)vp2;
}

int main()
{
	//对整型数组进行快速排序
	int arr[10] = {5,9,0,1,67,99,43,56,88,18};
	qsort(arr,sizeof(arr)/sizeof(arr[0]),sizeof(int),Cmp_int);
	for(int i = 0;i<sizeof(arr)/sizeof(arr[0]);i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	
	return 0;
}

在这里插入图片描述

二:double类型数组

代码:
#include <stdio.h>
#include <stdlib.h>

int Cmp_double(const void* vp1,const void *vp2)
{
	double tmp = *(double *)vp1 - *(double *)vp2;
	if(tmp>0)
	{
		return 1;
	}
	else if(tmp == 0)
	{
		return 0;
	}
	else
		return -1;
}

int main()
{
	//对double类型数组进行快速排序
	double brr[10] = {11.1,11.2,22.1,22.2,78.8,79.6,88.9,0.0,15.4,100.0};//double类型快速排序
	qsort(brr,sizeof(brr)/sizeof(brr[0]),sizeof(double),Cmp_double);
	for(int i = 0;i<sizeof(brr)/sizeof(brr[0]);i++)
	{
		printf("%lf\n",brr[i]);
	}
	
	return 0;
}

在这里插入图片描述

三:字符数组

代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Cmp_str(const void* vp1,const void *vp2)
{
	return strcmp(*(const char **)vp1,*(const char **)vp2);
}

int main()
{
	//对字符数组进行快排
	const char *str[10] = {"China","Japan","America","Korea","England","Germany","France","Russia","Singapore","Malaysia"};
	qsort(str,sizeof(str)/sizeof(str[0]),sizeof(char *),Cmp_str);
	for(int i = 0;i<sizeof(str)/sizeof(str[0]);i++)
	{
		printf("%s\n",str[i]);
	}

	return 0;
}

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值