Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 927

•  TDictionary Custom Sort  6 031

•  Fast Watermark Sources  5 821

•  3D Designer  8 641

•  Sik Screen Capture  6 153

•  Patch Maker  6 594

•  Айболит (remote control)  6 583

•  ListBox Drag & Drop  5 442

•  Доска для игры Реверси  95 376

•  Графические эффекты  6 796

•  Рисование по маске  5 967

•  Перетаскивание изображений  4 970

•  Canvas Drawing  5 343

•  Рисование Луны  5 070

•  Поворот изображения  4 608

•  Рисование стержней  3 266

•  Paint on Shape  2 507

•  Генератор кроссвордов  3 398

•  Головоломка Paletto  2 699

•  Теорема Монжа об окружностях  3 494

•  Пазл Numbrix  2 295

•  Заборы и коммивояжеры  2 985

•  Игра HIP  1 945

•  Игра Go (Го)  1 858

•  Симулятор лифта  2 208

•  Программа укладки плитки  1 931

•  Генератор лабиринта  2 369

•  Проверка числового ввода  2 055

•  HEX View  2 376

•  Физический маятник  2 010

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Сортировка массива методом прямого выбора



Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:

  1. Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
  2. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
  3. И так далее до предпоследнего элемента.

Ниже представлена программа сортировки массива целых чисел по возрастанию

procedure TForm1.ButtonlClick(Sender: TObject);
const
  SIZE = 10;
var
  a: array[1..SIZE] of integer;
  min: integer; { номер минимального элемента в части
                  массива от i до верхней границы массива }
  j: integer; { номер элемента, сравниваемого с минимальным }
  buf: integer; { буфер, используемый при обмене элементов массива }
  i, k: integer;
begin
  // ввод массива
  for i := l to SIZE do
    a[i] := StrToInt(StringGridl.Cells[i - 1, 0]); Iabel2.caption := '';

  for i := l to SIZE - 1 do
  begin
    { поиск минимального элемента в части массива от а[1] до a[SIZE]}
    min := i;
    for j := i + l to SIZE do
      if a[j] < a[min] then
        min := j;

    { поменяем местами a [min] и a[i] }
    buf := a[i];
    a[i] := a[min];
    a[min] := buf;

    { вывод массива }
    for k := l to SIZE do
      Label2.caption := label2.caption + ' ' + IntTostr(a[k]);
    Label2.caption := label2.caption + #13;
  end;
  Label2.caption := label2.caption + #13 + 'MaccMB отсортирован.';
end;




Похожие по теме исходники

Сортировка методом Хоара

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




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте