вентилятор
Хорошего настроения!

Сортировка простым выбором C#



Привет! Сегодня рассмотрим cортировку методом простого выбора (простого перебора).


Рассмотрим алгоритм данного метода для сортировки целочисленного массива: 7, 0, -4, 3, 1, -2, 5 .







Сортировка методом простого выбора


Порядок действий:

1. Находим минимальный элемент
2. Меняем местами минимальный элемент с первым
3. Сдвигаем "рабочую" область массива вправо на один элемент

Повторяем данные действия [длина массива - 1] раз.



Напишем данный алгоритм на языке C#:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace ConsoleApp22
{
    class Program
    {
        // Сортировка простого выбора
        static void Main(string[] args)
        {

            int[] a = { 7, 0, -4, 3, 1, -2, 5 };

            int i, j, min, temp;
            for(i=0; i < a.Length - 1; i++)
            {
                min = i; //устанавливаем начальное значение минимального индекса
                
                //находим минимальный индекс элемента
                for (j = i + 1; j < a.Length; j++)
                {
                    if (a[j] < a[min])
                        min = j;
                }

                //меняем значения местами
                temp = a[i];
                a[i] = a[min];
                a[min] = temp;
            }

            // Распечатываем массив.
            Console.WriteLine("Сортировка простого выбора");
            for(i=0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }

            Console.ReadKey();
        }
    }
}



Результат сортировки простым выбором


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



Сравнение сортировки методом простого выбора с другими




Проведя личный эксперимент, массив случайных чисел из 10000 элементов метод пузырька отсортировал за 2151 мс.




Сортировка пузырьком - время обработки массива


Тот же самый массив метод шейкер-сортировки отсортировал за 1381 мс.



Шейкер-сортировка - время обработки массива


Сортировка простым выбором является самым эффективным из всех выше перечисленных методов. Тот же самый массив был отсортирован за 879 мс.



Сортировка простым выбором - время обработки массива





07-06-2019 в 18:05:50





Поддержать сайт:


Похожая статья:

Шифр Виженера на C#

Шифруем сообщение методом Виженера с помощью ключа....

Категория: Алгоритмы  Подкатегория: Шифрование
Дата: 25-09-2018 в 20:26:22 4



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



Напишите email, чтобы получать сообщения о новых комментариях (необязательно):


Задача против робота. Расположите картинки горизонтально:




Нажимая кнопку Отправить, Вы соглашаетесь с политикой конфиденциальности сайта.