Мой сайт
Воскресенье, 02.02.2025, 07:37
» Меню сайта
» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сортировка массива

Сортировка массива - это упорядочивание элементов массива по некоторому признаку, расстановка в определенном порядке.

  • Убывающий порядок - каждый следующий элемент должен быть меньше предыдущего (по убыванию)
  • Возрастающий - каждый следующий элемент больше предыдущего.

 Если не все элементы различны, то надо говорить о неубывающем (или невозрастающем) порядке.

  • Неубывающий - каждый следующий элемент не меньше предыдущего.
  • Невозрастающий - каждый следующий элемент должен быть не больше предыдущего .

СОРТИРОВКА    ВЫБОРОМ

  1. Находим максимальный (минимальный) элемент массива, меняем его местами с первым элементом;
  2. В не отсортированной части массива снова выбираем максимальный (минимальный) элемент , он меняется с 1-м  из неотсортированных элементов массива.
  3. Повторяем до тех пор, пака в не отсортированной части не останется  один элемент.

Пример программы:

Program SORT_PV;{Сорт. простым выбором}                                      
uses crt;                                                                    
var a:array[1..10] of integer; i,j,m,k:integer;                                
 Begin                                                                        
    ClrScr; Randomize;                                                       
    for i:=1 to 10 do                                                        
     Begin                                                                   
       a[i]:=Random(101)-50;                                                 
       Write(a[i]:3);
{вывод исход. массива}                                                 
      end;                                                                   

for i:=10 downto 2 do
  begin

      m:=a[i];

      k:=i;
     for j:=1 to i-1 do
       if a[j]>m then
            begin
                  k:=j;
                  m:=a[k]
            end;
       if k<>i then
             begin
                 a[k]:=a[i]; 
                 a[i]:=m
             end;
  end;

Writeln; {перевод строки}                                                   
  writeln('Итоговый массив:');                                               
     For i:=1 to 10 do Write(a[i]:3);                                     
 end.

СОРТИРОВКА МЕТОДОМ «ПУЗЫРЬКА» (ПРОСТЫМ ОБМЕНОМ)

  1. Сравниваем 1-й и 2-й элемент массива и, если первый элемент  больше (меньше) второго, производим замену;
  2. Сравниваем 2-й и 3-й элемент, также производим замену, если 2-й элемент массива больше (меньше) 3-го элемента;
  3. Повторяем просмотр массива сначала и производим обмен;
  4. Просмотр-обмены продолжаем до тех пор, пока при очередном  проходе не будет произведено ни одного обмена – это значит, что все элементы упорядочены.

Program SORT_PV;                                      
uses crt;                                                                     
var a:array[1..10] of integer; i,j,m:integer;                                
 Begin                                                                       
    ClrScr; Randomize;                                                        
    for i:=1 to 10 do                                                        
     Begin                                                                  
       a[i]:=Random(101)-50;                                                 
       Write(a[i]:3);{вывод исход. массива}                                                 
      end;                                                                   
For j:=1 To 9 do {цикл по номеру просмотра}                                
 For i:=1 To 10-j do                                              
   If a[i]>a[i+1] then
   begin                                             
        m:=a[i];         
обмен
        a[i]:=a[i+1];    соседних
        a[i+1]:=m;       элементов                                 
   end;

  Writeln; {перевод строки}                                                  
  writeln('Итоговый массив:');                                               
     For i:=1 to 10 do Write(a[i]:3);                                      
 end.

» Вход на сайт
» Поиск
» Календарь
«  Февраль 2025  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
2425262728
» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • База знаний uCoz

  • » Инфознайка
    Copyright MyCorp © 2025uCoz