Olá Davi!
Dei uma olhada na documentação sobre o método Sort()
e o construtor que recebe apenas um array
como argumento de entrada pode ser organizado de 3 formas diferentes dependendo das circunstâncias: Insertion Sort, Heapsort e Quicksort. O método usado depende basicamente da quantidade de dados existentes no array.
Nessa aula ele fez a própria implementação de Icomparer
, que basicamente faz a comparação entre 2 objetos e retorna um valor para saber se o primeiro é maior, igual ou menor em relação ao segundo. A partir dessa informação dá para ordenar o array jogando o elemento para antes ou depois da posição original dele.
Esse é um assunto bem extenso. Sugiro que faça os dois cursos de coleções com c#: parte 1 e parte 2.
Espero ter ajudado! Bons estudos!