2010-06-28 3 views
2

Я выполнял линейный поиск для поиска в коллекции, тогда я подумал, почему бы не использовать бинарный поиск, для которого мне пришлось использовать сортировку. Хотя я могу реализовать их, но я хотел бы знать, где они существуют в самом .net. Надеюсь, он будет присутствовать в .Net.У нас есть функция сортировки в .net

+0

должен помнить, чтобы проголосовать когда я получаю больше голосов. –

ответ

2

.NET имеет сортировку, реализованную по умолчанию, но пока вы можете указать порядок, в котором вы хотите отсортировать элементы, вы не можете указать алгоритм, с которым он сортируется.

Таким образом, вас может заинтересовать this article, который предоставляет .NET-код для абстрактной сортировки, включая реализации каждого основного метода сортировки.

+1

Статья, предоставленная вами, кажется хорошей и очень полезной, будет комментировать больше после прочтения и ее реализации. –

3

От this SO ответ:

.NET использует разновидность Quicksort (медиана Седжвика 3 Quicksort).

4

Если бы я не ошибусь это то, что вы ищете

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)); 
+0

Какая функция использует CompareTo внутри. сортировать ли? –

+0

Это не похоже на то, что он ищет. Он способен искать, но хочет контролировать алгоритм поиска. –

Смежные вопросы