А также опишите, пожалуйста, очень подробно принцип работы каждого из этих методов сортировки и напишите код для каждого из них.
Гуглишь название каждого алгоритма, и будет тебе подробнейшее описание.
Ещё можешь почитать книгу "Алгоритмы, их построение и анализ".
Или лучше стоит всегда использовать быструю сортировку?
В большинстве задач нет особой разницы, какую сортировку использовать, по тому берут то что реализовано в стандартной библиотеке - как правило это быстрая сортировка, или что-то похожее, или несколько разных алгоритмов, которые выбираются исходя из количества элементов. (например на малых объёмах более простой алгоритм может оказаться эффективнее, чем более сложный)
Какие методы сортировки вы можете посоветовать и каким/какими пользуетесь сами?
Стандартным Array.Sort()/ List.Sort() / OrderBy
Необходимость выбора более эффективного алгоритма возникает на
очень больших данных, когда счёт идёт на гигабайты, а то и терабайты, но там уже и смотрят на типичный порядок, в котором расположены данные, и прочее.