Весь курс CS50 - [ Ссылка ]
В компьютерных науках происходит что-то хорошее, когда мы разделяем и властвуем. Делим массив на отсортированную и неотсортированную части, и уменьшаем вторую за счет первой. Каким образом? Узнаете из этого ролика CS50. Советуем после просмотра написать код этой сортировки самостоятельно :)
Ещё видео!