Lila25mila
27 февраля 2019 г. 17:24

Алгоритм сортировки методом выбора

Алгоритм сортировки методом выбора начинается со сравнения первых двух элементов массива и их замены в случае необходимости. Например, если вы хотите отсортировать элементы массива в порядке возрастания и если первый элемент больше второго, вам нужно поменять местами элементы. Но, если первый элемент меньше второго, элементы остаются в своей последовательности. Затем снова первый элемент и третий элемент сравниваются и меняются местами, если это необходимо. Этот процесс продолжается до тех пор, пока не будет сравнен первый и последний элемент массива. Это завершает первый шаг выбора сортировки.


Если нужно отсортировать n элементов, процесс, упомянутый выше, следует повторить n-1 раз, чтобы получить требуемый результат. Для повышения производительности на втором шаге сравнение начинается со второго элемента, потому что после первого шага требуемое число автоматически помещается в первый. Аналогично, на третьем этапе сравнение начинается с третьего элемента и так далее. В случае сортировки в порядке возрастания, наименьший элемент будет первым, а в случае сортировки по убыванию, наибольший элемент будет первым.

Рассмотрим на рисунке работу алгоритма сортировки методом выбора.

Программа на C для сортировки элементов с использованием алгоритма сортировки методом выбора
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int data[100],i,n,steps,temp;
  5. printf("Enter the number of elements to be sorted: ");
  6. scanf("%d",&n);
  7. for(i=0;i<n;++i)
  8. {
  9. printf("%d. Enter element: ",i+1);
  10. scanf("%d",&data[i]);
  11. }
  12. for(steps=0;steps<n;++steps)
  13. for(i=steps+1;i<n;++i)
  14. {
  15. if(data[steps]>data[i])
  16. /* Чтобы отсортировать в порядке убывания, измените> на <. */
  17. {
  18. temp=data[steps];
  19. data[steps]=data[i];
  20. data[i]=temp;
  21. }
  22. }
  23. printf("In ascending order: ");
  24. for(i=0;i<n;++i)
  25. printf("%d ",data[i]);
  26. return 0;
  27. }
  1. Enter the number of elements to be sorted: 5
  2. 1. Enter element: 12
  3. 2. Enter element: 1
  4. 3. Enter element: 23
  5. 4. Enter element: 2
  6. 5. Enter element: 0
  7. In ascending order: 0 1 2 12 23

Примечание: хотя эта программа написана на C, алгоритм сортировки выбора можно аналогичным образом использовать и на другом языке программирования.

Алгоритм сортировки выбора прост в использовании, но есть и другие алгоритмы сортировки, которые работает лучше, чем сортировка выбора. В частности, сортировка выбора не должна использоваться для сортировки большого количества элементов, если производительность имеет значение в этой программе.

По статье задано0вопрос(ов)

2

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь