Пример. Метод выбора минимального элемента. Ищем в массиве минимальный элемент   и   ставим   его   на   первое   место.   Затем   из   оставшихся   элементов   также   ищем минимальный и ставим на следующее место и т.д. В сравнении с методом  пузырька,  этот  метод  требует  значительно  меньше  перестановок элементов (в худшем случае N-1). Он дает значительный выигрыш, если перестановки сложны и занимают много времени.

#include <stdio.h>

const N = 10;

void main()

{

int i, j, nMin, A[N], c;

// ввод массива A

for ( i = 0; i < N-1; i ++ )

   {

   nMin = A[i];

   for ( j = i+1; j < N-1; j ++ )

   if ( A[j] < A[nMin] )

nMin = j;

if ( nMin != i )

   {

      c = A[i]; A[i] = A[nMin];

      A[nMin] = c;

      }

   }

printf("\n Отсортированный массив:\n”);

for ( i = 0; i < N; i ++ )

printf("%d ", A[i]);

}



2009-12-19 • Просмотров [ 5314 ]