Guest User

Untitled

a guest
Jun 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. procedure binaryInsertSort(var vect : Vector; n : Integer);
  2. var i, j : Integer; { Индексы для просмотра элементов }
  3. elem : Integer; { Для сохранения элемента при перемещении по массиву }
  4. begin
  5. for i := 2 to n do begin
  6. { I: фрагмент массива с индексами от 1 до (i-1) уже упорядочен }
  7. elem := vect[i];
  8.  
  9. { 1. Поиск места для элемента elem во фрагменте vect[1..(i-1)] }
  10. low := 1; high := i-1;
  11. while low <> high do begin
  12. { I: arr[k] < elem при k < low
  13. arr[k] >= elem при k > high }
  14. i := (low + high) div 2; { low <= i < high }
  15. if arr[i] < key then low := i+1 else high := i
  16. end;
  17.  
  18. { 2. Вставка элемента elem в позицию low = high }
  19. for j := i-1 downto low do vect[j+1] := vect[j];
  20. vect[low] := elem
  21. end
  22. end;
Add Comment
Please, Sign In to add comment