Это тема для всего семестра. В конечном итоге мы говорим о верхней границе числа операций, которые должны быть выполнены до завершения алгоритма, в зависимости от размера ввода. Мы не включаем коэффициенты (т.е. 10N против 4N ^ 2), потому что для достаточно большого N это уже не имеет значения.
Как доказать, что такое большой алгоритм, может быть довольно сложно. Это требует формального доказательства и существует множество методов. Часто хороший способ adhoc состоит в том, чтобы просто посчитать, сколько проходов данных делает алгоритм. Например, если ваш алгоритм вложен в циклы, то для каждого из N элементов вы должны работать N раз. Как правило, это будет O (N ^ 2).
Что касается сортировки слиянием, вы делите данные пополам снова и снова. Это занимает log2 (n). И для каждого разделения вы делаете передачу данных, которая дает N log (n).
Быстрая сортировка немного сложнее, потому что в среднем случае это также n log (n). Вы должны представить, что произойдет, если ваш раздел разбивает данные таким образом, что каждый раз, когда вы получаете только один элемент на одной стороне раздела. Тогда вам нужно будет разделить данные n раз вместо log (n) раз, что делает их N ^ 2. Преимущество быстрой сортировки состоит в том, что это можно сделать на месте, и мы обычно приближаемся к производительности N log (n).