剑指offer之调整数组顺序使奇数位于偶数前面

来源:互联网 发布:免费数据网站 编辑:程序博客网 时间:2024/05/29 11:15

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。


思路:类似选择排序,遍历每个元素,遇到奇数,就从这个奇数开始向前遍历,使其前面的偶数向后覆盖,在遍历过程中直到遇上奇数或者到达第一个元素,结束遍历,最后将奇数放入正确位置


代码:

public class Main { public static void main(String[] args) { int arr[] = {3,1,5,7,2,4,9,6,10,8,11,11,13,14,15,12}; sort(arr); for(int n:arr){ System.out.print(n+" "); }    }  public static void sort(int[] arr){ for(int i=0;i<arr.length;i++){ int temp=arr[i]; if(arr[i]%2==1){ int j=i-1; while(j>=0&&arr[j]%2==0){ arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } } }}


阅读全文
0 0