Complexity of finding the largest $m$ numbers in an array of size $n$
Here is an $O(n)$ algorithm solving the problem.


Use the worst-case $O(n)$ selection algorithm to determine the $n-m+1$-th order statistics. Let $k$ be this number, which is the smallest of the $m$ largest numbers we are trying to determine.
Now partition the array around the pivot $k$ using the QuickSort partition function. This step takes $O(n)$ too.
Output the $m$ largest numbers: these are given by $k$ and all of the numbers in the upper subarray generated by partition in step 2.