Предимства и недостатъци на Bubble Sort

Програмистите, които преминават от компютърна и уеб разработка към кодиране за мобилни устройства или вградени системи, откриват, че повече време се прекарва в избор и кодиране на техните собствени структури от данни и алгоритми. С по-малко памет и ограничено съхранение на данни, няма място за предварително изградени библиотеки или рамки. Така че за тези, които трябва да напишат свои собствени процедури за сортиране, ето някои съображения относно избора на ниско сортиране с балончета.

Заден план

Сортирането с балончета е прост алгоритъм, който сортира списък с елементи в паметта. При даден масив кодът многократно сравнява всяка двойка съседни елементи и ги разменя, ако не са в ред. Процесът се повтаря, докато не се извършват повече размяна. Ако беше възможно да се види масивът, докато сортирането е в ход, ниските стойности щяха да се „покачват“ отгоре, докато големите стойности щяха да потънат на дъното. Ето съответния код във Visual Basic 2010:

Видео на деня

Докато swap = True swap = False За i = 0 До tbl.length - 2 Ако tbl (i) > tbl (i + 1) Тогава tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i + 1) = tmp swap = True End If Next End While

Кога да изберете сортиране с балончета

Този алгоритъм има няколко предимства. Лесно е да се пише, лесно се разбира и отнема само няколко реда код. Данните се сортират на място, така че има малко памет и след сортиране данните са в паметта, готови за обработка. Основният недостатък е времето, необходимо за сортиране. Средното време нараства почти експоненциално с увеличаване на броя на елементите на таблицата. Десет пъти по-голям брой елементи отнема почти сто пъти повече време за сортиране.

Други видове масиви

Алгоритмите за сортиране се различават по сложност, скорост и допълнителни разходи. Сортирането с мехурчета е най-малко сложното, но и едно от най-бавните. Други сортировки, базирани на масиви, като сортиране с вмъкване и сортиране с обмен, са малко по-бързи, но отнемат повече код (вижте препратките по-долу). Основното предимство на сортирането, базирано на масиви, е, че те използват най-малко код и заемат най-малко работна памет. Помислете за тези видове за прости масиви с по-малко от няколкостотин елемента.

Сложни алгоритми за сортиране

По-големите набори от данни изискват по-сложен код и повече памет. Бързото сортиране и сортирането в купчина едновременно разделят и копират наборите от данни, за да оптимизират броя на сравненията. Бързото сортиране непрекъснато разделя списъка, след което го сглобява отново в сортиран ред. Хийп сортирането копира данните в дървовидна структура, след което преминава през дървото, за да копира данните обратно в ред. И двете са бързи и ефективни, но изискват повече код и много повече работещо съхранение. Изберете тези алгоритми за големи набори от данни.