Рубрики
JavaScript основы JavaScript Поиск Массивы

Найти в массиве

Найти в массиве — представлены различные методы по поиску элементов в массиве в языке JavaScript, особенно с использованием лямда-выражений.

Найти в Массиве на языке JavaScript
Поиск в Массиве
Рубрики
С# основы Структуры данных Массивы Структуры Данных "Списки"

Различия Array и List

Array List
размер
не изменяемый
задаётся при создании
за ним надо специально следить
размер
изменяемый
доступ
чуть быстрее
добавлять элемент
индекс
обращение к элементу
удалять элемент
A[x].B=c
если лежат структуры
можно изменить поля элемента
linq
по признаку перебор всего (foreach) или выборки элементов
ref
параметр функции
элемент массива передавать
out
параметр функции
элемент массива передавать
fixed
можно получить указатель на элемент
Различия Array и List
Различия Array и List в C#
Различия Array и List в C#
Рубрики
C# С# структуры данных "Массивы" Структуры данных Массивы

Array

Array или массив — абстрактный базовый тип (класс) для всех типов массивов

  • можно использовать свойства и другие члены класса, входящие в Array
С# C и C++
реальные объект адресуемые области непрерывной памяти
массивы в языках представляют
Array в С#
Array в С#
Рубрики
Массивы Структуры Данных "Списки"

Структура Данных «связный список»

ВАЖНО

каждый отдельный элемент связного списка занимает отдельное место в памяти

каждый предыдущий элемент хранит ссылку на следующий элемент, который лежит в списке.

Плюсы

является то, что мы можем мгновенно добавлять в конец или в начало списка

связность заключается в том, что каждый предыдущий элемент списка содержит ссылку на следующий элемент в списке

Минусы

Чтобы получить какой-то элемент — нам с самого начала списка надо итерироваться и сравнивать

ОТЛИЧИЕ МАССИВ и СПИСКИ

Массивы используем там, где

  • часто обращаемся к каким то данным
  • не часто нужно изменять размер массива.

Списки используем там, где

  • если редко обращаемся к каким-то данным
  • часто его дополняем
Рубрики
Алгоритмы Массивы "cортировка"

Массивы «Быстрая сортировка» (Хоара)

O(log2n*n)
самый быстрый

разделяй и властвуй

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

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

И после этих операций эти маленькие массивы склеиваются в один большой.

const arr=[1,4,5,8,51,2,7,5,5,2,11]//[0,1,1,2,3....]
let cnt=0;

function quickSort(arr){
 if (arr.length<=1){
  return arr
}
let pivotIndex = Math.floor(arr.length/2);
let pivot=arr[pivotIndex]
let less=[]
let greater=[]

for(let i=0;i<arr.length;i++){
 cnt+=1
 if(i===pivotIndex)
  continue;
 if(arr[i]<pivot){
  less.push(arr[i])
} else {
 greater.push(arr[i])
}
return [...quickSort(less),pivot,...quickSort(greater)]
}

console.log(quickSort(arr))
console.log(cnt);