Попытка быстрой сортировки массива суффиксов ⇐ C++
Попытка быстрой сортировки массива суффиксов
Я пытаюсь применить быструю сортировку к массиву суффиксов. Массив суффиксов содержит все начальные индексы строки. Первый раздел работает, остальные нет. Я просмотрел множество примеров кода быстрой сортировки и не могу понять, почему сортировка выполняется неправильно. В настоящее время я сортирую массив только от 0 до 20 в качестве теста.
main.cpp
#include #include int CompareSuffix(const std::string &text, unsigned int suffixIndexA, unsigned int suffixIndexB); unsigned int suffixArrayPartition(const std::string &text, unsigned int *suffixArray, unsigned int left, unsigned int right); void suffixArrayQuickSort(const std::string &text, unsigned int *suffixArray, unsigned int left, unsigned int right); void suffixArraySwap(unsigned int *suffixArray, unsigned int indexA, unsigned int indexB); int main(int argc, char const *argv[]) { std::string pi = "141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067"; std::string search = "209"; // индекс 3 unsigned int *suffixArray = новый unsigned int[pi.size()]; for (int i = 0; i
Я пытаюсь применить быструю сортировку к массиву суффиксов. Массив суффиксов содержит все начальные индексы строки. Первый раздел работает, остальные нет. Я просмотрел множество примеров кода быстрой сортировки и не могу понять, почему сортировка выполняется неправильно. В настоящее время я сортирую массив только от 0 до 20 в качестве теста.
main.cpp
#include #include int CompareSuffix(const std::string &text, unsigned int suffixIndexA, unsigned int suffixIndexB); unsigned int suffixArrayPartition(const std::string &text, unsigned int *suffixArray, unsigned int left, unsigned int right); void suffixArrayQuickSort(const std::string &text, unsigned int *suffixArray, unsigned int left, unsigned int right); void suffixArraySwap(unsigned int *suffixArray, unsigned int indexA, unsigned int indexB); int main(int argc, char const *argv[]) { std::string pi = "141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067"; std::string search = "209"; // индекс 3 unsigned int *suffixArray = новый unsigned int[pi.size()]; for (int i = 0; i
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему подсветка синтаксиса KDevelop может отображать коды без суффиксов?
Anonymous » » в форуме C++ - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-