Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки C++


Сортировка Выбором C++

Это один из самых простых видов сортировок. Рассмотрим немного подробней алгоритм его действия. Предположим нам нужно отсортировать массив, как часто это бывает, по возрастанию. У нас есть массив из 10 элементов. Вовремя первого прохода по массиву программа находит самый минимальный элемент и ставит эго на первое место. Далее массив “прочёсывается” ещё раз, так же находится минимальный элемент и ставиться на 2-ое место, и так далее, пока массив не будет полностью отсортирован. Минус такой сортировки в том, что массив каждый раз проверяется заново, соответственно увеличивается время сортировки, но это будет ощущаться, если массив состоит из нескольких сотен тысяч элементов. Для наглядного примера – отсортируем по возрастанию одномерный массив. Вот код данной сортировки:



#include "stdafx.h"
#include "iostream"
#include "time.h"
#include "iomanip"

using namespace std;

void ChoicesSort(int*, int);   // объявление функции сортировки

int main()
{
setlocale(LC_ALL, "Russian");
int n;   // Количество элементов массива
cout << "Введите размер массива: ";
cin >> n;
cout << endl;
cout << "Массив: " << endl;
int *mas = new int [n];
srand(time(NULL));
for (int i = 0; i < n; i++)
{
mas[i] = rand() % 200 - 100;   // заполняем массив случайными числами
cout << mas[i] << " ";   // выводим массив на экран
}
cout << "\n\n";

ChoicesSort(mas, n);   // вызываем функцию сортировки Выбором
cout << "Отсортированный массив: " << endl;
for (int i = 0; i < n; i++)
{
cout << mas[i] << " ";   // Вывод на экран отсортированного массива
}
cout << "\n";
system("PAUSE");
return 0;
}

void ChoicesSort(int* Perestanovka, int length)   // сортировка Выбором
{
for (int j = 0; j < length; j++)
  {
int temp = Perestanovka[0];   // временная переменная, храненящая значения перестановки
for (int z = j + 1; z < length; z++)
    {
if (Perestanovka[j] > Perestanovka[z])
      {
temp = Perestanovka[j];
Perestanovka[j] = Perestanovka[z];
Perestanovka[z] = temp;
      }
    }
  }
}

Результат:



<< К списку сортировок