Моделирование алгоритма работы сортировки элементов и метода поиска образца в упорядоченной информации

Автор: Пользователь скрыл имя, 11 Ноября 2011 в 01:28, курсовая работа

Описание работы

ЗАДАНИЕ: Упорядочить массив чисел в диапазоне от 1 до 100000 по убыванию и возрастанию методом сортировки посредством вставок и слияния.

ЦЕЛЬ РАБОТЫ: разработать блок-схему алгоритма метода сортировки посредством вставок и слияния, создать схему программы, составить и протестировать программу на языке высокого уровня Delphi, получить результаты сортировки времени и скорости в зависимости от количества вводимых символов, построить графики зависимости в промежутках: [1 … 300], [300 … 5 000], [5 000 ... 10 000

Содержание

1.Содержание

1.Содержание курсового проекта……………………………….2

2.Введение………………………………………………………..5

3.Теоретическая часть……………………………………………6

3.1.Сортировка посредством вставок и слияния…………..6

3.2. Алгоритм поиска.Бинарные атрибуты…………………9

4.Практическая часть……………………………………………12

4.1. Блок схема алгоритма сортировки массива чисел посредством

вставок и слияния простых вставок………………………………12

4.2. Схема программы сортировки массива чисел посредством встевок

и слияния……………………………………………………………14

4.3. Блок схема алгоритма поиска через бинарные атрибуты

заданного образца в упорядоченном массиве……………16

4.4. Схема программы поиска через бинарные атрибуты

заданного образца в упорядоченном массиве……………18

4.5. Описание алгоритма задания элементов массива……….20

4.6. Текст программы, выполняющей сортировку массива

символов способом простых вставок …………………………..21

4.7. Описание интерфейса программы……………………………33

4.8. Таблицы результатов времени и скорости от количества

символов;…………………………………………………..34

4.9. Графики зависимостей времени и скорости от количества

чисел…………………………………..……………………36

5.Заключение………………………………………………………39

6.Список используемой литературы……………………………..40

Работа содержит 1 файл

Курсовик.doc

— 705.50 Кб (Скачать)

    flag1 := false; // пока нет ни одного найденного  элемента

    for i := 0 to length(a)-1 do

    begin

        j := 0;

        flag := true;

        while (j <= 15) and (flag = true) do

        begin

            if bin_mas[i,j] = bin_num[j] then

                flag := true

            else

                flag := false;

            inc(j);

        end;

        if flag = true then

        begin

            s := s + IntToStr(i) + ',';

            //Label10.Caption := 'Искомый элемент найден, его номер - '+ IntToStr(i);

            flag1 := true; // найден один соответствующий  элемент

        end;

        if flag1 = false then

            Memo1.Text := 'Заданный образец не найден';

    end;

    if flag1 = true then

    begin

        Label10.Caption := 'Номера элементов: ';

        Memo1.Text := s;

    end; 

    //**************Поиск  для массива по убыванию***************************//

    s := '';

    flag1 := false; // пока нет ни одного найденного  элемента

    for i := 0 to length(a)-1 do

    begin

        j := 0;

        flag := true;

        while (j <= 15) and (flag = true) do

        begin

            if bin_mas1[i,j] = bin_num[j] then

                flag := true

            else

                flag := false;

            inc(j);

        end;

        if flag = true then

        begin

            s := s + IntToStr(i) + ',';

            //Label10.Caption := 'Искомый элемент найден, его номер - '+ IntToStr(i);

            flag1 := true; // найден один соответствующий  элемент

        end;

        if flag1 = false then

            Memo2.Text := 'Заданный образец не найден';

    end;

    if flag1 = true then

   begin

        Label4.Caption := 'Номера элементов: ';

        Memo2.Text := s;

    end;

    time2 := GetTickCount;

    Label5.Caption := IntToStr(time2-time1)+ 'ms';

end;

end.

             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

4.7 Описание интерфейса  программы:

 

1. Заголовок формы.

2. Диапазон задания исходного массива чисел.

3. Кнопка для получения исходного массива.

4. Исходный массив.

5. Кнопка для упорядочевания массива по возрастанию.

6. Упорядоченный массив по возрастанию.

7. Кнопка для упорядочевания массива по убыванию.

8. Упорядоченный массив по убыванию.

9. Кнопка управления для выполнения поисковой операции образца в массиве 10. Поле редактирования для ввода образца – поискового элемента в

массиве.

  11. Поле редактирования для вывода результата поисковой операции образца

   в упорядоченном по возрастанию массива чисел.

12. Поле редактирования для вывода результата поисковой операции образца в

упорядоченном по убыванию массива чисел.

13. Время заданной сортировки,поиска образца. 
 

4.8 Таблицы результатов времени и скорости от количества символов; 

Таблица результатов (до 300 символов):        
s,сим 10 20 30 40 50 60 70 80 90 100
t, мс 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201
v=s/t, 49,75 99,5 149,25 199 248,76 298,51 348,26 398,01 447,76 497,51
сим/мс
                     
s,сим 110 120 130 140 150 160 170 180 190 200
t, мс 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201
v=s/t,

сим/мс

547,3 597 646,77 696,52 746,27 796,02 845,77 895,52 945,27 995,02
                     
s,сим 210 220 230 240 250 260 270 280 290 300
t, мс 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201 0,201
v=s/t, 1045 1095 1144,3 1194 1243,8 1293,5 1343,3 1393 1442,8 1492,5
сим/мс
                     
Таблица результатов (от 300 до 5000 символов):          
s,сим 300 500 700 900 1100 1300 1500 1700 1900 2100
t, мс 0,541 0,541 0,561 0,561 0,561 0,561 0,561 0,561 0,561 0,561
v=s/t, 554,5 924,2 1247,7 1604,2 1960,7 2317,2 2673,7 3030,3 3386,8 3743,3
сим/мс
                     
s,сим 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100
t, мс 0,571 0,571 0,581 0,581 0,581 0,581 0,581 0,581 0,581 0,581
v=s/t, 4028 4378,2 4647,1 4991,3 5679,8 6024 6368,3 6712,5 7056,7 7056,7
сим/мс
 
 
s,сим 4300 4500 4700 4900 5100
t, мс 0,620 0,620 0,620 0,620 0,620
v=s/t, 6935,4 7258 7580,6 7903,2 8225,8
сим/мс
Таблица результатов (от 5000 до 10000 символов):
s,сим 5100 5300 5500 5700 5900 6100 6300 6500 6700 6900
t, мс 0,785 0,785 0,785 0,786 0,786 0,795 0,795 0,850 0,850 0,850
v=s/t,

сим/мс

6496,8 6751,5 7006,3 7251,9 7421,3 7672,9 7411,7 7647 7882,3 8117,6
                     
s,сим 7100 7300 7500 7700 7900 8100 8300 8500 8700 8900
t, мс 0,850 0,850 0,850 0,900 0,900 0,900 0,905 0,903 0,904 0,905
v=s/t, 8352,9 8588,2 8823,5 8555,5 8777,7 9000 9171,2 9413 9623,8 9834,2
сим/мс
s,сим 9100 9300 9500 9700 9900 10100
t, мс 0,945 0,945 0,948 0,944 0,947 0,962
v=s/t, 9629,6 9841,2 10021 10275,4 10454 10498,9
сим/мс
 
 
 
 
 
 
 
 
 
 
 
 

4.9. Графики зависимостей времени и скорости от количества чисел 

 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 

5. Заключение

     Важным  свойством алгоритма является его  сфера применения. Здесь основных позиций две:

  • внутренние сортировки работают с данным в оперативной памяти с произвольным доступом;
  • внешние сортировки упорядочивают информацию, расположенную на внешних носителях. Это накладывает некоторые дополнительные ограничения на алгоритм:
  • доступ к носителю осуществляется последовательным образом: в каждый момент времени можно считать или записать только элемент, следующий за текущим,
  • объем данных не позволяет им разместиться в ОЗУ.
  • Доступ к данным на носителе производится намного медленнее, чем операции с оперативной памятью.

     Данный  класс алгоритмов делится на два  основных подкласса:

     Внутренняя сортировка оперирует с массивами, целиком, умещающимися в оперативной памяти с произвольным доступом к любой ячейке. Данные обычно сортируются на том же месте, без дополнительных затрат.

     Внешняя сортировка оперирует с запоминающими  устройствами большого объема, но с доступом не произвольным, а последовательным (сортировка файлов), т.е. в данный момент только один элемент, а затраты на перемотку по сравнению с памятью неоправданно велики. Это приводит к специальным методам сортировки, обычно использующим дополнительное дисковое пространство.

     При решении задачи сортировки обычно выдвигается  требование минимального использования дополнительной памяти, из которого вытекает недопустимость применения дополнительных массивов.

     Для оценки быстродействия алгоритмов различных методов сортировки, как правило, используют два показателя:

     количество  присваиваний;

     количество  сравнений.

Сравним некоторые  виды сортировок:

Сортировка вставкой - Очень прост, ,Быстро сортирует небольшие списки,  

                                         Очень медленно работает с большими списками.

    Сортировка вставкой на основе связанного списка - Прост Быстро

                                                                                  сортирует небольшие списки,     

                                                                         Перемещает не данные,а указатели

                                                          Медленно работает с большими списками.

     Сортировка выбором - Очень прост, Быстро сортирует небольшие списки  

                                            Медленно работает с большими списками

     Пузырьковая сортировка - Быстро работает для почти отсортированных

                                                  списков.Медленно работает во всех остальных

                                                  случаях;

     6. Список используемых источников 
 

  1. Кнут Д.Э. Искусство программирования, том 3. Сортировка и поиск, 2-е изд.: Пер с англ. – М.: Издательский дом   “Вильямс”,  2001. – 832 с.: ил.
  2. Лорин Г. Сортировка и системы сортировки, МОСКВА ”НАУ    КА”: Пер с англ., В-71, Ленинский проспект, 15, 1983.- 378 с.: ил.
  3. Фаронов В.В. Delphi 7. Учебный        курс. -М.: "Нолидж", 1998. -464 с.,ил.
  4. Фаронов В.В. Delphi 4. Учебный курс. -М.: "Нолидж", 1998. -464 с.,ил.
  5. Фаронов В.В. Delphi 3. Учебный курс. -М.: "Нолидж", 1998. -400 с., ил.
  6. Прайс Д. Программирование на языке Паскаль: Практическое руководство. Пер. с англ. - М.: Мир. 1987.- 232 с.
  7. Марков А.С., Милов М.П.., Пеледов Г.В.: Программное обеспечение ЭВМ. кн.11, 1995. -356 с.: ил.
  8. Перспективы развития вычислительной техники, в 11 книгах, Спр. пособие/Под ред. Ю.М. Смирнова, М.: Высш. шк., 1990.-127с.:илл.
  9. Офицеров Д.В., Старых В.А. Программирование в интегрированной среде Турбо-Паскаль: Справ. пособие.-Мн.: Беларусь, 1992.-240с.: ил.
  10. Фаронов В.В. Турбо-Паскаль (в 3 книгах). - М.: "МВТУ-ФЕСТО ДИДАКТИК", 1992-1993.

Информация о работе Моделирование алгоритма работы сортировки элементов и метода поиска образца в упорядоченной информации