^ – Шаблонная Быстрая Сортировка – ^ – C++ (general), Microsoft Visual C++ – Алгоритмы – База кода

Скачать

Название (оригинал): ^ – Templated Quicksort – ^

Описание:
Англ (оригинал)This is a quicksort algorithm with can be used with any data type that can make use of the < operator. You pass in a vector of the data type and the algorithm sorts it. The algorithm works by splitting the vector into 2 (hopefully) equal parts. It recursively does this until the 2 parts are so small that determining which part goes where becomes a trivial matter. After the vector is split and sorted, they are combined to for the original, in sorted order. This algorithm will sort in ascending order regardless of data type (assuming the < operator is functioning properly). Lastly, if anyone has improvements that can be made to my code, please send them to me and I would be happy to upload them.
NOTE: This algorithm is NOT an in place algorithm. It will use exponentially large amounts of memory as the amount of values in the vector increase. Also note that this algorithm has an O(n^2) worst case complexity and must assumed for all production purposes.
Рус (машинный)Это быстрая сортировка алгоритм может быть использован с любым типом данных, который можно использовать оператор<. Вы проходите в вектор типа данных и алгоритм сортирует его. Алгоритм работает путем расщепления вектора в 2 (надеюсь) равных частей. Он делает это рекурсивно до тех пор, пока 2 части настолько малы, что определение того, какие части идет туда, куда становится тривиальным вопросом. После вектора разделяется и сортируется, они объединяются и для оригинала, в алфавитном порядке. Этот алгоритм будет сортировать в возрастающем порядке независимо от типа данных (предполагая, что < оператор работает правильно). Наконец, если у кого есть улучшения, которые можно сделать, чтобы мой код, пожалуйста, пришлите их мне и я был бы счастлив, чтобы загрузить их.
Примечание: этот алгоритм не является алгоритмом в место. Он будет использовать экспоненциально большие объемы памяти как сумма значений в векторе увеличить. Также обратите внимание, что этот алгоритм работает за o(н^2) в худшем случае сложность и должны предполагать для всех производственных целей.

база кода