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


 

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

8885. Класифікація банківських і операцій і послуг Тестові завдання 23.5 KB
  Класифікація банківських і операцій і послуг Тестові завдання 1. Виберіть класифікацію банківських операцій за функціональними ознаками: а) кредитні, засновницькі, емісійні б) розрахунково-касові, інвестиційні, комісійні в) депозитні, міжбанківськ...
8886. Організація грошового обігу в банках 144.72 KB
  Організація грошового обігу в банках 1. Характеристика платіжного обігу 2. Банківське обслуговування готівкового обігу 3. Безготівкові розрахунки: суть, значення, класифікація та принципи організації 4. Характеристика міжбанківських розрахунків 5. С...
8888. Банківське кредитування як основа діяльності банку Тестові завдання 26.75 KB
  Банківське кредитування як основа діяльності банку Тестові завдання 1. Які з наведених тверджень найбільш повно відображають суть кредиту: а) надання грошей чи товарів у борг б) тимчасове користування позичальником цінностями кредитора в) механізм...
8889. Інвестиційна діяльність банків Тестові завдання 22.54 KB
  Інвестиційна діяльність банків Тестові завдання 1. Найбільш повно відображає зміст терміна інвестиції їх визначення а) будь-яке вкладення коштів (засобів), яке не призводить ні до зростання капіталу, ні до отримання прибутку б) короткострокове вкл...
8890. Банківське кредитування як основа діяльності банку 99.64 KB
  Банківське кредитування як основа діяльності банку 1. Суть, призначення та функції кредиту. Класифікація банківських кредитів 2. Порядок видачі та погашення банківських кредитів юридичним особам 3. Банківське споживче кредитування. 4. Форми забезпеч...
8891. Інвестиційна діяльність банків 52.51 KB
  Інвестиційна діяльність банків 1. Суть, значення та класифікація банківських інвестицій 2. Інвестиційний портфель банку та його класифікація 3. Концепція формування інвестиційного портфеля банку 1. Суть, значення та класифікація банківських інвестиц...
8892. Банківське обслуговування зовнішньоекономічної діяльності 213.44 KB
  Банківське обслуговування зовнішньоекономічної діяльності 1. Суть, значення та загальна характеристика валютних операцій банку 2. Неторговельні операції банків в іноземній валюті 3. Характеристика основних форм міжнародних розрахунків 4. Порядок зді...
8893. Банківське обслуговування зовнішньоекономічної діяльності. Тестові завдання 25.93 KB
  Банківське обслуговування зовнішньоекономічної діяльності Тестові завдання 1. Ліцензії, які надають комерційним банкам для здійснення валютних операцій поділяють на: а) одноразові б) внутрішні в) генеральні г) усі відповіді правильні. 2. Внутрішн...