Новые технологии постоянно меняются, и овладение некоторыми фондами является прочной основой для обучения и постоянного обновления технологий в будущем. Мне нечего делать в последнее время. Чтобы просмотреть структуру данных, которую я изучал ранее, я реализовал алгоритм сортировки в структуре данных в JS и внедренную демонстрацию в конце этой статьи.
Простая сортировка
Пузырьковые сортировки
Сортировка пузырьков является самым простым алгоритмом сортировки, с квадратом сложности времени n, а код заключается в следующем:
функция Bubblesort (Array) {for (var i = 0; i <array.length; i ++) {for (var j = array.length; j> 0; j--) {if (array [j] <array [j - 1]) {var temp = array [j - 1]; массив [j - 1] = массив [j]; Array [j] = temp; }} /* Результат вывода* /document.write ("Это + (i + 1) +" второй цикл ・, результат: "); для (var k = 0; k <array.length; k ++) {document.write (массив [k] +", ");} документ.Прямая вставка сортировки
Прямая сортировка вставки также является простым алгоритмом сортировки, и сложность времени также квадратирована N, но производительность немного лучше, чем сортировка пузырьков. Код заключается в следующем:
Функциональный вставка (массив) {var temp; for (var i = 1; i <array.length; i ++) {var temp = array [i]; for (var j = i; j> 0 && temp <array [j - 1]; j--) {array [j] = array [j - 1]; } array [j] = temp /* Результат вывода* /document.write ("th? + i +" Результат упорядочения проходов: ") для (var n = 0; n <array.length; n ++) {document.write (array [n] +", ");} документ.Выберите сортировку
Сортировка отбора также является простым алгоритмом сортировки, со сложностью квадрата N, а производительность также немного лучше, чем сортировка пузырьков. Код заключается в следующем:
функция SelectSort (Array) {var min, temp; ; for (var i = 0; i <array.length; i ++) {min = i; for (var j = i+1; j <array.length; j ++) {if (array [min]> массив [j]) min = j; } if (min! = i) {temp = array [i]; массив [i] = массив [min]; массив [min] = temp; } /* Результат вывода* /document.write ("+ i+"Сложная сортировка
Холм
Hill Sorting - это обновление сортировки вставки. В 1959 году Хилл преодолел временную сложность квадрата N, изменив парное сравнение в простой сортировке на сравнение прыжков с шагом. Сортировка холма переходит от лучшего Nlogn на худшую N Square в соответствии с различной временной сложностью размеров шагов. Код заключается в следующем:
Функция должна (массив) {var Increment = array.length; var i var temp; // хранить var count = 0; do {increment = math.floor (Increment / 3) + 1; for (i = Increment; i <array.length; i ++) {if (array [i] <array [i - urment]) {temp = array [i]; for (var j = i - Increment; j> 0 && temp <array [j]; j - = ragment) {array [j + increment] = array [j]; } массив [j + urgent] = temp; /* Результат вывода*/ count ++; document.write ("<br />+ count+" Результат упорядочения проходов: ") для (var n = 0; n <array.length; n ++) {document.write (массив [n]+", ");} /*Сортировка кучи
Сортировка кучи - это обновление для выбора сортировки. Непрерывно построив большую верхнюю кучу или небольшую верхнюю кучу, выбрав самое большое или наименьшее значение и положив ее в переднюю часть очереди для сортировки. Сложность времени сортировки кучи в любом случае - NLOGN, код заключается в следующем:
функция heapsort (массив) {var temp; var i; for (i = math.floor (array.length / 2); i> = 0; i--) {heapadjust (array, i, array.length-1); // массив массивов построить в большую верхнюю кучу} для (i = array.length-1; i> = 0; i--) {/*Заменить корневой узел*/temp = array [i]; массив [i] = массив [0]; массив [0] = темп; /*Оставшийся массив продолжает встроен в большую верхнюю кучу*/ heapadjust (массив, 0, I - 1); /* Результат вывода*/document.write ("<br/>+ (array.length - i) .toString ()+" Массив // MAX - это конечный подход функции массива HeapAdjust (Array, Start, Max) {var temp, j; (Temp> = Array [j]) Break;Слияние сортировки
Сортировка слияния - единственная стабильная сортировка в сложной сортировке. Это сортирует, разделяя, а затем объединяет массив, который будет отсортирован. Квадрат сложности времени сортировки слияния n. Код заключается в следующем:
// Массив источника источника // DEST TARGET MARREY // S START SPOPCRING // T Целевая функция подписка MSORT (Source, Dest, S, T) {var M; // Выберите промежуточное значение var dest2 = new Array (); if (s == t) {dest [s] = source [s]; } else {m = math.floor ((s + t) / 2); MSORT (Source, Dest2, M+1, T); Merge (Dest2, Dest, S, M, T); /* Результат вывода*/документ Second Array Suppist // Общая длина слияние (источник, dest, s, m, n) {for (var j = m+1, k = s; j <= n && s <= m; k ++) {if (source [s] <source [j]) {dest [k] = источник [s ++]; if (s <= m) {for (var l = 0; l <= m - s; l ++) {dest [k+l] = источник [s+l];Быстрый сортировка
Быстрый сортинг - самый быстро известный сортинг, со сложностью NLOGN, а код заключается в следующем:
var count = 0; функция QuickSort (массив, низкий, высокий) {var temp; if (low <high) {var KeyPoint = QuickSorthelp (массив, низкий, высокий); count ++; document.write ("<br /> терминал? + count +" Результат упорядочения упорядочения? low, high) {while (low <high) {while (low <high && array [low] <= массив [High]) {High--; Array [High] = Temp;Приведенная выше резюме различных методов сортировки (реализация JS) в структуре данных - это весь контент, который я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.