Увод у Разврставање уметања у ЈаваСцрипт
Сортирање је један од важних концепата који програмери науче да започну своје путовање у рачунарској науци без обзира на програмски језик изабран за учење. Сортирање нам помаже да брже и повољније пронађемо циљне податке које желимо да претражујемо, сортирајући их по узлазном или силазном редослиједу.
Алгоритми за сортирање користе се за преуређивање елемената, гдје елемент може бити број или низ. Постоји много врста алгоритама за сортирање заснованих на њиховој методи сортирања и приступу за сортирање елемената, а свака врста има своје предности и мане.
У овом блогу ћемо се фокусирати на врсту уметања, уобичајену врсту која је лако разумети и имплементирати.
Шта је сортирање уметања у ЈаваСцрипт-у?
Поредај уметања је једноставан, лако разумљив алгоритам који најбоље функционише са малом списком података тако што ћете сваки елемент у листи података сортирати један по један с лева на десно. Позната је и као поређење где упоређује тренутну вредност са осталим вредностима на истој листи података по којима је сортирано. Слиједи итеративни приступ да се сваки елемент постави у исправном редослиједу на листи података.
Што више времена треба да разврста алгоритам, његово извођење је лоше и потребно је размотрити други алгоритам да би сортирао податке. Уметање врста има временску сложеност од О (н²) или покреће квадратно време да би се сортирали списак података у најгорем сценарију. То обично није веома ефикасно и не треба га користити за велике листе. Међутим, обично надилази напредне алгоритме попут куицксорта или спајања на мањим листама.
Разврставање уметања, већину времена је ефикасније од осталих алгоритама квадратног сортирања, као што су сортирање буббле или сортирање. Његов најбољи сценариј, вријеме је О (н) или линеарно, што се догађа ако је улазни низ већ сортиран. У просеку, време извођења врсте уметања је и даље квадратно.
У доњем примјеру имат ћемо једноставан приступ на високој разини за разврставање података похрањених у структури података матрице и кориштењем његове методе сортирања за сортирање података без примјене алгоритама.
Пример - Алгоритам сортирања уметања
Шифра:
// Declaring unsorted data and storing it in array data structure
var dataArray = (96, 5, 42, 1, 6, 37, 21) // Function - Insertion Sort Algo.
function insertSort(unsortedData) (
for (let i = 1; i < unsortedData.length; i++) (
let current = unsortedData(i);
let j;
for(j=i-1; j >= 0 && unsortedData(j) > current;j--) (
unsortedData(j + 1) = unsortedData(j) )
unsortedData(j + 1) = current;
)
return unsortedData;
)
// print sorted array
console.log(insertSort(dataArray));
Излаз:
Објашњење: У алгоритму смо имплементирали 2 за петље, спољни за петљу је да итерати преко елемената низа, а унутрашњи за петљу користи се за сортирање елемената низа у узлазном редоследу њихове вредности. Тренутна варијабла садржи тренутну вриједност матрице, а варијабла ј је постављена на једну вриједност мању од тренутне позиције индекса матрице. Провјеравамо да ли је тренутни елемент (струја) мањи од вриједности поља на ј - тој позицији (унсортедДата (ј) ) и да ли је истина онда сортирамо те вриједности.
Итерација 1 - струја (96): (96, 5, 42, 1, 6, 37, 21)
Итерација 2 - струја (5): (5, 96, 42, 1, 6, 37, 21)
Итерација 3 - струја (42): (5, 42, 96, 1, 6, 37, 21)
Итерација 4 - струја (1): (1, 5, 42, 96, 6, 37, 21)
Итерација 5 - струја (6): (1, 5, 6, 42, 96, 37, 21)
Итерација 6 - струја (37): (1, 5, 6, 37, 42, 96, 21)
Итерација 7 - струја (21): (1, 5, 6, 21, 37, 42, 96)
Спољни за итерацију петље започиње у првом положају индекса јер желимо да померимо најмањи елемент на леву страну тако да упоређујемо да ли је тренутни елемент мањи од елемената на левој страни.
Врсте сортирања
Типови алгоритама који се користе за сортирање података обухватају следеће концепте или идеје у свом приступу сортирању података:
- Поређење са стратегијама које се не темеље на поређењу,
- Итеративна наспрам рекурзивне примене,
- Парадигма поделе и освоји (ово или оно),
- Рандомизе приступ.
Размотримо неколико примера:
1. Спајање сортирања користи „подијели и освојиј“ за сортирање елемената у низу.
2. Сорта уметања, Сорта мехурића је сорта заснована на поређењу.
Када се подаци сортирају, постаје лакше пронаћи оптимално решење сложених проблема. на пример,
- Тражење одређене вредности,
- Проналажење минималне или максималне вредности,
- Тестирање јединствености и брисање дупликата,
- Бројање колико се пута појавила одређена вредност итд.
Закључак
У овом чланку смо прошли кроз дефиницију сорте уметања и њену временску сложеност и разне друге врсте алгоритама за сортирање на основу њиховог приступа. Проучавање различитих алгоритама за сортирање помаже нам да идентификујемо који је погоднији у одређеним околностима или користимо случајеве који нам помажу да брже сортирамо податке.
Препоручени чланци
Ово је водич за Разврставање уметања у ЈаваСцрипт. Овде смо расправљали о томе шта је врста уметања у јавасцрипту и његове врсте са примером. Такође можете погледати следеће чланке да бисте сазнали више -
- Обрасци у ЈаваСцрипт-у
- Изјава о случају у ЈаваСцрипт-у
- Условне изјаве у ЈаваСцрипт-у
- ЈаваСцрипт објекти
- Различите врсте петљи са њеним предностима