2021-06-04 VSC++:数组移位。

本实例是真正的O(N)不是有些需要最坏O(2N)才能完成的却硬称O(N) 本例在数组中是已经完全完成了的。

void 数组移位()
{//缘由https://ask.csdn.net/questions/7441793?spm=1005.2025.3001.5141
	int a[47]{}, *aa, n = 0, p = 0, x = 0;
	aa = a;//时空复杂度O(N)
	std::cin >> n >> p;
	while (x < n)std::cin >> a[x++]; x = p;
	while (x < n)std::cout << *aa + x << std::ends, ++x;
	x = 0; aa = a;//从指定位置输出后从头输出到指定位置前,若要转变数组则需要同等维度数组作为转换。
	while (x < p)std::cout << *aa + x << std::ends, ++x;
}
void 数组移位()
{//缘由https://ask.csdn.net/questions/7441793?spm=1005.2025.3001.5141
	int a[47]{}, aa[47]{}, n = 0, p = 0, x = 0;
	std::cin >> n >> p;//时空复杂度O(N)
	while (x < n)std::cin >> a[x], aa[x] = a[x++]; x = p;
	while (x < n)a[x - p] = aa[x++]; x = 0;
	while (x < p)a[x+(n-p)] = aa[x++];
	x = 0;//从指定位置输出后从头输出到指定位置前,若要转变数组则需要同等维度数组作为转换。
	while (x < n)std::cout << a[x] << std::ends, ++x;
}

 2021-06-04 VSC++:数组移位。_第1张图片

你可能感兴趣的:(c++,算法,经验分享,笔记,c语言)