Как уже упоминалось, существует два способа выполнить такую задачу:
1) Вы можете отсортировать весь массив элементов n
с помощью quicksort , heapsort или любой алгоритм сортировки O (n log n)
, который вы хотите, а затем выберите наименьшие значения m
в вашем массиве. Этот метод будет работать в O(n log n)
.
2) Вы можете использовать алгоритм выбора , чтобы fink m
наименьшие элементы в вашем массиве. Потребуется время O(n)
, чтобы найти наименьшее значение kth , так как вы будете повторять этот алгоритм m раз, общее время будет m x O(n) = O(n)
.