Съдържание
Поръчването на набор от елементи в списък е честа задача при програмирането. Често човек може да изпълни тази задача интуитивно. Компютърната програма обаче трябва да следва точна последователност от инструкции, за да я изпълни и тази последователност се нарича алгоритъм. Алгоритъмът за подреждане е метод, използван за поставяне на списък с неорганизирани елементи в даден ред. Последователността на подреждането се определя с ключ. Има няколко алгоритми за сортиране, които се различават по отношение на ефективност и производителност. Някои известни и важни от този тип включват: сортиране на балончета, сортиране по избор, сортиране при вмъкване и бързо сортиране.
Сортиране на мехурчета
Сортирането на балончета многократно обменя съседни елементи, които не са в ред, докато целият списък с елементи не е в последователност. По този начин елементите се носят в списъка според техните стойности, като най-големият (в случай на възходящо сортиране) отива в края в края на всяка итерация.
Основното предимство на този алгоритъм е, че изпълнението му е лесно и познато. Освен това при сортирането на балончетата елементите се сменят на места, без да се използва временно съхранение, което прави изискването за пространство минимално. Основният недостатък е фактът, че той не показва добри резултати, когато списъкът съдържа много елементи. Това е така, защото този тип сортиране изисква n² стъпки за обработка за всеки n брой елементи, които ще бъдат сортирани. Следователно сортът балон е подходящ за академично образование, но не и за приложения в реалния живот.
Сортиране на селекцията
Сортирането по избор многократно търси в списъка с елементи, като избира по един елемент и го поставя в правилната позиция в последователността.
Основното предимство на сортирането на селекцията е, че работи добре в кратък списък. Освен това, тъй като това е алгоритъм за подреждане на места, той не се нуждае от временно съхранение извън необходимото за съхраняване на оригиналния списък. Основният недостатък е ниската му ефективност в големите списъци. Подобно на балонното сортиране, той изисква n² брой стъпки за всеки n елемента. Освен това неговото представяне лесно се влияе от първоначалния ред на артикулите преди процеса на сортиране. Поради това този тип избор е подходящ само за списък, където малко елементи са в произволен ред.
Сортиране по вмъкване
Сортирането при вмъкване сканира списъка многократно и всеки път вмъква елемент от неподредената последователност в правилната позиция.
Основното предимство на сортирането чрез вмъкване е неговата простота, освен че показва добро представяне в малки списъци. Това е алгоритъм за подреждане на места, така че изискването за пространство е минимално. Недостатъкът е, че не се представя толкова добре, колкото другите алгоритми за сортиране. С n² стъпки, необходими за работа, сортирането на вмъкването също не работи добре с големи списъци. Това обаче е особено полезно при списъци с няколко елемента.
Бързо сортиране
Бързото сортиране работи на принципа на разделянето и завладяването. Първо, той разделя списъка с елементи на два под-списъка въз основа на обобщен елемент. Всички елементи в първия под-списък са подредени така, че да са по-малки от ос, докато всички елементи във втория под-списък са подредени да бъдат по-големи от ос. Един и същ процес на разделяне и организация се извършва многократно върху получените под-списъци, докато се организира целият списък.
Някои сочат, че бързото сортиране е най-добрият алгоритъм за сортиране поради значителното му предимство в ефективността, тъй като работи добре с голям списък с елементи. Чрез поръчка на място също няма нужда от допълнително място за съхранение. Лекият недостатък, който представлява, е, че най-лошата му производителност е подобна на средната производителност на другите алгоритми, описани по-горе. Важно е обаче да се отбележи, че този най-лош случай е много рядък. По-общо, бързото сортиране създава най-ефективния и широко използван метод за организиране на списък от всякакъв размер.