参考:B站UP--子烁爱学习(推荐大家观看原视频)
题目描述:
题目解析
使用冒泡排序
由于要求是把奇数放在前面,相对位置不变那我们就把偶数往后移就行了,但是这时候又要求相对位置不变,那么遇到前偶后奇就交换位置,前奇后偶就不变,连续两个奇数和偶数也都不用变,这里主要是为了保证相对位置不会变化。
代码示例
public void reOrderArray(int [] array) {
//i是我们要搜寻的数组中元素的个数,起先肯定是arr[0]--arr[length-1]然后依次向下递减
for (int i = array.length-1; i > 0 ; i--) {
for (int j = 0; j+1<=i ; j++) {
//前偶后奇就交换位置
if (array[j]%2==0&&array[j+1]%2==1) {
swap(array, j, j + 1);
}
}
}
}
//交换位置
public void swap(int[] arr,int i,int j){
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}