Какой рейтинг вас больше интересует?
|
Сортировка пузырьком и быстрая сортировка на C#2012-10-30 16:35:00 (читать в оригинале)Привет, читатель :) Вот я и решил начать, причем начать я решил не с азов (я считаю что рассматривать их не стоит) но и чего-то запредельно сложного тут не найти. Я всего лишь студент который учиться как и ты. Итак, первое о чем я хотел написать, так это о сортировке и ее реализации. Почему именно с нее? все просто, очень часто на собеседованиях требуют знания как работает тот или иной метод сортировки, или просят его реализовать, а во вторых всегда приятнее уметь самому делать то что уже реализовано. Так что то я заговорился не по делу, пора начинать. Задача: Реализовать *.DLL библиотеку которая будет реализовывать сортировку массива методом пузырька или быстрой сортировкой по возрастанию и убыванию. Так с задачей мы определились, начнем реализовывать. Подробно о этих методах сортировки можно ознакомиться тут: Сортировка пузырьком, Быстрая сортировка. Так с теорией мы тоже разобрались :) Быстро продвигаемся. Начнем с реализации метода пузырька, так как он проще: Создадим класс с именем "BubbleSort.cs" using System; Заглянем немного на перед и вспомним что потом нам придется реализовывать сортировку по возрастанию и убыванию, следовательно нам нужно свойство которое бы содержало эту информацию, давайте его добавим: private bool IsDown; Почему мы сделали именно так? все просто, потому что нам необходимо обеспечить безопасность этого свойства и мы не хотим что бы в него попало не хорошее значение, непонятно откуда. Теперь начнем самое интересное саму сортировку, так как мы не знаем какой тип данных будет в массиве используем универсальный интерфейс IComparable, объявление метода будет следующим: public Array Sort Я продемонстрирую как сделать сортировку по возрастанию, для убывания вы с легкостью сделаете сами: for (int i = 0; i < arr.Length; i++) Результатом работы данного метода будет массив той же размерности и типа что входной, однако уже упорядоченный. Теперь давай те попробуем сделать тоже самое но методом быстрой сортировки. Создадим новый класс в проекте назовем, например "QuickSort.cs" и как и в прошлый раз создадим в нем точно такое же свойство. C# с обобщенными типами, тип Т должен реализовывать интерфейс IComparable int partition Теперь добавим возможность выбора сортировки по возрастанию и убыванию. private int partitionНу вот и все. Все готово. Советую собирать проект в виде dll и использовать как библиотеку, как ее использовать описано тут в заголовке ASort, там же можно скачать то что получилось у меня. Не давно нашел пример быстрой сортировки с помощью лямбда выражений: using System;Ну вот и все, спасибо за внимание.
|
Категория «Образование»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.