本文主要是介绍将数组中元素排列为奇数在前偶数在后,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
处理策略是定义两个指针pHead,pTail并令其初始指向数组头节点和尾节点。pHead从前往后找应该放在尾部的偶数节点,pTail从后往前找应该放在头部的奇数节点,若pHead位于pTail之前则交换二者内容,否则结束处理过程。
处理流程如下图所示。
对于用例: 1,2,4,5,3
处理结果为:1,3,5,4,2
下面给出在java语言下的实现:
private void jiOu(int a[]) //将数组a中奇数放在前面,偶数放在后面{int len = a.length;if(len <= 0) //数组长度为0则返回return ;int front = 0, end = len-1;//设置两个指针,一个指向头部,一个指向尾部while(front<end){while(front<len && (a[front]&1)==1) //从前往后找偶数front++;while(end>=0 && (a[end]&1)==0) //从后往前找奇数end--;if(front<end){int swap = a[front]; //将奇数往前挪,偶数往后挪a[front] = a[end];a[end] = swap;}}}
这篇关于将数组中元素排列为奇数在前偶数在后的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!