Демонстрационная программа, написанная на Паскале АБС, объясняет суть пузырьковой сортировки. Все наглядно и понятно, а главное красиво. Такую программу могут предложить школьнику или студенту как вариацию классической задачи про сортировку. Может пригодиться преподавателям на уроках программирования для наглядной демонстрации алгоритма пузырьковой сортировки. На картинке слева - скрин в какой-то момент работы программы. В живую запустить программу можно здесь. Перед переходом по ссылке скопируйте код программы, а затем вставьте в онлайн-компилятор.
uses Graph;
type IntArr = array[1..100] of integer;
const
h = 20;
dist = 10;
cellsize = 30;
procedure DrawElemAsHystogram(const a: IntArr; n,i: integer; x,y: integer);
begin
Rectangle(x+(i-1)*(h+dist),y,x+(i-1)*(h+dist)+h,y-a[i]);
end;
procedure DrawArrayAsHystogram(const a: IntArr; n: integer; x,y: integer);
begin
for var i := 1 to n do
DrawElemAsHystogram(a,n,i,x,y);
end;
procedure DrawArr(const a: IntArr; n: integer);
begin
Window.Clear;
DrawArrayAsHystogram(a,n,10,340);
Sleep(100);
end;
procedure BubbleSort(var a: IntArr; n: integer);
begin
for var i:=n downto 2 do
for var j:=1 to i-1 do
if a[j+1] < a[j] then
begin
Swap(a[j+1],a[j]);
DrawArr(a,n);
end;
end;
var
a: IntArr;
n: integer := 20;
begin
Window.Title := 'Пузырьковая сортировка';
Window.SetSize(640,380);
for var i := 1 to n do
a[i] := Random(10,299);
Brush.Color := Color.LightGreen;
DrawArrayAsHystogram(a,n,100,340);
BubbleSort(a,n);
end.