42548

Сортування методом вставок

Лабораторная работа

Информатика, кибернетика и программирование

Завдання: розробити програму, що забезпечує сортування вхідного файлу методом вставок. Вхідний файл містить в собі двовимірний масив чисел цілого типу, всі елементи якого слід відсортувати за зростанням, причому зробити це окремо в кожному стовпці.

Украинкский

2013-10-30

29.5 KB

2 чел.

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №1

З дисципліни структури даних і алгоритми

Тема: 

«Сортування методом вставок»

 

                                                                                       Виконав ст. гр. КІ-10-3

                                                                    Матвєєв П.

       Перевірив Кльоц Ю. П.

Хмельницький 2011

Завдання: розробити програму, що забезпечує сортування вхідного файлу методом вставок. Вхідний файл містить в собі двовимірний масив чисел цілого типу, всі елементи якого слід відсортувати за зростанням, причому зробити це окремо в кожному стовпці.

Лістинг програми:

uses crt;

const n=8;

type mas=array[1..n,1..n] of integer;

var m:mas;

    i,j: integer;

    t: text;

procedure gen(var m:mas; var t:text);

var i,j:integer;

 begin

 randomize;

 rewrite(t);

 for i:=1 to n do begin

 for j:=1 to n do begin

 m[i,j]:=random(10);

 write(t,m[i,j],' ');

 end;

 writeln(t);

 end;

 close(t);

end;

procedure sort(var m:mas; var j:integer);

var i,k,temp,p:integer;

    tmas:array[1..n] of integer;

 begin

 for i:=1 to n do tmas[i]:=m[i,j];

 for k:=2 to n do begin

  temp:=tmas[k]; p:=k-1;

  While (p>0) and (temp<tmas[p]) do begin

   tmas[p+1]:=tmas[p];p:=p-1;

   end;

  tmas[p+1]:=temp;

 end;

 for i:=1 to n do m[i,j]:=tmas[i];

 end;

 procedure regen(var m:mas; var t:text);

 var i,j:integer;

  begin

  rewrite(t);

  for i:=1 to n do begin

  for j:=1 to n do begin

  write (t,m[i,j],' ');

  end;

  writeln(t);

  end;

  close(t);

 end;

begin

assign(t,paramstr(1));

gen(m,t);

for j:=1 to n do sort(m,j);

regen(m,t);

end.

Результат:

Вміст вихідного файлу:

0 4 0 0 0 1 0 0

2 6 0 1 1 2 0 2

3 6 1 3 1 3 1 2

3 7 2 3 6 4 1 4

4 7 5 5 6 5 1 5

5 7 5 6 7 5 2 5

8 7 6 9 8 7 3 7

9 8 7 9 9 7 9 9