пятница, 22 марта 2013 г.

9А класс. Сортировка массивов. Домашнее задание к 27.03

Домашнее задание к 27.03
Уровень В: Дан массив из N элементов. Вывести на экран три самых больших элемента массива.
Уровень С: Дан массив из N элементов. Определить количество различных элементов в массиве.

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

Cортировка – это упорядочение элементов массива по возрастанию или убыванию.
Задачи упорядочения (сортировки) данных в массивах имеют большое практическое значение.
Алгоритмы сортировки используются в программах «Проводник» и «Мой компьютер» в ОС Windows, в программах-справочниках, в базах данных, в мобильных телефонах (например, при отображении списка контактов), и т. д. Это в значительной степени облегчает нам поиск нужной информации.
Методов сортировки существует очень много. Рассмотрим два простых метода сортировки – метод обмена и метод выбора.

Метод обмена («пузырька»)

Идея – пузырек воздуха в стакане воды поднимается со дна вверх. При этом самые крупные пузырьки всплывают первыми, а самые маленькие – последними. Применим эту идею к массивам.
Начиная с первого элемента массива, сравниваем поочередно каждые два соседних элемента; если они расположены не по возрастанию, меняем их местами.
После одного такого прохода на последнем (N-ом) месте в массиве будет стоять наибольший элемент – «всплыл» первый «пузырек».
Поскольку самый большой элемент уже стоит на своей последней позиции, то второй проход обменов выполняется до N-1-го элемента.
И так далее. Всего потребуется N-1 проход.

Program Sort_obmen;
Const N=10;
Var
  a : array[1..N] of integer;
  i, j, c : integer;
Begin
  Cls;
  writeln('Массив до сортировки:');
  for i:=1 to n do
    begin
      a[i]:=random(100);
      write(a[i]:5);
    end;
  writeln;
  for i:=1 to N-1 do
    for j:=1 to N-i do
      if a[j]>a[j+1] then begin
        c:=a[j];
        a[j]:=a[j+1];
        a[j+1]:=c;
       end;
  writeln('Массив после сортировки:');
  for i:=1 to n do
    write(A[i]:5);
  writeln;
End.


Метод выбора 

Метод выбора основан на изученном нами ранее методе нахождения максимального и минимального элемента массива.
В массиве нужно отыскать минимальный элемент и поставить на первое место (поменять местами с первым элементом).
Из оставшихся, то есть среди элементов от второго до последнего, найти минимальный элемент и поставить на второе место (поменять местами со вторым).
И так далее (всего N-1 проходов.
Program Sort_vybor;
Const N=10;
Var
  a : array[1..N] of integer;
  i, j, min, k : integer;
Begin
  Cls;
  writeln('Массив до сортировки:');
  for i:=1 to n do
    begin
      a[i]:=random(100);
      write(a[i]:5);
    end;
  writeln;

  for i:=1 to N-1 do begin
    min:=a[i]; k:=i;
    for j:=i+1 to N do
      if a[j]<min then begin
        min:=a[j];
        k:=j
       end;
    a[k]:=a[i];
    a[i]:=min;
   end;
  writeln('Массив после сортировки:');
  for i:=1 to n do
    write(A[i]:5);
  writeln;
End.

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

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