蓝蓝算法day12/45

题目:

已知在⼀维数组A[m+n]中依次存放两个线性表(a1,a2,a3,.am)和(b1,b2,
b3.bn)。编写⼀个函数,将数组中两个顺序表的位置互换,即将(b1,b2,b3.bn)放在
(a1,a2,a3,.an)的前⾯

思路:

1.:现将A中所有元素逆置,变成:bn,bn-1......b1,am,am-1.......a1。
2:将前n个逆置。
3:将后m个逆置。

void Reverse(int arr[],int i,int j)
{
	//通过first指针来指向第一个元素,而end指向最后一个 
	int* first = &arr[i];
	int* end = &arr[j];
	while(first<end)
	{
		//将第一个和最后一个元素交换
		int temp = *first;
		*first = *end;
		first++;
		*end = temp;
		end--; 
	}  
}
/*
1:现将A中所有元素逆置,变成:bn,bn-1......b1,am,am-1.......a1。
2:将前n个逆置。
3:将后m个逆置。
*/
void Reverse1(int arr[],int m,int n,int len)
{
	Reverse(arr,0,len-1);
	Reverse(arr,0,n-1);
	Reverse(arr,n,len-1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值