/**
* @param args
* 编写一个函数,将输入的一串10个数字进行从小到大排序,
* 但是要求偶数放在偶数位置上,奇数放在奇数位置上。
* 缺失的位置由0补齐。输入中不会有0。
* 53 8 21 43 3 7 51 62 13 68
* 3 8 7 62 13 68 21 0 43 0 51 0 53
*/
package com.huawei.test;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Stack;
public class OddAndEvenSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array={53,8,21,43,3,7,51,62,13,68};
oddAndEvenSort(array);
}
public static void oddAndEvenSort(int[] array){
//ArrayList<Integer> sortedlist=new ArrayList<Integer>();
Stack<Integer> digtal=new Stack<Integer>();
for(int i=0;i<array.length-1;i++){
for(int j=i+1;j<array.length;j++){
if(array[i]>array[j]){
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
LinkedList<Integer> oddlist=new LinkedList<Integer>();
LinkedList<Integer> evenlist=new LinkedList<Integer>();
for(int i=0;i<array.length;i++){
if(array[i]%2==0){
evenlist.add(array[i]);
}else{
oddlist.add(array[i]);
}
}
int index=1;
while((evenlist.size()>0)||oddlist.size()>0){
if(index%2==0){
if(evenlist.size()>0){
digtal.push(evenlist.get(0));
evenlist.remove(0);
}else{
digtal.push(0);
}
}else{
if(oddlist.size()>0){
digtal.push(oddlist.get(0));
oddlist.remove(0);
}else{
digtal.push(0);
}
}
index++;
}
LinkedList<Integer> list=new LinkedList<Integer>();
while(!digtal.isEmpty()){
list.add(digtal.pop());
}
for(int j=list.size()-1;j>=0;j--){
System.out.print(list.get(j)+" ");
}
}
}