package com.interview.books.fgdsb; import com.interview.utils.ConsoleWriter; /** * Created_By: stefanie * Date: 15-2-2 * Time: 上午10:55 */ public class NLC12_WiggleSort { public void sort(int[] array){ if(array == null || array.length <= 1) return; boolean flag = true; int current = array[0]; for(int i = 0; i < array.length - 1; i++){ //save array[i] save to current or array[i-1]. if ((flag && current > array[i+1]) || (!flag && current < array[i+1])) { array[i] = array[i+1]; } else { array[i] = current; current = array[i+1]; } flag = !flag; } array[array.length-1] = current; // simple solution with swap // for(int i = 0; i < array.length - 1; i++){ // if((flag && array[i] > array[i + 1]) || (!flag && array[i] < array[i + 1])){ // int temp = array[i]; // array[i] = array[i + 1]; // array[i + 1] = temp; // } // flag = !flag; // } } public static void main(String[] args){ NLC12_WiggleSort sorter = new NLC12_WiggleSort(); int[] array = new int[]{1,2,3,4}; sorter.sort(array); ConsoleWriter.printIntArray(array); array = new int[]{3,1,2,4}; sorter.sort(array); ConsoleWriter.printIntArray(array); } }