Написать программу которая релизует виды сортировки и сравнивает их на одном и том же списке данных - C#

Узнай цену своей работы

Формулировка задачи:

Помогите написать программу, совершенно не разбираюсь в сортировках Написать программу которая реализует след. виды сортировок: 1)вставками 2)пузырьком 3) шелла 4)пирамидальный 5) слияния 6) быстрый. Сравнить виды сортировок на одном и том же списке данных (массив рандомных чисел) какой из них наиболее простой. Ps. Можно по проще код, что бы в нем можно было разобраться новичку)

Решение задачи: «Написать программу которая релизует виды сортировки и сравнивает их на одном и том же списке данных»

textual
Листинг программы
            int[] a = { 1, 5, 3, 6, 2, 4 };
            int min = 0;
            int x;
            int m = 0; //счётчик проходов
 
            //сортировка выбором
            for (int i = 0; i < a.Length; i++)
            { // i - номер текущего шага
                min = i; x = a[i];
                for (int j = i + 1; j < a.Length; j++) // цикл выбора наименьшего элемента
                {
                    if (a[j] < x)
                    {
                        min = j; x = a[j]; // k - индекс наименьшего элемента
                    }
                    m = m + 1;
                }
                a[min] = a[i]; a[i] = x; // меняем местами наименьший с a[i]
            }
            for (int i = 0; i < a.Length; i++)
            {
                Console.Write(a[i] + " ");
            }
            Console.WriteLine("Количество проходов сортировкой выбором: " + m);
 
            //сортировка пузырьком
            int[] b = { 1, 5, 3, 6, 2, 4 };
            m = 0;
            for (int i = 0; i < b.Length; i++)
            {            // i - номер прохода
                for (int j = b.Length - 1; j > i; j--)
                {     // внутренний цикл прохода
                    if (b[j - 1] > b[j])
                    {
                        x = b[j - 1]; b[j - 1] = b[j]; b[j] = x;
                    }
                    m = m + 1;
                }
            }
            for (int i = 0; i < b.Length; i++)
            {
                Console.Write(b[i] + " ");
            }
            Console.WriteLine("Количество проходов сортировкой пузырьком: " + m);
 
            //сортировка вставками
            int[] c = { 1, 5, 3, 6, 2, 4 };
            m = 0;
            for (int i = 1; i < c.Length; i++)
            {
                x = c[i];
                int j = i - 1;
                while (j >= 0 & c[j] > x)
                {
                    c[j + 1] = c[j];
                    j--;
                    m = m + 1;
                }
                c[j + 1] = x;
            }
            for (int i = 0; i < c.Length; i++)
            {
                Console.Write(c[i] + " ");
            }
            Console.WriteLine("Количество проходов сортировкой вставками: " + m);
 
            //Сортировка Шелла
            int[] arr = { 1, 5, 3, 6, 2, 4 };
            int step = arr.Length / 2;
            m = 0;
            while (step > 0)
            {
                for (int i = 0; i < (arr.Length - step); i++)
                {
                    int j = i;
                    while ((j >= 0) && (arr[j] > arr[j + step]))
                    {
                        int tmp = arr[j];
                        arr[j] = arr[j + step];
                        arr[j + step] = tmp;
                        j--;
                        m = m + 1;
                    }
                }
                step = step / 2;
            }
            for (int i = 0; i < c.Length; i++)
            {
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine("Количество проходов сортировкой Шелла: " + m);
 
            Console.ReadLine();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы