package cz.magus.sort;

public class InsertSort extends SortAdapter {

	public InsertSort() {
	}
	
	public InsertSort(int[] data) {
		super(data);
	}

	/**
	 * setridi "se" podle zadaneho poradi metodou InsertSort
	 * @param order true = vzestupne, false = sestupne
	 */
	@Override
	public void sortImpl(boolean order) {
		swapCount = 0;
		for (int i = 1; i < data.length; i++) {
			final int actualValue = data[i];
			int j = i - 1;
			while (j >= 0 && !compareInts(actualValue, data[j], order)) {
				data[j+1] = data[j];
				j--;
				swapCount ++;
			}
			data[j+1] = actualValue;
		}
	}
}
