【无序数组指针交换2则】2024-10-28

缘由n 个数存放在数组中,用指针指向数组首地址,在子函数中用指针做形参实现:将最小值与第一个数交换。在主函数中输出交换后的 n 个数_编程语言-CSDN问答

无序数组从头和尾向中间找最小值后指针返回0交换即可

n 个数存放在数组中,用指针指向数组首地址,在子函数中用指针做形参实现:将最小值与第一个数交换。在主函数中输出交换后的 n 个数。n个数为:3 5 7 4 8 2 9.

cpp 复制代码
void 无序数组指针交换(int* a, int* l)
{//缘由https://ask.csdn.net/questions/8156571/54901375
	int *x = a, b = 0;
xh:if (a < l)
{
	if (*++a < *x)
		x = a;
	if (*--l < *x)
		x = l;
	++b;
	goto xh;
}
   a -= b;
   b = *a, *a = *x, *x = b;
}




	int a[]{3, 5, 7, 4, 8, 2, 9}, n = 7;
	无序数组指针交换(a, a + n - 1);

缘由指针-输入十个数存入一位数组中,最大数与最后一个数交换,最小数与第一个交换_编程语言-CSDN问答

cpp 复制代码
void 无序数组指针交换(int* a, int* l)
{//缘由https://ask.csdn.net/questions/8156571/54901375
	int *x = a, b = 0, *d = l;
xh:if (a < l)
{
	if (*++a < *x)x = a; if (*a > *d)d = a;
	if (*--l < *x)x = l; if (*l > *d)d = l;
	++b;
	goto xh;
}
   a -= b; l += b;
   if (a != x)b = *a, *a = *x, *x = b;
   if (l != d)b = *l, *l = *d, *d = b;
}
相关推荐
To_OC19 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵1 天前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC1 天前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
郝学胜_神的一滴1 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
To_OC2 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
刘马想放假2 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC3 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员