Бинарная вставка - Pascal ABC
Формулировка задачи:
помогите, нужно сделать с генерацией, на Pascal ABC, и нужна блок схема
Решение задачи: «Бинарная вставка»
textual
Листинг программы
var a: array[1..100] of integer; i,j,n,sred,left,right,tmp: integer; begin write('Введите размер массива n: '); readln(n); writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(99)+1; write(a[i]:4); end; writeln; for i:=2 to n do if a[i-1]>a[i] then begin tmp:=a[i]; left:=1; right:=i-1; repeat sred:=(left+right) div 2; if a[sred]<tmp then left:=sred+1 else right:=sred-1; until left>right; for j:=i-1 downto left do a[j+1]:=a[j]; a[left]:=tmp; end; writeln('Упорядоченный массив:'); for i:=1 to n do write(a[i]:4); readln; end.
Объяснение кода листинга программы
- Введен размер массива n.
- Введен исходный массив a[1..100] из 100 элементов, заполненный случайными числами от 1 до 99.
- Выведена информация о массиве a.
- Производится сортировка массива a по методу бинарной вставки.
- На каждой итерации находится элемент, который нужно вставить в упорядоченную часть массива, и его положение в массиве.
- Элемент, который нужно вставить, помещается в конец упорядоченной части массива.
- Упорядоченный массив выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д