今天面了小米,一面的程序题是一个乱序的数组,用o(n)的时间将它重新排序成一升一降的形式
比如【1,2,4,6,9】---【1,6,4,9,2】
因为只是一个元素的左右进行比较,所以不满足条件调换左右即可
public class Main {
public static void main(String[] args){
int [] Number = {9,3,2,4,8,12};
upAndDown(Number);
for(Integer i : Number)
System.out.print(i);
}
public static void upAndDown(int[] a) {
// write your code
int i = 0;
while(i < a.length - 2){
if((a[i] - a[i+1]) * (a[i+1]-a[i+2]) > 0){
swap(a,i+1, i+2);
}
i++;
}
}
private static void swap(int[] a, int i, int j) {
// TODO Auto-generated method stub
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}