// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include#include #include using namespace std; int* reversearray(int a[], int n) { int i, temp; for (i = 0; i <= n / 2 - 1; i++) { temp = a[i]; a[i] = a[n - 1 - i]; a[n - 1 - i] = temp; } return a; } int main() { int size = 10; int mine[100] = {}; int i; for (i = 0; i < size; i++) { mine[i] = rand() % size - 1;; cout << mine[i] << " "; } cout << endl; int* a = reversearray(mine, size); for (int i = 0; i < size; i++) { cout << a[i] << " "; } cout << endl; //输出结果:1 2 3 0 0 0 0 0 0 0 return 0; }
这个算法于问题规模无关,所以一他的空间复杂度实O(1)。
下面实现另一个
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include#include #include using namespace std; int* reversearray(int a[], int n) { int i, temp; for (i = 0; i <= n / 2 - 1; i++) { temp = a[i]; a[i] = a[n - 1 - i]; a[n - 1 - i] = temp; } return a; } int* reversearray2(int a[], int n) { int i; int temp[10]; for (i = 0; i <= n - 1; i++) { temp[i] = a[n- 1 - i]; } for (i = 0; i <= n - 1; i++) { a[i]=temp[i] ; } return a; } int main() { int size = 10; int mine[100] = {}; int i; for (i = 0; i < size; i++) { mine[i] = rand() % size - 1;; cout << mine[i] << " "; } cout << endl; int* a = reversearray2(mine, size); for (int i = 0; i < size; i++) { cout << a[i] << " "; } cout << endl; //输出结果:1 2 3 0 0 0 0 0 0 0 return 0; }
空间复杂度为O(n)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)