剑指offer-13-调整数组使奇数位于前面
调整数组顺序使奇数位于偶数前面
http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593
思路
- 稳定排序,奇数的权重小于偶数,奇数和偶数权重相同
- 开辟一个数组存储
面试的时候大概会让你写第一种的,笔试的时候写第二种,这里给出插入排序的代码
代码
开辟辅助数组
public class Solution { public void reOrderArray(int [] array) { int[] arr=new int[array.length]; int p=0,q=0; for(int i=0;i<array.length;i++){ if(array[i]%2==1){ array[p]=array[i]; p++; }else{ arr[q]=array[i]; q++; } } for(int i=0;i<q;i++){ array[i+p]=arr[i]; } } }
冒泡排序
public class Solution { public void reOrderArray(int [] array) { for(int i=0;i<array.length;i++){ for(int j=0;j<array.length-1;j++){ if(array[j]%2==0 && array[j+1]%2==1){ int temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } } }
剑指offer与数据结构 文章被收录于专栏
本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构