package com.interview.books.question300;
import com.interview.utils.ArrayUtil;
import com.interview.utils.ConsoleWriter;
/**
* Created_By: stefanie
* Date: 15-1-25
* Time: 下午9:08
*/
public class TQ66_MergeSortedArrayInPlace {
public void merge(int[] array, int a, int b){
while(a < b && b < array.length){
int i = a;
int j = b;
while(i < b && array[i] <= array[b]) i++;
while(j < array.length && array[j] < array[i]) j++;
ArrayUtil.reverse(array, i, j - 1);
int mid = i + (j - b);
ArrayUtil.reverse(array, i, mid - 1);
ArrayUtil.reverse(array, mid, j - 1);
a = mid;
b = j;
}
}
public static void main(String[] args){
TQ66_MergeSortedArrayInPlace merger = new TQ66_MergeSortedArrayInPlace();
int[] array = new int[]{1,4,10,5,7,8};
merger.merge(array, 0, 3);
ConsoleWriter.printIntArray(array);
}
}