public int[] sort(int[] arr) {
		
		for (int i=0; i<arr.length; i++) {
			int temp = arr[i], low = 0, high = i - 1, mid = 0;
			while (low <= high) {
				mid = (low+high)/2;
				if (temp < arr[mid]) {
					high = mid - 1;
				} else {
					low = mid + 1;
				}
			}
			
			stepCount++;
			for (int j=i-1; j>=low; j--) {
				arr[j+1] = arr[j];
				if (printable) print(" binary ", arr, j, j+1, stepCount);
			}
			
			if (low != i)  arr[low] = temp;
		}
		
		return arr;
	}