有一整形数组,设计算法实现:所有奇数均在偶数前面。
时间: 2023-06-05 19:48:04 浏览: 174
可以使用双指针法,一个指针从数组头开始,一个指针从数组尾开始,分别向中间移动,当左指针指向偶数,右指针指向奇数时,交换两个数的位置,直到左指针和右指针相遇为止。这样就可以将所有奇数放在偶数前面了。
具体实现如下:
```
void oddBeforeEven(int[] arr) {
int left = ;
int right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 != ) {
left++;
}
while (left < right && arr[right] % 2 == ) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
}
```
这个算法的时间复杂度是 O(n),空间复杂度是 O(1)。
相关问题
定义一个函数实现数组奇数在左,偶数在右排列
以下是一个定义函数实现数组奇数在左,偶数在右排列的例子:
```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语言编程使得.任意输入一整形数组,编程实现将奇数放到数组的前面,偶数放到数组的后面。
对于您的问题,我可以回答。可以使用C语言的双指针算法来实现将奇数放到数组的前面,偶数放到数组的后面。代码示例如下:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
void oddEvenSort(int nums[], int numsSize) {
int* left = nums;
int* right = nums + numsSize - 1;
while (left < right) {
while ((*left) % 2 == 1 && left < right) {
left++;
}
while ((*right) % 2 == 0 && left < right) {
right--;
}
swap(left, right);
}
}
int main() {
int nums[] = {1, 4, 2, 3, 5, 6};
int numsSize = 6;
oddEvenSort(nums, numsSize);
for (int i = 0; i < numsSize; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
上面的代码中,swap函数用于交换两个数的值,oddEvenSort函数中,left指针从数组前面往后面移动,找到第一个偶数。right指针从数组后面往前面移动,找到第一个奇数。然后交换两个数的值。重复这个过程直到left >= right,也就是奇数和偶数都被放到了对应的位置为止。在main函数中定义了一个测试数组,可以根据具体情况修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)