Страницы

среда, 13 июня 2012 г.

Сортировка выбором


Сортировка выбором (Selection sort) — алгоритм сортировки. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n2), предполагая что сравнения делаются за постоянное время.

Шаги алгоритма:
  1. находим номер минимального значения в текущем списке
  2. (только в устойчивых реализациях) если значения элементов неравны, то
  3. производим обмен этого значения со значением первой не отсортированной позиции
  4. теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы
Пример :
int* SelectSort(int* Array, int SizeArray)
{
    int i=0;
    int j=0;
    int tmp=0;

    for(i=0; i<SizeArray-1; i++)
    {
        int min=i;
        for(j=i+1; j<SizeArray; j++)
        {
            if(Array[min]<Array[j])
            {
                min=j;
            }
        }

        if(Array[min]!=Array[i])
        {
            tmp=Array[i];
            Array[i]=Array[min];
            Array[min]=tmp;
        }
    }

    return Array;
}

Wiki: Сортировка выбором

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

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