Хай! Задача - найди ошибку!)
Код:
import React from "react";
const ToDoList = ({ items }) => {
return (
<div>
<ul>
{items.length && items.map(item => <li key={item.id}>{item.text}</li>)}
</ul>
</div>
);
};
const App = () => {
return (
<div>
<h2>Сегодня:</h2>
<ToDoList
items={[
{ id: 1, text: "Полить цветы" },
{ id: 2, text: "Помыть машину" },
{ id: 3, text: "Выкинуть мусор" },
]}
/>
<h2>Завтра:</h2>
<ToDoList items={[]} />
</div>
);
};
export default App;
Решение:
Решение
Если вы запустите код, вы заметите, что список дел на завтра отображает 0.
Это связано с тем, как JavaScript обрабатывает оператор &&. В React && обычно используется для условного рендеринга, если левая часть оператора && является ложной, тогда оператор && останавливает дальнейшее вычисление выражения.
true && "hello world" // "hello world" will be rendered
false && "hello world" // nothing will be rendered
Это работает, потому что React ничего не отобразит для логического значения false. Однако проблема с компонентом ToDoList заключается в том, что мы проверяем items.length, который возвращает 0, если элементов нет, что React отобразит как допустимый фрагмент JSX.
Код:
import React from "react";
const ToDoList = ({ items }) => {
return (
<div>
<ul>
{items.length && items.map(item => <li key={item.id}>{item.text}</li>)}
</ul>
</div>
);
};
const App = () => {
return (
<div>
<h2>Сегодня:</h2>
<ToDoList
items={[
{ id: 1, text: "Полить цветы" },
{ id: 2, text: "Помыть машину" },
{ id: 3, text: "Выкинуть мусор" },
]}
/>
<h2>Завтра:</h2>
<ToDoList items={[]} />
</div>
);
};
export default App;
Решение:
Решение
Это связано с тем, как JavaScript обрабатывает оператор &&. В React && обычно используется для условного рендеринга, если левая часть оператора && является ложной, тогда оператор && останавливает дальнейшее вычисление выражения.
true && "hello world" // "hello world" will be rendered
false && "hello world" // nothing will be rendered
Это работает, потому что React ничего не отобразит для логического значения false. Однако проблема с компонентом ToDoList заключается в том, что мы проверяем items.length, который возвращает 0, если элементов нет, что React отобразит как допустимый фрагмент JSX.
Привет! Пора решить задачу!
Напишите функцию JavaScript, чтобы проверить, является ли данный тип значения символом или нет.
Решение:
function is_char(value)
{
if ( Object.prototype.toString.call (value) !=='[object String]')
return false;
return value && value.length === 1;
}
console.log(is_char('f'));
console.log(is_char('*'));
Напишите функцию JavaScript, чтобы проверить, является ли данный тип значения символом или нет.
Решение:
{
if (
return false;
return value && value.length === 1;
}
console.log(is_char('f'));
console.log(is_char('*'));
Привет! Пора решать задачу!
Напишите функцию JavaScript для объединения данной строки n раз (по умолчанию 1).
Тестовые данные :
console.log (повтор ( 'Ха!'));
console.log (повтор ( 'Ха!', 2));
console.log (повтор ( 'Ха!', 3));
«Ха!»
«Ха! Ха!»
«Ха! Ха! Ха!»
Решение:
repeat = function repeat(str, count) {
if(typeof(count) =="undefined") {
count =1;
}
return count < 1 ? '' : new Array(count + 1).join(str);
}
console.log(repeat('Ha!'));
console.log(repeat('Ha!',2));
console.log(repeat('Ha!',3));
Ответ:
Ха!
Ха! Ха!
Ха! Ха! Ха!
Напишите функцию JavaScript для объединения данной строки n раз (по умолчанию 1).
Тестовые данные :
console.log (повтор ( 'Ха!'));
console.log (повтор ( 'Ха!', 2));
console.log (повтор ( 'Ха!', 3));
«Ха!»
«Ха! Ха!»
«Ха! Ха! Ха!»
Решение:
if(typeof(count) =="undefined") {
count =1;
}
return count < 1 ? '' : new Array(count + 1).join(str);
}
console.log(repeat('Ha!'));
console.log(repeat('Ha!',2));
console.log(repeat('Ha!',3));
Ха! Ха!
Ха! Ха! Ха!
Хай! Напишите программу на JavaScript для сортировки списка элементов с помощью Flash-сортировки.
Flashsort - это алгоритм сортировки распределения, показывающий линейную вычислительную сложность O (n) для равномерно распределенных наборов данных и относительно небольшую потребность в дополнительной памяти. Оригинальная работа была опубликована в 1998 году Карлом-Дитрихом Нойбертом.
Основная идея флэш-сортировки заключается в том, что в наборе данных с известным распределением легко сразу оценить, где должен быть размещен элемент после сортировки, когда известен диапазон набора.
Решение:
function flash_sort(arr)
{
var max = 0, min = arr[0];
var n = arr.length;
var m = ~~(0.45 * n);
var l = new Array(m);
for (var i = 1; i < n; ++i) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > arr[max]) {
max = i;
}
}
if (min === arr[max]) {
return arr;
}
var c1 = (m - 1) / (arr[max] - min);
for (var k = 0; k < m; k++) {
l[k] = 0;
}
for (var j = 0; j < n; ++j) {
k = ~~(c1 * (arr[j] - min));
++l[k];
}
for (var p = 1; p < m; ++p) {
l[p] = l[p] + l[p - 1];
}
var hold = arr[max];
arr[max] = arr[0];
arr[0] = hold;
//permutation
var move = 0, t, flash;
j = 0;
k = m - 1;
while (move < (n - 1)) {
while (j > (l[k] - 1)) {
++j;
k = ~~(c1 * (arr[j] - min));
}
if (k < 0) break;
flash = arr[j];
while (j !== l[k]) {
k = ~~(c1 * (flash - min));
hold = arr[t = --l[k]];
arr[t] = flash;
flash = hold;
++move;
}
}
//insertion
for (j = 1; j < n; j++) {
hold = arr[j];
i = j - 1;
while (i >= 0 && arr[i] > hold) {
arr[i + 1] = arr[i--];
Вывод:
Оригинальные элементы массива
[3,0,2,5, -1,4,1]
Сортированные элементы массива
[-1,0,1,2,3,4,5]
}
arr[i + 1] = hold;
}
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(flash_sort(arra, 0, 5));
Flashsort - это алгоритм сортировки распределения, показывающий линейную вычислительную сложность O (n) для равномерно распределенных наборов данных и относительно небольшую потребность в дополнительной памяти. Оригинальная работа была опубликована в 1998 году Карлом-Дитрихом Нойбертом.
Основная идея флэш-сортировки заключается в том, что в наборе данных с известным распределением легко сразу оценить, где должен быть размещен элемент после сортировки, когда известен диапазон набора.
Решение:
{
var max = 0, min = arr[0];
var n = arr.length;
var m = ~~(0.45 * n);
var l = new Array(m);
for (var i = 1; i < n; ++i) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > arr[max]) {
max = i;
}
}
if (min === arr[max]) {
return arr;
}
var c1 = (m - 1) / (arr[max] - min);
for (var k = 0; k < m; k++) {
l[k] = 0;
}
for (var j = 0; j < n; ++j) {
k = ~~(c1 * (arr[j] - min));
++l[k];
}
for (var p = 1; p < m; ++p) {
l[p] = l[p] + l[p - 1];
}
var hold = arr[max];
arr[max] = arr[0];
arr[0] = hold;
//permutation
var move = 0, t, flash;
j = 0;
k = m - 1;
while (move < (n - 1)) {
while (j > (l[k] - 1)) {
++j;
k = ~~(c1 * (arr[j] - min));
}
if (k < 0) break;
flash = arr[j];
while (j !== l[k]) {
k = ~~(c1 * (flash - min));
hold = arr[t = --l[k]];
arr[t] = flash;
flash = hold;
++move;
}
}
//insertion
for (j = 1; j < n; j++) {
hold = arr[j];
i = j - 1;
while (i >= 0 && arr[i] > hold) {
arr[i + 1] = arr[i--];
[3,0,2,5, -1,4,1]
Сортированные элементы массива
[-1,0,1,2,3,4,5]
}
arr[i + 1] = hold;
}
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(flash_sort(arra, 0, 5));
Привет! Выйдите из цикла, изменив только две отмеченные строки. Результат в консоли сейчас останавливается на 9 9. Должен на 5 4.
Решение:
cycle: for (let i = 0; i < 10; i++) { //! Эту строку можно изменить
for (let j = 0; j < 10; j++) {
if (i === 5 && j === 5) {
break cycle; //! Эту строку можно изменить
}
console.log(i, j);
}
}
Решение:
for (let j = 0; j < 10; j++) {
if (i === 5 && j === 5) {
break cycle; //! Эту строку можно изменить
}
console.log(i, j);
}
}
Напишите функцию JavaScript, чтобы получить наименьшее общее кратное (LCM) из двух чисел.
Замечания :
Согласно Википедии - общее число - это число, кратное двум или более целым числам. Общие кратные 3 и 4 равны 0, 12, 24, .... Наименьшее общее кратное (LCM) двух чисел - это наименьшее число (не ноль), которое кратно обоим.
Тестовые данные :
console.log (lcm_two_numbers (3,15));
console.log (lcm_two_numbers (10,15));
Выход :
15
30
Решение:
function lcm_two_numbers(x, y) {
if ((typeof x !=='number') || (typeof y !=='number'))
return false;
return (!x || !y) ? 0 : Math.abs((x * y) / gcd_two_numbers(x, y));
}
function gcd_two_numbers(x, y) {
x = Math.abs(x);
y = Math.abs(y);
while(y) {
var t = y;
y = x % y;
x = t;
}
return x;
}
console.log(lcm_two_numbers(3,15));
console.log(lcm_two_numbers(10,15));
Copy
Пример вывода:
15
30
Замечания :
Согласно Википедии - общее число - это число, кратное двум или более целым числам. Общие кратные 3 и 4 равны 0, 12, 24, .... Наименьшее общее кратное (LCM) двух чисел - это наименьшее число (не ноль), которое кратно обоим.
Тестовые данные :
console.log (lcm_two_numbers (3,15));
console.log (lcm_two_numbers (10,15));
Выход :
15
30
Решение:
if ((typeof x !=='number') || (typeof y !=='number'))
return false;
return (!x || !y) ? 0 : Math.abs((x * y) / gcd_two_numbers(x, y));
}
function gcd_two_numbers(x, y) {
x = Math.abs(x);
y = Math.abs(y);
while(y) {
var t = y;
y = x % y;
x = t;
}
return x;
}
console.log(lcm_two_numbers(3,15));
console.log(lcm_two_numbers(10,15));
Copy
30
Привет! Напишите программу на JavaScript для сортировки списка элементов с использованием Comb sort.
Расческа - это разновидность пузырчатой сортировки. Подобно сортировке «Шелл», сортировка «Гребень» увеличивает разрыв, используемый в сравнениях и обменах. Некоторые реализации используют сортировку вставкой, когда зазор меньше определенной величины. Основная идея состоит в том, чтобы исключить черепах или небольшие значения в конце списка, поскольку в пузырьковой сортировке они значительно замедляют сортировку. Кролики, большие значения в начале списка, не представляют проблемы в пузырьковой сортировке.
В пузырьковой сортировке, когда сравниваются любые два элемента, они всегда имеют разрыв 1. Основная идея гребенчатой сортировки состоит в том, что разрыв может быть намного больше 1.
Пример вывода:
Оригинальные элементы массива
[3,0,2,5, -1,4,1]
Сортированные элементы массива
[-1,0,1,2,3,4,5]
P.s решение будет позже)
Расческа - это разновидность пузырчатой сортировки. Подобно сортировке «Шелл», сортировка «Гребень» увеличивает разрыв, используемый в сравнениях и обменах. Некоторые реализации используют сортировку вставкой, когда зазор меньше определенной величины. Основная идея состоит в том, чтобы исключить черепах или небольшие значения в конце списка, поскольку в пузырьковой сортировке они значительно замедляют сортировку. Кролики, большие значения в начале списка, не представляют проблемы в пузырьковой сортировке.
В пузырьковой сортировке, когда сравниваются любые два элемента, они всегда имеют разрыв 1. Основная идея гребенчатой сортировки состоит в том, что разрыв может быть намного больше 1.
Пример вывода:
[3,0,2,5, -1,4,1]
Сортированные элементы массива
[-1,0,1,2,3,4,5]
Хай! Сегодня твоя задача: написать функцию range, принимающую два аргумента, начало и конец диапазона, и возвращающую массив, который содержит все числа из него, включая начальное и конечное.
Затем напишите функцию sum, принимающую массив чисел и возвращающую их сумму. Запустите указанную выше инструкцию и убедитесь, что она возвращает 55.В качестве бонуса дополните функцию range, чтобы она могла принимать необязательный третий аргумент – шаг для построения массива. Если он не задан, шаг равен единице. Вызов функции range(1, 10, 2) должен будет вернуть [1, 3, 5, 7, 9]. Убедитесь, что она работает с отрицательным шагом так, что вызов range(5, 2, -1) возвращает [5, 4, 3, 2].
P.s Решение будет позже)
Затем напишите функцию sum, принимающую массив чисел и возвращающую их сумму. Запустите указанную выше инструкцию и убедитесь, что она возвращает 55.В качестве бонуса дополните функцию range, чтобы она могла принимать необязательный третий аргумент – шаг для построения массива. Если он не задан, шаг равен единице. Вызов функции range(1, 10, 2) должен будет вернуть [1, 3, 5, 7, 9]. Убедитесь, что она работает с отрицательным шагом так, что вызов range(5, 2, -1) возвращает [5, 4, 3, 2].
P.s Решение будет позже)
Готовый Код | Frontend
Привет! Напишите программу на JavaScript для сортировки списка элементов с использованием Comb sort. Расческа - это разновидность пузырчатой сортировки. Подобно сортировке «Шелл», сортировка «Гребень» увеличивает разрыв, используемый в сравнениях и обменах.…
Решение:
function combsort(arr)
{
function is_array_sorted(arr) {
var sorted = true;
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
sorted = false;
break;
}
}
return sorted;
}
var iteration_count = 0;
var gap = arr.length - 2;
var decrease_factor = 1.25;
// Repeat iterations Until array is not sorted
while (!is_array_sorted(arr))
{
// If not first gap Calculate gap
if (iteration_count > 0)
gap = (gap == 1) ? gap : Math.floor(gap / decrease_factor);
// Set front and back elements and increment to a gap
var front = 0;
var back = gap;
while (back <= arr.length - 1)
{
// Swap the elements if they are not ordered
if (arr[front] > arr[back])
{
var temp = arr[front];
arr[front] = arr[back];
arr[back] = temp;
}
// Increment and re-run swapping
front += 1;
back += 1;
}
iteration_count += 1;
}
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(combsort(arra));
{
function is_array_sorted(arr) {
var sorted = true;
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
sorted = false;
break;
}
}
return sorted;
}
var iteration_count = 0;
var gap = arr.length - 2;
var decrease_factor = 1.25;
// Repeat iterations Until array is not sorted
while (!is_array_sorted(arr))
{
// If not first gap Calculate gap
if (iteration_count > 0)
gap = (gap == 1) ? gap : Math.floor(gap / decrease_factor);
// Set front and back elements and increment to a gap
var front = 0;
var back = gap;
while (back <= arr.length - 1)
{
// Swap the elements if they are not ordered
if (arr[front] > arr[back])
{
var temp = arr[front];
arr[front] = arr[back];
arr[back] = temp;
}
// Increment and re-run swapping
front += 1;
back += 1;
}
iteration_count += 1;
}
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(combsort(arra));
Привет! Задача для тебя:
Напишите шаблон, который соответствует адресам электронной почты.
Часть личной информации содержит следующие символы ASCII.
Прописные (AZ) и строчные (az) английские буквы.
Цифры (0-9).
Персонажи ! # $% & '* + - / =? ^ _ `{| } ~
Символ. (Точка, точка или полная остановка) при условии, что он не является первым или последним символом и не будет следовать один за другим.
P.s Решение будет позже)
Напишите шаблон, который соответствует адресам электронной почты.
Часть личной информации содержит следующие символы ASCII.
Прописные (AZ) и строчные (az) английские буквы.
Цифры (0-9).
Персонажи ! # $% & '* + - / =? ^ _ `{| } ~
Символ. (Точка, точка или полная остановка) при условии, что он не является первым или последним символом и не будет следовать один за другим.
P.s Решение будет позже)
Хай! Напишите программу на JavaScript для сортировки списка элементов, используя сортировку Counting.
Согласно Википедии "В компьютерных науках сортировка подсчета - это алгоритм сортировки коллекции объектов по ключам, которые являются маленькими целыми числами; то есть это алгоритм целочисленной сортировки. Он работает путем подсчета количества объектов, у которых есть каждый отдельный ключ значение и использование арифметики по этим подсчетам для определения позиций каждого значения ключа в выходной последовательности. Время его выполнения линейно по количеству элементов и разности между максимальным и минимальным значениями ключа, поэтому оно подходит только для непосредственного использования в ситуациях, когда изменение в ключах не намного больше, чем количество элементов. Однако оно часто используется в качестве подпрограммы в другом алгоритме сортировки, основанном на сортировке, который может обрабатывать большие ключи более эффективно ».
Согласно Википедии "В компьютерных науках сортировка подсчета - это алгоритм сортировки коллекции объектов по ключам, которые являются маленькими целыми числами; то есть это алгоритм целочисленной сортировки. Он работает путем подсчета количества объектов, у которых есть каждый отдельный ключ значение и использование арифметики по этим подсчетам для определения позиций каждого значения ключа в выходной последовательности. Время его выполнения линейно по количеству элементов и разности между максимальным и минимальным значениями ключа, поэтому оно подходит только для непосредственного использования в ситуациях, когда изменение в ключах не намного больше, чем количество элементов. Однако оно часто используется в качестве подпрограммы в другом алгоритме сортировки, основанном на сортировке, который может обрабатывать большие ключи более эффективно ».
Готовый Код | Frontend
Хай! Напишите программу на JavaScript для сортировки списка элементов, используя сортировку Counting. Согласно Википедии "В компьютерных науках сортировка подсчета - это алгоритм сортировки коллекции объектов по ключам, которые являются маленькими целыми…
Решение:
function countingSort(arr, min, max)
{
var i, z = 0, count = [];
for (i = min; i <= max; i++) {
count[i] = 0;
}
for (i=0; i < arr.length; i++) {
count[arr[i]]++;
}
for (i = min; i <= max; i++) {
while (count[i]-- > 0) {
arr[z++] = i;
}
}
return arr;
}
var arra = [3, 0, 2, 5, 4, 1];
console.log(arra.length);
console.log("Original Array Elements");
console.log(arra);
console.log("Sorted Array Elements");
console.log(countingSort(arra, 0, 5));
{
var i, z = 0, count = [];
for (i = min; i <= max; i++) {
count[i] = 0;
}
for (i=0; i < arr.length; i++) {
count[arr[i]]++;
}
for (i = min; i <= max; i++) {
while (count[i]-- > 0) {
arr[z++] = i;
}
}
return arr;
}
var arra = [3, 0, 2, 5, 4, 1];
console.log(arra.length);
console.log("Original Array Elements");
console.log(arra);
console.log("Sorted Array Elements");
console.log(countingSort(arra, 0, 5));
Привет! Пора написать программу на JavaScript для сортировки списка элементов с использованием Bogosort.
В информатике bogosort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует перестановки своего ввода, пока не найдет отсортированный. Это не полезно для сортировки, но может использоваться в образовательных целях, чтобы противопоставить его другим более реалистичным алгоритмам.
P.s Решение будет позже)
В информатике bogosort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует перестановки своего ввода, пока не найдет отсортированный. Это не полезно для сортировки, но может использоваться в образовательных целях, чтобы противопоставить его другим более реалистичным алгоритмам.
P.s Решение будет позже)
Пора решать задачи!
Напишите программу на JavaScript для сортировки списка элементов с использованием сортировки Gnome.
Сортировка гномов - это алгоритм сортировки, первоначально предложенный доктором Хамидом Сарбази-Азадом (профессором вычислительной техники в Шарифском технологическом университете) в 2000 году и названный «глупой сортировкой» (не путать с богосортом), а затем описанный Диком. Грун и назвал "гномом рода".
Алгоритм всегда находит первое место, где два соседних элемента находятся в неправильном порядке, и меняет их местами. Он использует тот факт, что выполнение обмена может привести к появлению новой неупорядоченной соседней пары только рядом с двумя замененными элементами.
P.s Решение будет позже)
Напишите программу на JavaScript для сортировки списка элементов с использованием сортировки Gnome.
Сортировка гномов - это алгоритм сортировки, первоначально предложенный доктором Хамидом Сарбази-Азадом (профессором вычислительной техники в Шарифском технологическом университете) в 2000 году и названный «глупой сортировкой» (не путать с богосортом), а затем описанный Диком. Грун и назвал "гномом рода".
Алгоритм всегда находит первое место, где два соседних элемента находятся в неправильном порядке, и меняет их местами. Он использует тот факт, что выполнение обмена может привести к появлению новой неупорядоченной соседней пары только рядом с двумя замененными элементами.
P.s Решение будет позже)
Йоу йоу, друга! Вот тебе задачка!
Напишите программу на JavaScript для сортировки списка элементов, используя сортировку по маслу.
Сортировка блинов - разговорный термин для математической задачи сортировки неупорядоченной стопки блинов в порядке их размера, когда шпатель может быть вставлен в любую точку стопки и использован для переворачивания всех блинов над ней. Число блинов - это минимальное количество бросков, необходимое для данного количества блинов. Впервые эту проблему обсудил американский геометр Джейкоб Э. Гудман. Это разновидность проблемы сортировки, в которой единственной допустимой операцией является обращение элементов некоторого префикса последовательности в обратном порядке.
P.s Решение будет позже) Взять макеты для верстки можно в https://yangx.top/figma_makets
Напишите программу на JavaScript для сортировки списка элементов, используя сортировку по маслу.
Сортировка блинов - разговорный термин для математической задачи сортировки неупорядоченной стопки блинов в порядке их размера, когда шпатель может быть вставлен в любую точку стопки и использован для переворачивания всех блинов над ней. Число блинов - это минимальное количество бросков, необходимое для данного количества блинов. Впервые эту проблему обсудил американский геометр Джейкоб Э. Гудман. Это разновидность проблемы сортировки, в которой единственной допустимой операцией является обращение элементов некоторого префикса последовательности в обратном порядке.
P.s Решение будет позже) Взять макеты для верстки можно в https://yangx.top/figma_makets
Готовый Код | Frontend
Привет! Пора написать программу на JavaScript для сортировки списка элементов с использованием Bogosort. В информатике bogosort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует…
Решение задачи:
function Bogosort(arr){
var isSorted = function(arr){
for(var i = 1; i < arr.length; i++){
if (arr[i-1] > arr[i]) {
return false;
}
}
return true;
};
function shuffle(arr){
var count = arr.length, temp, index;
while(count > 0){
index = Math.floor(Math.random() * count);
count--;
temp = arr[count];
arr[count] = arr[index];
arr[index] = temp;
}
return arr;
}
function sort(arr){
var sorted = false;
while(!sorted){
arr = shuffle(arr);
sorted = isSorted(arr);
}
return arr;
}
return sort(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(Bogosort(arra));
var isSorted = function(arr){
for(var i = 1; i < arr.length; i++){
if (arr[i-1] > arr[i]) {
return false;
}
}
return true;
};
function shuffle(arr){
var count = arr.length, temp, index;
while(count > 0){
index = Math.floor(Math.random() * count);
count--;
temp = arr[count];
arr[count] = arr[index];
arr[index] = temp;
}
return arr;
}
function sort(arr){
var sorted = false;
while(!sorted){
arr = shuffle(arr);
sorted = isSorted(arr);
}
return arr;
}
return sort(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(Bogosort(arra));
Привет! Сегодня мы сделаем программу сортировки слияния на JS
Образец массива : [34,7,23,32,5,62]
Пример вывода : [5, 7, 23, 32, 34, 62]
Решение:
Array.prototype.merge_Sort = function () {
if (this.length <= 1)
{
return this;
}
var half = parseInt(this.length / 2);
var left = this.slice(0, half).merge_Sort();
var right = this.slice(half, this.length).merge_Sort();
var merge = function (left, right)
{
var arry = [];
while (left.length > 0 && right.length > 0)
{
arry.push((left[0] <= right[0]) ? left.shift() : right.shift());
}
return arry.concat(left).concat(right);
};
return merge(left, right);
};
var a = [34,7,23,32,5,62];
console.log(a.merge_Sort());
Образец массива : [34,7,23,32,5,62]
Пример вывода : [5, 7, 23, 32, 34, 62]
Решение:
if (this.length <= 1)
{
return this;
}
var half = parseInt(this.length / 2);
var left = this.slice(0, half).merge_Sort();
var right = this.slice(half, this.length).merge_Sort();
var merge = function (left, right)
{
var arry = [];
while (left.length > 0 && right.length > 0)
{
arry.push((left[0] <= right[0]) ? left.shift() : right.shift());
}
return arry.concat(left).concat(right);
};
return merge(left, right);
};
var a = [34,7,23,32,5,62];
console.log(a.merge_Sort());