# Быстрая сортировка

**URL:** <https://forum.itvdn.com/t/bystraya-sortirovka/1573>\
**Category:** C#\
**Created:** [19.05.2018 08:30:32 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573 "2018-05-19T08:30:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![arsenijbykov84](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/90db22/32.png) [@arsenijbykov84](https://forum.itvdn.com/u/arsenijbykov84)\
**Post date:** [19.05.2018 08:30:32 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573/1 "2018-05-19T08:30:32Z")

</div>

Это вторая сортировка которую мне нужно сделать, но эта вообще какая то сложная и вообще не понятна мне, последняя надежда на вас товарищи, с примером кода желательно)

---

<div class="post-metadata">

**Author:** ![Nikit\_OS69](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/n/eb9ed0/32.png) [@Nikit\_OS69](https://forum.itvdn.com/u/Nikit_OS69)\
**Post date:** [19.05.2018 12:01:20 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573/2 "2018-05-19T12:01:20Z")

</div>

Быстрая сортировка — это алгоритм типа «разделяй и властвуй». Он работает, рекурсивно повторяя следующие шаги: Выбрать ключевой индекс и разделить по нему массив на две части. Это можно делать разными способами, я предпочитаю использовать случайное число. Переместить все элементы больше ключевого в правую часть массива, а все элементы меньше ключевого — в левую. Теперь ключевой элемент находится в правильной позиции — он больше любого элемента слева и меньше любого элемента справа. Повторяем первые два шага, пока массив не будет полностью отсортирован.

Это собственно и всё что тут надо делать. Но это очень сложная сортировка для новичков, если вы не знаете что такое рекурсия, то мне кажется вы что то перепутали.

---

<div class="post-metadata">

**Author:** ![arsenijbykov84](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/90db22/32.png) [@arsenijbykov84](https://forum.itvdn.com/u/arsenijbykov84)\
**Post date:** [19.05.2018 12:05:25 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573/3 "2018-05-19T12:05:25Z")

</div>

Похоже вы правы, сортировка вставками, поможете?)

---

<div class="post-metadata">

**Author:** ![Nikit\_OS69](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/n/eb9ed0/32.png) [@Nikit\_OS69](https://forum.itvdn.com/u/Nikit_OS69)\
**Post date:** [19.05.2018 12:19:37 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573/4 "2018-05-19T12:19:37Z")

</div>

Yes)

Вот как данная сортировка реализуется в языке C#, вставляйте к себе и изучайте)

```
class Program
    {
        static void Main(string[] args)
        {
            Operations operations = new Operations();

```
        int[] array = { 1, 2, 5, 2, 68, 123, 10 };

        operations.ShowArray(array);
        operations.InsertionSort(array);
        operations.ShowArray(array);
        Console.ReadKey();
        
    }   
}
class Operations
{
    public void InsertionSort(int[] array)
    {
        for (int i = 1; i < array.Length; i )
        {
            int j;
            int buf = array[i];
            for (j = i - 1; j >= 0; j--)
            {
                if (array[j] < buf)
                    break;

                array[j 1] = array[j];
            }
            array[j 1] = buf;
        }
    }

    public void ShowArray(int[] array)
    {
        for (int i = 0; i < array.Length; i )
        {
            Console.WriteLine(array[i]);
        }
    }
}</pre>

```

Это простая сортировка, в ходе которой мы берем один элемент и вставляем его на свое место в массиве (сравнивая с предидущим), и так последовательно с каждым элементом.
```

---

<div class="post-metadata">

**Author:** ![arsenijbykov84](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/90db22/32.png) [@arsenijbykov84](https://forum.itvdn.com/u/arsenijbykov84)\
**Post date:** [19.05.2018 12:23:36 UTC](https://forum.itvdn.com/t/bystraya-sortirovka/1573/5 "2018-05-19T12:23:36Z")

</div>

Спасибо большое)
