我们得到一个包含正数和负数的整数类型数组,比方说,任何给定大小的 arr[] 。任务是以这样的方式重新排列数组,当数组中的最低元素是奇数时,数组的元素将以奇数第一和偶数第二方式重新排列。当数组中的最低元素是偶数时,数组的元素将以偶数第一和奇数第二的方式重新排列,如果偶数/奇数元素的数量大于奇数/偶数元素的数量,则它将放置 0 和打印结果。
输入 - int arr[] = { 1, 1, 2, 2, 5, 4 }
输出 - 以升序排列交替方式的奇数和偶数值的重新排列为:1 2 1 2 5 4。
说明 - 我们得到一个整数类型数组。现在我们将检查哪个是数组中的最小元素,即 1 是奇数值,因此元素将以奇数第一和偶数第二方式排列,即 1 2 1 2 5 4 是最终输出。
输入 - int arr[] = { 6, 3, 2, 8, 10, 4 }
输出 - 以升序排列交替方式的奇数和偶数值的重新排列为:2 3 4 0 6 0
说明- 我们得到一个整数类型数组。现在我们将检查哪个是数组中的最小元素,即 2,这是偶数值,因此 elem
输入整数类型元素的数组并计算数组的大小。
通过将数组和数组大小传递给 sort 函数,使用 C++ STL 的 sort 方法对数组进行排序。
声明一个整数变量并通过调用函数设置它 Rearrangement(arr, size)
函数内部 Rearrangement(arr, size)
创建两个变量作为 'vec_1' 和 'vec_2' 作为存储整数类型数据的向量类型。
创建一个整数类型的临时变量作为 temp 并将其设置为 0。
将另一个 bool 类型的变量声明为 check 并将其设置为 FALSE。
从 i 到 0 开始循环 FOR,直到 i 小于 size。在循环内,检查 IF arr[i] % 2 = 0 然后将 arr[i] 推送到 vec_1。否则,将 arr[i] 推送到 vec_2。
将整数变量声明为 i 和 j 为 0。检查 IF arr[0] % 2 = 0 然后将检查设置为 true。
在温度小于尺寸时开始。在循环内,检查 IF check = true 然后将 arr[temp++] 设置为 vec_1[i++] 并将检查设置为 !check。否则,将 arr[temp++] 设置为 vec_2[j++] 并将检查设置为 !check。
打印结果。
#include <bits/stdc++.h> using namespace std; void Rearrangement(int arr[], int size){ vector<int> vec_1, vec_2; int temp = 0; bool check = false; for(int i = 0; i < size; i++){ if(arr[i] % 2 == 0){ vec_1.push_back(arr[i]); } else{ vec_2.push_back(arr[i]); } } int i = 0; int j = 0; if(arr[0] % 2 == 0){ check = true; } while(temp < size){ if(check == true){ arr[temp++] = vec_1[i++]; check = !check; } else{ arr[temp++] = vec_2[j++]; check = !check; } } } int main(){ int arr[] = { 1, 1, 2, 2, 5, 4 }; int size = sizeof(arr) / sizeof(int); //对数组进行排序 sort(arr, arr + size); cout<<"以升序排列的另类时尚中奇数和偶数值的重新排列是: "; Rearrangement(arr, size); for(int i = 0; i < size; i++){ cout << arr[i] << " "; } return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出
以升序排列的另类时尚中奇数和偶数值的重新排列是: 1 2 1 2 5 4