剑指Offer第13题:调整数组顺序使奇数位于偶数前面 发表于 2020-01-04 更新于 2024-11-09 分类于 剑指Offer 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路:使用冒泡排序的思想,碰到前偶数后奇数,就交换二者的位置。内循环每完成一次,就有一个偶数被放到最末尾,下次内循环的结束位置就可以往前移动一位。 代码: 12345678void reOrderArray(vector<int> &array) { for (int i=0; i<array.size(); i++) { for (int j=0; j<array.size()-1-i; j++) { //内循环完成一次,终止位置往前移动一位 if (array[j]%2==0 && array[j+1]%2==1) //交换奇偶 swap(array[j], array[j+1]); } }}