Однако во многих книгах это не очень четко объясняется, а разные учебные материалы имеют разные методы реализации.
Я запишу здесь простейшую идею быстрой сортировки для вашего удобства.
Я надеюсь, что независимо от того, какой язык вы используете, вы легко сможете понять идеи быстрой сортировки и методы написания из этого простого кода.
Скопируйте код кода следующим образом:
функция fast_sort(список, начало, конец) {
если (начало <конец) {
var пивотпос = раздел(список, начало, конец); //Находим базу быстрой сортировки;
fast_sort(list, start, Pivotpos - 1); //Быстрая сортировка слева;
Quick_sort(list, PivotPos + 1, End); //Быстрая сортировка правильного
}
}
//Разбивка последовательности на две области, разделенные по базовому числу, одна сторона не меньше базового числа, а другая сторона не больше базового числа
раздел функции (список, начало, конец) {
вар пивотпос = начало;
вар поворот = список [начало];
вар ТМП;
for(var я = начало + 1; я <= конец; я ++) {
если (список[i] <центр) {
tmp = список [я];
поворотные += 1;
список[i] = список[pivotpos];
список [pivotpos] = tmp;
}
}
tmp = список [начало];
список [начало] = список [пивотпос];
список [pivotpos] = tmp;
вернуть опорные позиции;
}
список вар = [8,2,4,65,2,4,7,1,9,0,2,34,12];
быстрая_сортировка (список, 0, список.длина);