Отсортировать массив по убыванию - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите плз) нужно поставить элементы с 1 и 3 столбца массива как до сортировки. то есть, к примеру, после сортировки стало: 227|0,000987|227|0,000987 а должно быть 192|0,000987|197|0,000987

Решение задачи: «Отсортировать массив по убыванию»

textual
Листинг программы
begin
  Randomize;
  var a : array [1..64, 1..4] of Real;
  for var i := 1 to 64 do
    begin a[i, 1] := i; a[i, 2] := Random; a[i, 3] := i; a[i, 4] := Random; end;
    
  var Col := 2; // Сортировка по второму столбцу
  var Row := 1;
  while Row < 64 do
    if a[Row, Col] < a[Row+1, Col] then
      begin
        Swap(a[Row, Col-1], a[Row+1, Col-1]);
        Swap(a[Row, Col  ], a[Row+1, Col  ]);
        if Row > 1 then Row -= 1;
      end
    else
      Row += 1;
 
  Col := 4; // Сортировка по четвёртому столбцу
  Row := 1;
  while Row < 64 do
    if a[Row, Col] < a[Row+1, Col] then
      begin
        Swap(a[Row, Col-1], a[Row+1, Col-1]);
        Swap(a[Row, Col  ], a[Row+1, Col  ]);
        if Row > 1 then Row -= 1;
      end
    else
      Row += 1;
 
  for var i := 1 to 64 do
    WriteLn(a[i,1]:2, ' - ', a[i,2]:6:4, '    ', a[i,3]:2, ' - ', a[i,4]:6:4);
end.

Объяснение кода листинга программы

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

  1. Создается массив типа Real размером 64x4, заполняемый случайными значениями от 0 до 63 для каждого элемента.
  2. Два вложенных цикла проверяют, что текущий элемент меньше следующего в выбранном столбце. Если это так, то элементы меняются местами.
  3. Если текущий элемент больше следующего, то происходит переход к следующему элементу внешнего цикла.
  4. После завершения первого вложенного цикла, происходит переход ко второму вложенному циклу, который сортирует массив по второму столбцу.
  5. После завершения второго вложенного цикла, происходит вывод отсортированного массива. Список действий:
  6. Создание массива
  7. Заполнение массива
  8. Первый цикл сортировки
  9. Второй цикл сортировки
  10. Вывод отсортированного массива

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы