题目
2、编写程序,通过初始化或者用户输入一个数组input,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数,输出output数组。
如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1};
input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}
代码
import java.util.Arrays;
public class Two {
public static void main(String[] args) {
int input[] = {3,6,1,9,7,8};
int output[] = new int[input.length];
System.out.print("input array:");
for(int i=0;i<input.length;i++) {
System.out.print(input[i]+" ");
}
sort(input, output);
System.out.println();
System.out.print("output array:");
for(int i=0;i<output.length;i++){
System.out.print(output[i]+" ");
}
System.out.println();
int input1[] = {3,6,1,9,7};
int output1[] = new int[input1.length];
System.out.print("input array:");
for(int i=0;i<input.length;i++) {
System.out.print(input[i]+" ");
}
sort(input1, output1);
System.out.println();
System.out.print("output array:");
for(int i=0;i<output1.length;i++){
System.out.print(output1[i]+" ");
}
}
static void sort(int input[],int output[]){
Arrays.sort(input);
int high=input.length/2+1;
int low=input.length/2-1;
output[output.length/2]=input[input.length-1];
for(int i=input.length-2;i>=0;) {
output[low]=input[i];
i--;
low--;
if(i<0) break;
output[high]=input[i];
i--;
high++;
}
}
}