运用栈讲将一个数组奇偶数分开,奇数在前
时间: 2023-05-12 15:05:14 浏览: 70
可以使用两个指针,一个指向数组的开头,一个指向数组的结尾。然后,当左指针指向的元素为偶数,右指针指向的元素为奇数时,交换这两个元素。重复这个过程直到左指针大于等于右指针。
以下是示例代码:
void separateOddEven(int arr[], int size) {
int left = 0, right = size - 1;
while (left < right) {
while (arr[left] % 2 == 1 && left < right) {
left++;
}
while (arr[right] % 2 == 0 && left < right) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
}
注意,这个算法的时间复杂度是 O(n),其中 n 是数组的长度。
相关问题
labview将一维数组分成奇偶两个数组
在LabVIEW中,我们可以使用“Index Array”节点将一维数组分成奇偶两个数组。
首先,我们需要创建一个一维数组,其中包含我们要分割的元素。可以使用“Build Array”节点来创建一个包含所有元素的数组。然后,我们将“Build Array”节点的输出连接到“Index Array”节点的输入上。
接下来,我们需要创建一个整数变量,用于迭代数组的索引。可以使用“For Loop”节点来循环遍历数组的每个元素。将整数变量连接到“Index Array”的索引输入上,以便能够获取数组中的每个元素。
然后,我们需要判断每个元素是奇数还是偶数。可以使用“Modulus”(求余)节点来判断一个元素是否为奇数。将“Index Array”的输出连接到“Modulus”的输入上。然后,将一个值为2的整数连接到“Modulus”的除法分子上。这样,如果元素除以2的余数为0,表示该元素为偶数,反之则为奇数。
然后,我们需要将奇数和偶数元素分别存储到不同的数组中。可以使用“Case Structure”节点来创建一个条件语句。将“Modulus”的输出连接到“Case Structure”的条件输入上。然后,在“Case Structure”中创建两个分支,一个分支用于保存奇数,另一个分支用于保存偶数。将“Index Array”的输出连接到相应分支的输入上。
最后,连接返回奇数和偶数数组的引线,以便将它们输出到其他部分进行进一步的处理或显示。
通过这样的步骤,我们就可以在LabVIEW中将一维数组分成奇偶两个数组。
php奇偶数怎么求,用php输出一个数组中的偶数或奇数的方法
要判断一个数是奇数还是偶数,可以使用PHP中的取模运算符(%),如果一个数除以2的余数为0,则它是偶数,否则它是奇数。
以下是输出数组中偶数或奇数的示例代码:
输出数组中偶数:
```
$nums = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$even_nums = array();
foreach ($nums as $num) {
if ($num % 2 == 0) {
$even_nums[] = $num;
}
}
print_r($even_nums);
```
输出数组中奇数:
```
$nums = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$odd_nums = array();
foreach ($nums as $num) {
if ($num % 2 == 1) {
$odd_nums[] = $num;
}
}
print_r($odd_nums);
```