Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
riabokon_a
0 / 0 / 1
Регистрация: 28.11.2015
Сообщений: 70
1

Исправление quicksort сортировки

12.03.2017, 09:05. Просмотров 316. Ответов 1

Есть сортировка, сказали, что правильная пишется с 4-мя последними строками
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 public class Utilities
    {
        public static void QuickSort(int[] a)  
        {
            int r = a.Length - 1;
            int l = 0;
            int temp;
            int x = a[l + (r - l) / 2];
           
            int i = l;
            int j = r;
           
            while (i <= j)
            {
                while (a[i] < x) i++;
                while (a[j] > x) j--;
                if (i <= j)
                {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                    i++;
                    j--;
                }
            }
           // if (i < r)
            //    QuickSort(a, i, r);
 
          //  if (l < j)
            //    QuickSort(a, l, j);
        }
    }
 }
Но я не особо понимаю, что выполняют они
C#
1
2
3
4
5
// if (i < r)
            //    QuickSort(a, i, r);
 
          //  if (l < j)
            //    QuickSort(a, l, j);
(сам принцип сортировки понимаю, что написано в строках понимаю, но зачем они - сообразить не могу, а сл-но, не могу переписать их по-другому)
Так как к проекту привязаны тесты, в таком виде оставить строки нельзя, ругается
Пример теста
C#
1
2
3
4
5
6
7
 [TestMethod]
        public void TestMethod1()
        {
            var array = new[] { 3, 2, 1};
            Utilities.QuickSort(array);
            Assert.IsTrue(array[1] > array[0], "второй элемент не больше первого");
            Assert.IsTrue(array[2] > array[1]);
Что означают строки и как их переписать можно?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2017, 09:05
Ответы с готовыми решениями:

Метод сортировки QuickSort
Помогите решить задачу: С клавиатуры вводится последовательность целых чисел. Отсортировать их в...

QuickSort
Здравствуйте! Вопрос такой: дико деградирует быстрая сортировка уже от миллиона позиций в массиве,...

QuickSort в чем ошибка
выводит бесконечно &quot;Iterations :__0 &quot; namespace QuickSort { class Program { ...

Сортировка по алгоритму randomized-quicksort
Нужен код сортировки массива за алгоритмом сортировки randomized- quicksort. Не могу найти.

1
MaximSergeevith
2 / 2 / 2
Регистрация: 03.05.2016
Сообщений: 54
12.03.2017, 09:36 2
QSort традиционно реализуется как функция, которой на вход подается массив a и значения l и r, удовлетворяющие условию: 0\le{l}\le{r}\le{n}, где n — длина массива. Вызов QSort(a,l,r) сортирует участок массива с индексами от l до r включительно. Для полной сортировки массива нужно вызвать QSort(a,0,n-1). Общий принцип работы Qsort следующий:

Выбирается опорное значение x, равное x=a[i], где {l}\le{i}\le{r}
С помощью индексов i и j массив а делится на три части: l\le{j}\le{i}\le{r}
a)[l,i)содержит все элементы, меньше х
б)[j,i)содержит все элементы, равные х
в)[i,r]содержит все элементы, больше х
Элементы средней части уже заняли свое относительное положение и для полной сортировки массива достаточно отдельно отсортировать левую и правую части, если в них более одного элемента.
Информация о QSort по этой ссылке http://cybern.ru/qsort.html
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2017, 09:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

QuickSort: сколько дополнительной памяти он занимает
Всем доброго времени суток! Мне не даёт покоя QuickSort, всё хочется узнать сколько же он...

Сортировки Heapsort, Mergesort, Quicksort
Здравствуйте, очень срочно нужна помощь. Помогите сопоставить несколько сортировок в одном файле....

Методы сортировки: QuickSort и сортировка вставкой
Помогите добавить сортировки в программу. Упорядочить по неубыванию массив структур по заданному...

Реализация алгоритма быстрой сортировки quickSort
это алгоритм быстрой сортировки quickSort прошу напишите значение строк файл исходного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.