Size: a a a

JavaScript Noobs — сообщество новичков

2021 October 13

W

Wkwk in JavaScript Noobs — сообщество новичков
Всем доброго утра. Помогите разобраться с такой задачей : "В try catch конструкцию завернуть код: console.log(a), let a = 3. И вывести ошибку – ‘let перед использованием нужно объявить’. При выполнении 1/0  выводить ошибку 'на ноль делить нельзя". Это задача начального уровня, я вроде ознакомился с темой но не могу никак завернуть это в трайкэч
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
А написанный тобой?
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
Некрасиво пишешь, пойдем по разам выйдем
источник

D

Danila in JavaScript Noobs — сообщество новичков
И написаный мной тоже
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
const shuffleArray = arr => {
 const len = arr.length
 for (let i = 0; i < len - 1; i += 1) {
   let r = Math.floor(Math.random() * (len - i))
   r && ([arr[i], arr[i + r]] = [arr[i + r], arr[i]])
 }
 return arr
}

const chaoticArray = shuffleArray(Array(20).fill(0).map((_, i) => i + 1))

const selectionSort = array => {
 for (let i = 0; i < array.length - 1; i += 1) {
   let min = i;
   for (let j = i + 1; j < array.length; j += 1) {
     if (array[min] > array[j]) min = j;
   }
   [array[i], array[min]] = [array[min], array[i]];
 }

 return array
}

const mergeSort = array => {
 const pivot = (start, end) => Math.floor((start + end) / 2);  
 const len = array.length
 let tempA = [...array]
 let tempB = tempA.splice(pivot(0, len), len)
 
 tempA = selectionSort(tempA)
 tempB = selectionSort(tempB)
 
 let i = 0
 let j = 0
 let k = 0
 const result = []
 
 while (k < len) {
   if (tempA[i] < tempB[j]) {
     result.push(tempA[i])
     i += 1
   } else {
     result.push(tempB[j])
     j += 1
   }
   k += 1
 }
 return result;
}

console.log(mergeSort(chaoticArray))
источник

D

Danila in JavaScript Noobs — сообщество новичков
А что именно не получается?
источник

j

jk in JavaScript Noobs — сообщество новичков
Ну просто у алгоритмов сортировки есть best case и worst case в зависимости от порядка элементов в исходном массиве. Если подогнать худшие данные под quicksort, или что там сейчас под капотом нативно, и написать алгоритм который такой порядок сортирует быстрее, то нет ли шансов в этом случае победить?
источник

D

Danila in JavaScript Noobs — сообщество новичков
В кэтч ловишь ошибку, достаёшь текст, проверяешь какой там текст и выводишь свой
источник

D

Danila in JavaScript Noobs — сообщество новичков
Да, я думал о таком
источник

D

Danila in JavaScript Noobs — сообщество новичков
Наверное, есть
источник

D

Danila in JavaScript Noobs — сообщество новичков
Там мерджсорт кстати и есть
источник

D

Danila in JavaScript Noobs — сообщество новичков
Ну и чего? Быстрее нативного?
источник

D

Danila in JavaScript Noobs — сообщество новичков
Опять поменяли?
источник

D

Danila in JavaScript Noobs — сообщество новичков
Был кусорт, потом мердж
источник

D

Danila in JavaScript Noobs — сообщество новичков
Я просто заходил туда с перерывом в пару лет
источник

D

Danila in JavaScript Noobs — сообщество новичков
Первый раз там был квиксорт
источник

D

Danila in JavaScript Noobs — сообщество новичков
Потом на мердж перешли
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
так на 5% медленнее, но тут SelectionSort надо переделать (если возможно)
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
Массив на 200 элементов мой алгоритм быстрее делает
источник

{

{ Max: 'JS Engineer'... in JavaScript Noobs — сообщество новичков
на 20 элементов быстрее нативный, на 200 быстрее мой, на 1000 быстрее нативный
источник