Идея «быстрой сортировки» очень проста, и весь процесс сортировки требует только трех шагов:
(1) В наборе данных выберите элемент в качестве «базы» (pivot).
(2) все элементы, меньшие, чем «ссылка», перемещаются слева от «ссылки»; Все элементы, больше, чем «ссылка», перемещаются справа от «ссылки».
(3) Для двух подмножества слева и справа от «базовой линии» повторите первые и вторые шаги, пока не останется только один элемент во всех подмножествах.
Например, теперь есть набор данных {85, 24, 63, 45, 17, 31, 96, 50}. Как это сортировать?
На первом этапе выберите промежуточный элемент 45 в качестве «базы». (Справочное значение может быть выбрано произвольно, но выбрать промежуточное значение легче понять.)
Второй шаг состоит в том, чтобы сравнить каждый элемент с «базой», чтобы сформировать два подмножества, один из них «менее 45», а другой - «больше или равен 45».
Третий шаг состоит в том, чтобы повторить первые и вторые шаги для двух подмножества, пока во всех подмножествах останется только один элемент.
Ниже приведена ссылка на онлайн -информацию (здесь и здесь) о реализации вышеуказанного алгоритма на языке JavaScript.
Во -первых, определите функцию QuickSort, параметры которых являются массивом.
var QuickSort = function (arr) {};Затем проверьте количество элементов в массиве, и если оно меньше или равно 1, оно будет возвращено.
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; }};Затем выберите «Pivot» и отделите его от исходного массива, а затем определите два пустых массива, чтобы хранить два подмножества одного левого и одного справа.
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var Left = []; var right = [];};Затем начните пересекать массив, поместите элементы меньше, чем «основание» в подмножество слева, и элементы больше, чем основание, в подмножество справа.
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var Left = []; var right = []; for (var i = 0; i <arr.length; i ++) {if (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); }}};Наконец, повторяйте этот процесс непрерывно, используя рекурсию, чтобы получить отсортированный массив.
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var Left = []; var right = []; for (var i = 0; i <arr.length; i ++) {if (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); }} вернуть QuickSort (слева) .concat ([pivot], QuickSort (справа));};При его использовании просто вызовите QuickSort ().
Выше приведено подробное объяснение примера алгоритма QuickSort, представленного редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!