Поиск четырех максимальных элементов в массиве

Для поиска четырех максимальных элементов в массиве, он сначала сортируется с помощью алгоритма быстрой сортировки, а потом берутся 4 крайних элемента.

Исходный код на языке C++
#include <iostream>
using namespace std;

static void quick_sort(int *arr, int low, int high) {
    // Алгоримт быстрой сортировки
    // http://ru.wikipedia.org/wiki/Быстрая_сортировка

    int i = low;
    int j = high;
    int x = arr[(low + high) / 2];
    int temp;

    do {
        while (arr[i] < x) {
            ++i;
        }
        while (arr[j] > x) {
            --j;
        }
        if (i <= j){
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++; j--;
        }
    } while (i <= j);

    if (low < j) {
        quick_sort(arr, low, j);
    }
    if (i < high) {
        quick_sort(arr, i, high);
    }
}

int main()
{
    // размер массива, задается пользователем
    int size;
    cin >> size;

    int *list = new int [size];

    // заполнить массив руками или из файла
    for (int i = 0; i < size; ++i) {
        cin >> list[i];
    }

    // отсортировать массив по возрастанию
    quick_sort(list, 0, size - 1);

    // вывести последние 4 элемента отсортированного массива
    for (int i = size - 1; i > size - 5; --i) {
        cout << list[i] << endl;
    }
    return 0;
}
Источник: code-live.ru