Рубрики
Алгоритмы Массивы "поиск"

Массивы «линейный поиск»

последовательно сравниваем с тем элементом, который ищем

массив из n элементов
O(n)
n — количество итераций в массиве

для массива из 1000 элементов
O(1000)

лучший случай
элемент находим в начале списка за одну операцию

худший случай
элемент находим в конце списка

сложность
нам необходимо пройтись по каждому элементу, который в этом списке находится

const arr=[1,4,5,8,51,2,7,5,5,2,11]
let cnt = 0;//количество итераций
function linearSearch(arr, item){
 for (let i =0; i< arr.length; i++){
  cnt+=1;
  if (arr[i] === item) {
   return i;
  }
 }
 return null;
}
console.log(linearSearch(arr, 11));
console.log('count = ', count);
Рубрики
Алгоритмы

О(n)

«О большое»

сложность алгоритма, или же его скорость алгоритмов описывается с помощью специальной аннотации

(n) в скобках

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

указывается всегда наихудшая ситуация

типы графиков

по скорости выполнения
от лучшего до наихудшего

t=1
t=log2n
t=n
t=n*log2n
t=n*n
t=n!

Например

Поиск элемента в массиве (линейный)

для массива из 1000 элементов
O(1000)

массив из n элементов
O(n)

Рубрики
Алгоритмы

Алгоритм «понятие»

алгоритм — это набор последовательных действий

  1. решают задачу
    любой фрагмент кода — это алгоритм
  2. оценка сложности
    некоторые алгоритмы могут быть эффективнее других
    эффективность не всегда равна скорости работы алгоритма
    в некоторых ситуациях более медленный алгоритм может оказаться на определённой выборке данных более эффективным