Показать сообщение отдельно

  #138  
Старый 20.12.2007, 18:29
Neovild
Познающий
Регистрация: 18.12.2007
Сообщений: 32
С нами: 9682572

Репутация: 86
По умолчанию

Сортировка выбором (selection sort).
Ищешь наимменьший элемент массива, который ставишь на место A[1], ишешь второй наименьший элемент, который ставишь на A[2]... Этот процесс продолжаешь для первых n-1 элементов массива.
Раборает за O(n*n).
Код:
for i:=1 to SIZE-1 do begin
  min:=i;
  for j:=i+1 to SIZE do 
    if a[j] > a [min]
      then min:=j;
    buf:=a[i]; a[i]:=a[min]; a[min]:=buf;
  end;
Имхо, если брать произвольные числа, то heap-sort самое то- n*lg(n) (Но (!) хоть quick-sort в плохих случаях работает за n*lg(n) . . . . . n*n, тесты показывают, что он быстрее, связано с хз какой записью на винче).
З.Ы. Почитай Кормана.
 
Ответить с цитированием