Deluge Firmware
1.3.0
Build date: 2026.08.29
Toggle main menu visibility
Loading...
Searching...
No Matches
quick_sorter.h
1
/*
2
* Copyright © 2021-2023 Synthstrom Audible Limited
3
*
4
* This file is part of The Synthstrom Audible Deluge Firmware.
5
*
6
* The Synthstrom Audible Deluge Firmware is free software: you can redistribute it and/or modify it under the
7
* terms of the GNU General Public License as published by the Free Software Foundation,
8
* either version 3 of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
* See the GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along with this program.
15
* If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#pragma once
19
20
#include <cstdint>
21
22
class
QuickSorter {
23
public
:
24
QuickSorter(int32_t newElementSize, int32_t keyNumBits,
void
* newMemory);
25
void
sort(int32_t numElements);
26
27
private
:
28
void
quickSort(int32_t low, int32_t high);
29
int32_t partition(int32_t low, int32_t high);
30
int32_t getKey(int32_t i);
31
void
swap(int32_t i, int32_t j);
32
void
* getElementAddress(int32_t i);
33
34
const
int32_t elementSize;
35
const
uint32_t keyMask;
36
void
*
const
memory;
37
};