This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Для сортировки массива чисел на языке C/C++ с минимальными затратами процессорных тиков можно использовать алгоритм QuickSort. | |
QuickSort часто является самым быстрым алгоритмом для сортировки случайных данных из-за его средней временной сложности | |
O(nlogn) и хороших характеристик кэш-памяти. | |
Важно также оптимизировать QuickSort для улучшения производительности в реальных условиях. | |
В моем варианте данный алгоритм оптимизирован при помощи median of three для выбора опорного | |
элемента и переключением на вставочную сортировку для маленьких массивов: | |
#include <iostream> | |
#include <algorithm> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Реализация 1: Циклический буфер на основе массива | |
#include <iostream> | |
template <typename T, std::size_t Size> | |
class CircularBufferArray { | |
private: | |
T buffer[Size]; | |
std::size_t head = 0; | |
std::size_t tail = 0; | |
bool full = false; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Функция из задания: | |
bool isEven(int value) { | |
return value % 2 == 0; | |
} | |
Плюсы: | |
1. Читаемость: Эта реализация более интуитивно понятна для большинства программистов, особенно для начинающих. | |
Она явно указывает на проверку остатка от деления. | |
2. Поддержка стандартом: Это стандартный способ проверки четности, который понятен на всех языках программирования, | |
поддерживающих оператор %. | |
Минусы: |