Поиск четырех максимальных элементов в массиве
Для поиска четырех максимальных элементов в массиве, он сначала сортируется с помощью алгоритма быстрой сортировки, а потом берутся 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;
}