Преглед садржаја[Сакрити][Прикажи]
Рачунарство се своди на разумевање сложености алгоритама и структура података.
Имате листу ставки које треба сортирати, али немате времена или ресурса да користите сложенији алгоритам за сортирање.
Сортирање уметањем је један од најједноставнијих алгоритама за сортирање, али може бити споро за велике листе.
Лака имплементација и разумевање учинили су овај метод омиљеним међу програмерима. Савршен је за мале листе или када вам треба брзо решење.
У овом посту на блогу ћемо погледати временску сложеност сортирања уметања. Овај алгоритам се користи за сортирање низова и има време извођења О(н2). То значи да се временска сложеност повећава са величином низа.
Међутим, овај алгоритам често може бити бржи од других алгоритама за сортирање, као што је брзо сортирање.
Хајде да ближе погледамо како функционише сортирање уметањем!
Шта је алгоритам сортирања уметањем?
Један по елемент, сортирање уметањем генерише низ који се може сортирати, који се често назива листом.
На пример, сортирање се примењује у компликованим компјутерским програмима као што су компајлери, где је редослед токена важан за интерпретацију програма.
Како функционише сортирање уметањем?
Када користимо сортирање уметањем за сортирање низа, алгоритам почиње тако што пронађе најмању ставку на листи и убаци је на исправну позицију.
Затим проналази следећу најмању ставку и убацује је на исправан положај, и тако даље.
Алгоритам функционише тако што се креће кроз листу, упоређујући сваку ставку са оном која је пре ње.
Ако су ставке у погрешном редоследу, алгоритам их мења. Затим проверава да ли је листа сортирана, и ако јесте, алгоритам се завршава.
У пракси, сортирање уметањем се често имплементира помоћу неколико линија кода, што га чини популарним избором за сортирање малих низова. Међутим, при коришћењу овог алгоритма треба узети у обзир временску сложеност.
primer:
Ево примера како функционише сортирање уметањем. Користићемо следећи низ:
КСНУМКС, КСНУМКС, КСНУМКС, КСНУМКС, КСНУМКС, КСНУМКС
Алгоритам почиње тако што пронађе најмању ставку на листи, а то је 1. Затим је убацује на исправну позицију, прву позицију. Затим проналази следећу најмању ставку, а то је 2. Убацује је у исправну позицију, а то је друга позиција.
Затим проналази следећу најмању ставку, а то је 3. Убацује је у исправну позицију, а то је трећа позиција.
Затим проналази следећу најмању ставку, која је 4. Убацује је у исправну позицију, а то је четврта позиција, и тако даље. Листа је сада поређана!
Из примера можемо видети да алгоритам треба шест поређења и замене да би сортирао листу. То је зато што је потребно н2 поређења и замена за сортирање листе од н ставки. У овом случају, н=6.
Како побољшати сложеност времена сортирања уметања?
Док сортирање уметањем има време извођења О(н2), може се побољшати коришћењем бољег алгоритма за сортирање, као што је брзо сортирање.
Куицксорт има О(н лог н) време извођења, које је много брже од О(н2).
Међутим, у неким случајевима сортирање уметањем може бити брже од брзог сортирања.
На пример, ако је листа већ у реду, сортирање уметањем ће трајати мање времена од брзог сортирања.
У пракси, сортирање уметањем се често имплементира помоћу неколико линија кода, што га чини популарним избором за сортирање малих низова.
Међутим, при коришћењу овог алгоритма треба узети у обзир временску сложеност.
Временске сложености
Сложеност у најгорем случају О(н2):
Временска сложеност расте са величином низа. Потребно је н2 поређења и замена за сортирање листе од н ставки.
На пример, ако имамо низ величине 1000, алгоритам ће узети 1,000,000 поређења и замена да сортира низ.
Сложеност најбољег случаја О(н):
Временска сложеност је иста као и величина улазног низа. И
т треба н поређења и замене да би сортирао листу од н ставки. На пример, узмите у обзир низ величине 5. Алгоритам ће узети пет поређења и замене да сортира низ.
Просечна сложеност случаја О(н2):
Временска сложеност је између најгорег и најбољег случаја сложености у овом случају.
Потребно је н2 поређења и замена за сортирање листе од н ставки.
Дакле, сортирање уметањем је стабилан алгоритам за сортирање.
Зашто је сортирање уметањем стабилно?
Сортирање уметањем је стабилно јер чува редослед једнаких елемената у улазном низу.
Ово је важно за многе апликације, попут преузимања података или финансијске анализе. На пример, ако имамо две листе бројева и желимо да их упоредимо, морамо да се уверимо да је редослед елемената сачуван.
Ако листе нису поређане, нећемо их тачно упоређивати.
Ostavite komentar