定义一个函数实现数组奇数在左,偶数在右排列
时间: 2024-06-13 11:00:36 浏览: 167
以下是一个定义函数实现数组奇数在左,偶数在右排列的例子:
```python
def rearrange_array(arr):
left = []
right = []
for num in arr:
if num % 2 == 0:
right.append(num)
else:
left.append(num)
return left + right
arr = [1, 9, 5, 4, 3, 9, 8, 6, 4, 7]
result = rearrange_array(arr)
print(result)
```
运行以上代码,输出结果为:[1, 9, 5, 3, 9, 7, 4, 8, 6, 4]
相关问题
定义一个整型一维数组,任意输入数组的元素,其中包含奇数和偶数。定义一个函数,实现将数组元素奇数在左,偶数在右的排列。在上述定义的函数中,不允许再增加新的数组。从主函数中分别调用上述函数,打印输出结果。
好的,这是一个比较常见的数组问题,下面给出解决方案。
首先,我们可以定义两个指针,一个指向数组的开始位置,一个指向数组的结束位置。然后,我们分别从前往后找到第一个偶数和从后往前找到第一个奇数,交换它们的位置,直到两个指针相遇。这样,就能够将数组中的奇数和偶数分别排列在左右两侧。
代码如下:
```c++
void oddEvenSort(int arr[], int len) {
int left = 0, right = len - 1;
while (left < right) {
while (left < right && arr[left] % 2 != 0) left++;
while (left < right && arr[right] % 2 == 0) right--;
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
}
```
在主函数中调用该函数,如下所示:
```c++
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int len = sizeof(arr) / sizeof(arr[0]);
oddEvenSort(arr, len);
for (int i = 0; i < len; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 9 3 7 5 6 4 2 8
```
可以看到,数组中的奇数都排在了左侧,偶数排在了右侧。
c语言:定义一个整型一维数组,任意输入数组的元素,其中包含奇数和偶数。定义一个函数,实现将数组元素奇数在左,偶数在右的排列。 在上述定义的函数中,不允许再增加新的数组。从主函数中分别调用上述函数,打印输出结果。
好的,以下是代码实现:
```c
#include <stdio.h>
void exchange(int arr[], int len) {
int left = 0, right = len - 1; // 定义左右两个指针
while (left < right) {
// 从左边开始找到第一个偶数
while (left < right && arr[left] % 2 != 0) {
left++;
}
// 从右边开始找到第一个奇数
while (left < right && arr[right] % 2 == 0) {
right--;
}
// 交换左右两个数
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
int main() {
int arr[10]; // 定义一个长度为10的数组
printf("请输入数组的元素:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
exchange(arr, 10); // 调用exchange函数
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在`exchange`函数中,采用双指针的方式,分别从数组的左右两端开始找奇数和偶数,然后进行交换。具体来说,左指针`left`从左边开始找到第一个偶数,右指针`right`从右边开始找到第一个奇数,然后交换这两个数的位置。重复进行这个过程,直到左右两个指针相遇。最终,整个数组就被排列成了奇数在左,偶数在右的顺序。
在主函数中,先定义一个长度为10的数组,然后通过循环输入数组元素。接着调用`exchange`函数进行奇偶数的排列,并打印输出结果。
阅读全文