程序员面试题100题第29题——调整数组顺序使奇数位于偶数前面
思想完全是采用快速排序:
bool isEven_(int n)//是否是偶数 { return (n&1)==0; } void swapOddEven(int arr[], int left, int right) { int i=left; int j=right; int temp=arr[left]; if(left > right) { return ; } while(i<j) { while(i<j && isEven_(arr[j])) j--; arr[i]=arr[j]; while(i<j && !isEven_(arr[i])) i++; arr[j]=arr[i]; } arr[i]=temp; swapOddEven(arr, 0, i-1); swapOddEven(arr, j+1, right); }