Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure binaryInsertSort(var vect : Vector; n : Integer);
- var i, j : Integer; { Индексы для просмотра элементов }
- elem : Integer; { Для сохранения элемента при перемещении по массиву }
- begin
- for i := 2 to n do begin
- { I: фрагмент массива с индексами от 1 до (i-1) уже упорядочен }
- elem := vect[i];
- { 1. Поиск места для элемента elem во фрагменте vect[1..(i-1)] }
- low := 1; high := i-1;
- while low <> high do begin
- { I: arr[k] < elem при k < low
- arr[k] >= elem при k > high }
- i := (low + high) div 2; { low <= i < high }
- if arr[i] < key then low := i+1 else high := i
- end;
- { 2. Вставка элемента elem в позицию low = high }
- for j := i-1 downto low do vect[j+1] := vect[j];
- vect[low] := elem
- end
- end;
Add Comment
Please, Sign In to add comment