Сортировка массива чисел по возрастанию

Автор: Пользователь скрыл имя, 28 Октября 2012 в 20:42, курсовая работа

Краткое описание

Цель работы: Необходимо отсортировать по возрастанию массив из 20 шестнадцатеричных чисел. Чтобы это сделать надо найти максимальный элемент и поместить в конец массива, потом второй по величине и поставить его на предпоследнее место массива и т.д.

Оглавление

Введение 4
Основная часть 5
Блок-схема алгоритма работы программы 7
Алгоритм работы программы 8
Листинг программы 9
Результаты выполнения программы 12
Заключение 13
Список литературы

Файлы: 1 файл

Курсовая по МПУ УР 2.doc

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

 
module_data_to_xdata: 
mov DPTR, #0000h 
mov R0, #40h 
metka4: цикл вывода 
mov A, @R0 
movx @DPTR, A 
inc DPTR 
inc R0 
cjne R0, #54h, metka4 на метку цикла

 

final:

 

end.

 

 

Результаты выполнения программы:

до сортировки

После сортировки

13h

01h

11h

03h

01h

07h

17h

11h

07h

11h

03h

12h

21h

12h

32h

13h

32h

14h

12h

17h

42h

17h

34h

21h

22h

22h

14h

31h

55h

32h

11h

32h

17h

34h

77h

42h

31h

55h

12h

77h


 

 

 

Таблица команд и число  их выполнения:

mov DPTR, #0000h

21

mov R0, #53h

21

movx @DPTR, A

60

inc DPTR

420

inc R0

20

cjne R0, #3Fh, metka1

460

dec R0

20

mov @R0, 54h

20

mov A, #31h

40

mov 54h, #00h

20

mov R2, DPL

560

jmp metka_vozvrata

180

movx A, @DPTR

420

cjne A, 54h, metka3

400

jc metka_vozvrata2

400

mov 54h, A

140

mov DPL, R2

20

dec DPL

20

mov A, @R0

20


 

Время затраченное  программой на своё выполнение:

t =     5 + 20 + 20 + 40 + 60 + 20 + 100 + 80 + 40 + 400 + 40 + 60 + 1680 + 540 + 420 + 1200 + 800 + 280 + 1320 + 40 + 40 = 7305 тактов = 609 циклов = 203 мкс

 

Объём памяти занимаемый программой:

V = 24 * (1 + 20 + 20 + 20 + 20 + 20 + 20 + 40 + 400 + 20 + 560 + 180 + 420 + 400 + 400 + 440 + 20) + 12 * (1 + 20 + 20 + 20 + 40 + 20 + 140 + 20) = 74916 байт = 73Кб

 

Заключение

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

Литература:

  1. http://atdevil.ru/wp-content/uploads/2011/02/mcs51.pdf
  2. “Система команд микроконтроллеров MCS-51”, http://www.gaw.ru/html.cgi/txt/doc/micros/mcs51/asm/start.htm

 




Информация о работе Сортировка массива чисел по возрастанию