Алгоритм поиска и сортировки JavaScript: сортировка по Gnome
Алгоритм поиска и сортировки JavaScript: упражнение 10 с решением
Напишите программу на JavaScript для сортировки списка элементов с использованием сортировки Gnome.
Сортировка гномов - это алгоритм сортировки, первоначально предложенный доктором Хамидом Сарбази-Азадом (профессором вычислительной техники в Шарифском технологическом университете) в 2000 году и названный «глупой сортировкой» (не путать с богосортом), а затем описанный Диком. Грун и назвал "гномом рода".
Алгоритм всегда находит первое место, где два соседних элемента находятся в неправильном порядке, и меняет их местами. Он использует тот факт, что выполнение обмена может привести к появлению новой неупорядоченной соседней пары только рядом с двумя замененными элементами.
Визуализация вида гномов :
Пример решения: -
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript program of Gnome sort</title>
</head>
<body></body>
</html>
Код JavaScript:
function gnomeSort(arr)
{
function moveBack(i)
{
for( ; i > 0 && arr[i-1] > arr[i]; i--)
{
var t = arr[i];
arr[i] = arr[i-1];
arr[i-1] = t;
}
}
for (var i = 1; i < arr.length; i++)
{
if (arr[i-1] > arr[i]) moveBack(i);
}
return arr;
}
var arra = [3, 0, 2, 5, -1, 4, 1];
console.log("Original Array Elements");
console.log(arra);
console.log("Sorted Array Elements");
console.log(gnomeSort(arra));
Пример вывода:
Оригинальные элементы массива [3,0,2,5, -1,4,1] Сортированные элементы массива [-1,0,1,2,3,4,5]
Блок - схема:
Демонстрация в реальном времени:
См. Поиск и сортировка-алгоритм-упражнение- ручка Pen от w3resource ( @ w3resource ) на CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на JavaScript для сортировки списка элементов с помощью Comb sort.
Далее: Напишите программу JavaScript для сортировки списка элементов с использованием сортировки Counting.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования