Д. М. Златопольский Санкт-Петербург «бхв-петербург» 2011 удк



Pdf көрінісі
бет268/271
Дата04.02.2022
өлшемі7,99 Mb.
#24830
1   ...   263   264   265   266   267   268   269   270   271
Байланысты:
Златопольский Сборник задач по прогр

Рис. П3.6 
Но если после этого вновь найти минимальный элемент, то им окажется тот 
же самый (найденный ранее) элемент. Чтобы исключить это, надо в исход-
ном  массиве  на  месте  выбранного  записать  число,  превосходящее  любой 
элемент сортируемого массива. Тогда, вновь найдя при втором проходе ми-
нимальный элемент, можно разместить его на втором месте в дополнитель-
ном  массиве  и  т. д.  Итак,  общая  схема  алгоритма  сортировки  рассмотрен-
ным методом имеет вид: 
нц для i от 1 до n 
  1. Определить минимальный элемент массива. 
  2. Записать его на i-е место в дополнительном массиве. 
                                                           
1
 Разумеется, можно выбрать и максимальный. В этом случае алгоритм претерпевает минимальные 
изменения. 


Приложение 3. Работа с одномерными числовыми массивами 
277 
  3. В исходном массиве на место минимального элемента 
     записать "большое" число. 
кц 
Что нужно знать, чтобы выполнить этап 3? Во-первых, число, которое пре-
восходит  любой  элемент  сортируемого  массива.  Будем  считать,  что  такое 
число известно. Во-вторых, индекс минимального элемента. Значит, на эта-
пе 1 следует также найти этот индекс (см. задачу П3.42)
В приведенном далее фрагменте программы сортировки массива обсуждае-
мым методом используем величины: 
 
мин
 — минимальный элемент массива; 
 
индмин
 — его индекс; 
 
макс
 —  число,  которым  заменяются  минимальные  элементы  исходного 
массива. 
нц для i от 1 до n 
  |1. Находим минимальный элемент массива и его индекс 
  мин := a[1]; индмин := 1 
  нц для j от 2 до n 
    если a[j] < a[индмин] 
      то 
       мин := a[j] 
       индмин := j 
    все 
  кц 
  |2. Записываем минимальный элемент на i-е место в массиве b 
  b[i] := мин 
  |3. Заменяем минимальный элемент исходного массива 
  |   "большим" числом 
  b[i] := макс 
кц 


Достарыңызбен бөлісу:
1   ...   263   264   265   266   267   268   269   270   271




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет