Guest User

Untitled

a guest
Jun 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. public static void binInsertSort(int[] data) {
  2. int n = data.length; // Длина массива
  3. for (int i = 1; i < n; i++) {
  4. int c = data[i]; // Вставляемое значение
  5. // Организация поиска места для вставки значения c
  6. int low = 0, high = i;
  7. // Inv : (low <= high) && место для c - внутри data[low:high]
  8. while (low < high) {
  9. int m = (low+high) >> 1;
  10. // low <= m < high
  11. if (data[m] < c) low = m+1; else high = m;
  12. }
  13. // Найдено место вставки - low
  14. // Сдвигаем элементы в сторону больших индексов.
  15. for (int j = i-1; j >= low; j--) {
  16. data[j+1] = data[j];
  17. }
  18. // Заносим значение на найденное место
  19. data[low] = c;
  20. }
  21. }
Add Comment
Please, Sign In to add comment