请用c语言,将一个256长度的数组,第1,3,5,7....至255个分给一个新的数组,其余项分给另一个新的数组,请用尽可能少的时间复杂度解决该问题
时间: 2024-05-04 10:16:39 浏览: 75
下面是用C语言实现的代码:
```c
#include <stdio.h>
void divide_array(int arr[], int arr1[], int arr2[]) {
int j = 0, k = 0;
for (int i = 0; i < 256; i++) {
if (i % 2 == 0) {
arr2[k++] = arr[i];
} else {
arr1[j++] = arr[i];
}
}
}
int main() {
int arr[256], arr1[128], arr2[128];
for (int i = 0; i < 256; i++) {
arr[i] = i;
}
divide_array(arr, arr1, arr2);
printf("arr1: ");
for (int i = 0; i < 128; i++) {
printf("%d ", arr1[i]);
}
printf("\narr2: ");
for (int i = 0; i < 128; i++) {
printf("%d ", arr2[i]);
}
return 0;
}
```
该代码将一个长度为256的数组按照奇偶性分成两个数组,其中奇数下标的元素分给一个新数组,偶数下标的元素分给另一个新数组。时间复杂度为O(n),n为数组的长度。
阅读全文