суббота, 26 октября 2013 г.

Алгоритм "Сортировка массива"

В этой статье я напишу реализацию алгоритма по сортировке массива данных. Этот алгоритм можно использовать для построения списка игроков для таблицы рекордов или для поиска самого сильно (или слабого) врага на уровне и т.д.
Я буду реализовывать этот алгоритм на IDE AGK с коментариями каждой строки кода.



DIM number[100] as integer        // Создаем пустой массив целых чисел

for i=1 to 100                              // Начало цикла со счетчиком
   number[i]=random(1,1000)      // Каждому элементу массива присваиваем случайное число от
                                                     1   до 1000
next i                                          // Конец цикла со счетчиком

LOOP                                       // Начало Игрового цикла
repeat                                        // Начало цикла с постусловием
   for i=1 to 99
   done$="TRUE"                       // Строковой переменной done$ присваиваем значение
                                                    "ИСТИНА"
   if number[i]>number[i+1]         //Проверяем больший следующий элемент массива за
                                                    предидущий или нет
      temp_number=number[i]      // Если больший то: переменной temp_number присваиваем
                                                    значение элемента массива number[i] 
      number[i]=number[i+1]        // Элементу массива number[i] присваиваем значение
                                                    следующего элемента number[i+1] 
      number[i+1]=temp_number  // Элементу массива number[i+1] присваиваем значение
                                                    temp_number
      done$="FALSE"                  // Переменной done$ присваиваем значение "ЛОЩЬ"
   endif      
   next i                                      // Конец цикла со счетчиком
until done$="TRUE"                  // Проверяем условие цикла: если done$="ИСТИНА", то выходим
                                                    из цикла
DO                                           // Конец игрового цикла

Если все элементы массива уже упорядочены, то условный оператор IF  не присвоит значение переменной done$="FALSE" и программа выйдет из цикла с постусловием.
Переменная temp_number добавляется в программу для временного хранения элемента массива. Без этой переменной мы просто потеряем значение этого элемента.
В раздел "АЛГОРИТМЫ" я буду добавлять свою реализацию известных (и не очень) алгоритмом. Следующим я добавлю алгоритм " Поиск пути А* ".

Комментариев нет:

Отправить комментарий