Java公司笔试题

来源:互联网 发布:数据机房温度湿度标准 编辑:程序博客网 时间:2024/04/30 04:13

在一个N个整数数组里面,有多个奇数和偶数,设计一个排序算法,令所有的技术都在左边。请完成sort的代码实现。

方法一:

import java.util.ArrayList;/** * 在sort方法中使用两个ArrayList动态数组,如果是奇数则把该数添加到left中,偶数添加到right中, * 最后把right中的数据全部添加到left中。 * @author 张彬 * */public class TestSort {public static void main(String[] args) {int[] a={8,4,1,6,7,4,9,6,4};sort(a);}public static void sort(int[] a){ArrayList<Integer> left=new ArrayList<>();ArrayList<Integer> right=new ArrayList<>();for(int i=0;i<a.length;i++){if(a[i]%2==1){left.add(a[i]);}else{right.add(a[i]);}}left.addAll(right);System.out.println(left);}}
方法二:
public class TestSort {public static void main(String[] args) {int[] a = new int[]{8,4,1,6,7,4,9,6,4};sort(a);}/* * 从前往后搜索 ,如果前一个数为偶数后一个数为奇数就进行位置调换。 */public static void sort(int[] a){int i=0;int temp=0;for (i = 0; i < a.length; i++) {if (a[i] % 2 != 0 && i != 0) {for (int j = i; j > 0; j--) {if (a[j - 1]%2 == 0) {temp = a[j];a[j] = a[j - 1];a[j - 1] = temp;}}}}for(i=0;i<a.length;i++){System.out.print(a[i]+" ");}}}


原创粉丝点击