【笔试】32、调整数组顺序使奇数位于偶数之前

来源:互联网 发布:implode 二维数组 编辑:程序博客网 时间:2024/06/05 05:44
/**************************************************************************************** *题目:调整数组顺序使奇数位于偶数之前 *输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分 *时间:2015年8月30日08:28:12 *文件:Reorder.java *作者:cutter_point ****************************************************************************************/package bishi.Offer50.y2015.m08.d30;import java.util.Random;import org.junit.*;public class Reorder{/** * 是偶数 * @param n * @return */public boolean isEvenNumber(int n){return (n & 1) == 0;}/** * 判断是否是奇数 * @param num * @return */public boolean isOdd(int num){if(num == 0)return false;if(num % 2 == 0){return false;}//if,对2进行取余剩下0的话,说明是偶数else{return true;}//else}public int[] reorder(int numbers[]){int start = 0;int end = numbers.length - 1;while(start < end){while(start < end && !isEvenNumber(numbers[start])){++start;}//whilewhile(end > start && isEvenNumber(numbers[end])){--end;}//whileif(start < end){int temp = numbers[start];numbers[start] = numbers[end];numbers[end] = temp;}}//whilereturn numbers;}public static int[] Test(int n){Random rand = new Random();int numbers[] = new int[n];for(int i = 0; i < n; ++i)numbers[i] = rand.nextInt(10001);return numbers;}@Testpublic void Test1(){int n = 20;int numbers[] = Test(n);Reorder r = new Reorder();numbers = r.reorder(numbers);for(int i = 0; i < n; ++i){System.out.print(numbers[i] + "\t");}//for}}

0 0
原创粉丝点击