ПредишенСледващото

Можете да използвате статистиката на поръчката.

Рекурсивно разделят subarray на две части. Отделете малко на члена на subarray подкрепа (въртене), и да си поделят subarray че вече членът подкрепа и по-малки. Ако тези, които са включени повече от необходимото, рекурсивно обработват дясната ръка, ако по-малко - ляво, ако, както искате - отговорът е намерен.

разделяне алгоритъм (дял) е същата като тази в Quicksort (Quicksort) се използва, като разликата е, че само един клон е разделена.

Най-добрият и средно време - O (N), най-лошото - O (N ^ 2)

Методи за лечение са същите като тези на бързасортировка - правилният избор ос. Можете да изберете произволно.

Вижте също: K-ми Поръчка статистика, медианата.

Алгоритъмът се нарича quickselect.

Отговорено 10 Ноември '16 в 09:54

Имам решение:

Ако искате да получите максимален брой н, тогава ние се създаде опашка. След това минава през събирането, ако размерът на опашката е по-малко от предварително определен брой, а след това просто да добавите към текущия елемент. В противен случай, ние сравняваме с минимален елемент в опашката. Ако текущият елемент е по-голяма след това извадете минимум и да добавите нова.

Отговорено 10 Ноември '16 в 09:10

измисли, тук, които могат и ще помогне))

Отговорено 24 '16 ноември в 12:42

Трябваше да направя подредени флага? той винаги е вярно, но това е къде да бъдат проверени - Grundy 24 Ноември '16 в 12:45

По-добре е да се използва стандартен вид от патериците :) - gil9red 24 '16 ноември в 12:58

Свързани статии

Подкрепете проекта - споделете линка, благодаря!