调整该数组中数字的顺序

来源:互联网 发布:显示器颜色调整软件 编辑:程序博客网 时间:2024/05/16 07:56
<span style="color: rgb(51, 51, 51); font-family: arial, STHeiti, 'Microsoft YaHei', 宋体; font-size: 14px; line-height: 22.3999996185303px;">输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。</span>
class Solution {public://类似插入排序,找到什么地方插入,i为最右边的奇数的位置,j为i的左边偶数的位置void reOrderArray(vector<int> &array) {if (array.size() == 0) return;int i = array.size() - 1;int j = i;int temp = 0;while (1){while (array[i] % 2 == 0)//找到奇数{i--;if (i<0) return;}if (i>1){j = i - 1;}while (array[j] % 2 == 1)//找到偶数{j--;if (j<0) return;}//找到位置插入,奇数向前挪,将偶数挪到后面temp = array[j];int count = j;for (count; count < i; count++){array[count] = array[count+1];}array[i] = temp;}}};

0 0
原创粉丝点击