(C语言)归并排序

这篇博客提供了C语言实现归并排序的代码,包括主要的实现部分和完整的可运行代码。作者指出,理解递归和归并排序原理是理解代码的关键,同时提醒使用G++编译器,因为GCC可能会对某个三目运算符报错,可以改为if-else判断。博客还包含了辅助测试的函数,如打印数组和检查排序的正确性。
摘要由CSDN通过智能技术生成

自行了解原理,我这里提供可以运行的c语言代码。代码注释比较详细,了解递归和归并排序原理的话稍微琢磨还是能看懂的。

先上主要实现代码,然后上可以运行的完整代码。编译器是G++,如果是GCC编译器,这一条三目运算符汇报错

	while(i<=mid && j<=right)					//将较小的首元素放进temp数组
		arr[i]<arr[j]?temp[k++]=arr[i++]:temp[k++]=arr[j++];

如果报错改成if-else判断就行了。具体原因我也不知道为啥

while(i<=mid && j<=right)
	if(arr[i]<arr[j])
		temp[k++]=arr[i++];
	else
		temp[k++]=arr[j++];

主要实现代码:

//将两个有序数组合并
void merge(int* arr,int* temp,int left,int mid,int right)
{
	int i=left;//i标记左数组下标
	int j=mid+1;//j标记右数组下标
	int k=left;//标记临时数组下标
	

	while(i<=mid && j<=right)					//将较小的首元素放进temp数组
		arr[i]<ar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值