42553

Швидке сортування

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

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

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

Украинкский

2013-10-30

31 KB

2 чел.

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

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

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

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

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

Тема: 

«Швидке сортування»

 

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

                                                                    Матвєєв П.

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

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

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

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

uses crt;

const n=8;

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

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

var m:mas; m2:tmas;

    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 qsort(var m2:tmas; left,right:integer);

var j:integer;

    l,r:integer;

    temp,sred:integer;

 begin

 l:=left; r:=right;

 sred:=round((left+right) div 2);

 repeat

  while (m2[l]>sred) do inc(l);

  while (m2[r]<sred) do dec(r);

  if l<r then begin

   temp:=m2[l];

   m2[l]:=m2[r];

   m2[r]:=temp;

   inc(l); dec(r);

  end;

  until l>r;

  if left<r then qsort(m2,left,r);

  if l<right then qsort(m2,l,right);

 end;

 procedure regen(var m2:tmas; var t:text);

 var i,j:integer;

  begin

  rewrite(t);

  for j:=1 to n do begin

  write (t,m2[j],' ');

  writeln(t);

  end;

  close(t);

 end;

begin

 assign(t,paramstr(1));

 gen(m,t);

 for i:=1 to n do begin

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

  qsort(m2,1,n);

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

  regen(m2,t)

 end;

end.

Результат:

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

0 1 2 3 3 3 3 7

0 1 3 4 4 6 6 8

1 1 1 4 5 6 7 8

0 1 1 5 6 8 8 9

0 1 1 1 3 8 8 9

0 1 1 2 4 5 6 9

0 0 1 1 4 4 5 8

2 2 3 3 4 6 6 6


 

А также другие работы, которые могут Вас заинтересовать

57477. Учебно-воспитательный процесс в дошкольных учреждениях 82.79 KB
  Можно предположить, что будут выявлены изменения в психомоторной функции после проведения занятий по танцевальной ритмике у детей с аутизмом старшего дошкольного возраста...
57478. У искусства есть два самых опасных врага: ремесленник не озаренный талантом и талант, не владеющий ремеслом 14.65 KB
  Что такое искусство? У этого слова несколько значений. Искусством называют воспроизведение действительности в художественных образах; умение, мастерство, знание дела - например, искусство вязания; само дело - например, военное искусство
57479. Современные цифровые системы коммутации AXE – 10 5.13 MB
  AXE – 10 обеспечивает постоянное и всестороннее наблюдение за порядком и результатом установления соединений, контроль поступающей нагрузки. Наличие значительного объема абонентских данных управления в памяти позволяет изменить конфигурацию системы
57482. Жеміс-жидекті айран өндіру технологиясы 79.3 KB
  Жұмыстың мақсаты, сүт қышқылды өнімдердің түрлері, соның ішінде айран өндірудің технологиялық үрдісін игеру, айран алудың термостатты және резервуарлы тәсілдері, айранның адам денсаулығына әсерін көрсету, жеміс-жидекті айран өнімін өндіргендегі технологиялық үрдістің барлық сатыларын бақылау.
57483. Виховна година, Моя Батьківщина - Україна 59 KB
  Мета: поглибити знання учнів про Україну; прищеплювати любов до рідного краю; розширити зміст поняття громадянин України; розвивати мовлення учнів; виховувати патріотичні почуття приналежності до українського народу.
57484. Сценарій літературного вечора «З Україною в серці» 1.31 MB
  Ведучі. Петриненко Ведучі. Україна Ти для мене диво І нехай пішов за роками рік буду завжди я горда і вродлива з тебе дивуватися навік На екрані карта України Ведучі. Ведучі.
57485. Welcome to Ukraine 55 KB
  The aims: Practical aims: to teach the new vocabulary, by the end of the lesson pupils will have revised the information they have learned about Ukraine, will have recollected some facts about our country by doing different tasks...