Я выполнял линейный поиск для поиска в коллекции, тогда я подумал, почему бы не использовать бинарный поиск, для которого мне пришлось использовать сортировку. Хотя я могу реализовать их, но я хотел бы знать, где они существуют в самом .net. Надеюсь, он будет присутствовать в .Net.У нас есть функция сортировки в .net
ответ
.NET имеет сортировку, реализованную по умолчанию, но пока вы можете указать порядок, в котором вы хотите отсортировать элементы, вы не можете указать алгоритм, с которым он сортируется.
Таким образом, вас может заинтересовать this article, который предоставляет .NET-код для абстрактной сортировки, включая реализации каждого основного метода сортировки.
Статья, предоставленная вами, кажется хорошей и очень полезной, будет комментировать больше после прочтения и ее реализации. –
От this SO ответ:
.NET использует разновидность Quicksort (медиана Седжвика 3 Quicksort).
Если бы я не ошибусь это то, что вы ищете
public class Person
{
public int age;
public string name;
public Person(int age, string name)
{
this.age = age;
this.name = name;
}
}
List<Person> people = new List<Person>();
people.Add(new Person(50, "Fred"));
people.Add(new Person(30, "John"));
people.Add(new Person(26, "Andrew"));
people.Add(new Person(24, "Xavier"));
people.Add(new Person(5, "Mark"));
people.Add(new Person(6, "Cameron"));
для поиска
// with delegate
List<Person> young = people.FindAll(delegate(Person p) { return p.age < 25; });
// with lammda
List<Person> young = people.FindAll(a=> a.age < 25);
Для сортировки
// with delegate
people.Sort(delegate(TestKlasse a, TestKlasse b) { return a.age.CompareTo(b.age); });
// with lambda function
people.Sort((a, b) => a.age.CompareTo(b.age));
Какая функция использует CompareTo внутри. сортировать ли? –
Это не похоже на то, что он ищет. Он способен искать, но хочет контролировать алгоритм поиска. –
- 1. У нас есть функция XQuery abort()
- 2. У нас есть MultiBiMap?
- 3. у нас есть отписаться функция почты в openerp?
- 4. Странная функция/класс в Python. Почему у нас это есть?
- 5. У нас есть KnowTypeResolver (DataContractResolver), как функция в JSON.NET?
- 6. У нас есть набор S потенциальных инвестиций
- 7. Есть ли у нас Java-корреспондент .NET «mustinherit» или «notinheritable»?
- 8. Есть ли у нас больше ошибок (сообщений)?
- 9. Есть ли у нас RopeJoint в JBox2d?
- 10. Почему у нас есть закрытие в JavaScript?
- 11. Почему у нас есть Function.call в javascript?
- 12. У нас есть модуль FilteringSelect в angularjs
- 13. Сколько стеков у нас есть в приложениях
- 14. Есть ли у нас автопрокат в Perl?
- 15. У нас есть напоминания в окнах 8
- 16. У нас есть getElementsByClassName в javascript?
- 17. У нас есть токен в BlackBerry push?
- 18. Почему у нас есть Redis, когда у нас есть временные таблицы MySQL?
- 19. Почему у нас нет быстрого сортировки со сложностью O (1), даже если у нас есть список из 1 предмета?
- 20. C# Почему у нас есть финализаторы
- 21. У нас есть вертикальное разбиение на mongodb ...?
- 22. cfindex, сколько пользовательских полей у нас есть
- 23. Есть ли у нас целый ряд мероприятий?
- 24. Как у нас есть философия модульного тестирования?
- 25. У нас есть многостраничное jpeg-изображение?
- 26. Есть ли у нас сеть RDF?
- 27. Возможно, у нас есть резервная копия таблицы
- 28. Почему у нас есть argv [2] [0]
- 29. у нас есть org.eclipse.jface.dialogs.InputDialog с combobox
- 30. Symfony2 подсчитайте, сколько маршрута у нас есть
должен помнить, чтобы проголосовать когда я получаю больше голосов. –