Есть ответ 👍

Чи можна складену підзадачу вважати алгоритмом

207
467
Посмотреть ответы 1

Ответы на вопрос:

evenen
4,7(52 оценок)

Пузырьковая сортировка на javascript

метод сортировки, который многие обычно осваивают раньше других из-за его исключительной простоты, называется  пузырьковой сортировкой  (bubble sort), в рамках которой выполняются следующие действия: проход по файлу с обменом местами соседних элементов, нарушающих заданный порядок, до тех пор, пока файл не будет окончательно отсортирован. основное достоинство пузырьковой сортировки заключается в том, что его легко реализовать в виде программы. для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. сложность алгоритма:  

o(n2)o(n2).

суть алгоритма пузырьковой сортировки состоит в сравнении соседних элементов и их обмене, если они находятся не в надлежащем порядке. неоднократно выполняя это действие, мы заставляем наибольший элемент "всплывать" к концу массива. следующий проход к всплыванию второго наибольшего элемента, и так до тех пор, пока после 

n−1n−1  итерации массив не будет полностью отсортирован.

function bubblesort(a) // a - массив, который нужно{ // отсортировать по возрастанию. var n = a.length; for (var i = 0; i < n-1; i++) { for (var j = 0; j < n-1-i; j++) { if (a[j+1] < a[j]) { var t = a[j+1]; a[j+1] = a[j]; a[j] = t; } } } return a; // на выходе сортированный по возрастанию массив a.} сортировка выбором на javascript

сортировка выбором начинается с поиска наименьшего элемента в списке и обмена его с первым элементом (таким образом, наименьший элемент помещается в окончательную позицию в отсортированном массиве). затем мы сканируем массив, начиная со второго элемента, в поисках наименьшего среди оставшихся 

n−1n−1элементов и обмениваем найденный наименьший элемент со вторым, т.е. помещаем второй наименьший элемент в окончательную позицию в отсортированном массиве. в общем случае, при i-ом проходе по списку  (0⩽i⩽n−2)(0⩽i⩽n−2)  алгоритм ищет наименьший элемент среди последних  n−in−i  элементов и обменивает его с  a[i]a[i]. после выполнения  n−1n−1  проходов список оказывается отсортирован.

function selectionsort(a) // a - массив, который нужно{ // отсортировать по возрастанию. var n = a.length; for (var i = 0; i < n-1; i++) { var min = i; for (var j = i+1; j < n; j++) { if (a[j] < a[min]) min = j; } var t = a[min]; a[min] = a[ i ]; a[ i ] = t; } return a; // на выходе сортированный по возрастанию массив a.} сортировка вставками на javascript

на каждом шаге алгоритма сортировки встаками выбирается один из элементов входного массива и вставляется на нужную позицию в уже отсортированном массиве, до тех пор, пока входных элементы не будут исчерпана. метод выбора очередного элемента из исходного массива произволен; может использоваться практически любой алгоритм выбора. обычно (и с целью получения устойчивого алгоритма сортировки), элементы вставляются по порядку их появления во входном массиве. в ниже реализации на javascript алгоритма сортировки встаками используется именно эта стратегия выбора.

function insertionsort(a) // a - массив, который нужно{ // отсортировать по возрастанию. var n = a.length; for (var i = 0; i < n; i++) { var v = a[ i ], j = i-1; while (j > = 0 & & a[j] > v) { a[j+1] = a[j]; j--; } a[j+1] = v; } return a; // на выходе сортированный по возрастанию массив a.} сортировка шелла на javascript function shellsort(a){ var n = a.length, i = math.floor(n/2); while (i > 0) { for (var j = 0; j < n; j++) { var k = j, t = a[j]; while (k > = i & & a[k-i] > t) { a[k] = a[k-i]; k -= i; } a[k] = t; } i = (i==2) ? 1 : math.floor(i*5/11); } return a; } сортировка подсчётом на javascript

вначале для каждого элемента массива подсчитывается количество элементов, меньших, чем он, и на основе этой информации текущий элемент помещается в соответствующее место отсортированного массива. ниже простая реализация алгоритм сортировки массива методом подсчета на javascript.

function simplecountingsort(a){ var n = a.length, count = [], b = []; for (var i = 0; i < n; i++) count[ i ] = 0; for (var i = 0; i < n-1; i++) { for (var j = i+1; j < n; j++) { if (a[ i ] < a[j]) count[j]++; else count[ i ]++; } } for (var i = 0; i < n; i++) b[count[ i ]] = a[ i ]; return b; }

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS