Балонски вид на едномерния масив: алгоритъм, програмен код на езика на C

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


Алгоритъмът за сортиране на масива

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

Описание на сортирането стъпка по стъпка

При първата итерация два съседни номера постепенно се сравняват. Ако лявото е по-голямо, то тогава се презаписва с дясно. Минус 8 и 0 условия не са изпълнени. И следователно местата не се променят. Нула и 5 също не са подходящи. 5 и 3 - годни. При такава итерация обаче рамката за четене не попада в първите пет и се измества надясно, тъй като 5 е сравнена с нула. Това означава, че следващата двойка места се променя - 3 и 9. След товаВсички замествания се предлагат на читателя, за да бъдат прегледани самостоятелно без коментари на автора и да се проучи алгоритъмът за сортиране на балончета.


В резултат на всички повторения, масивът постепенно се сортира и това се случва главно както следва: големи положителни числа бързо се изместват надясно, докато по-малките и отрицателните бавно се пренареждат наляво. Изглежда, че газовите мехурчета в течността бързо се появяват. Поради тази аналогия алгоритъмът се нарича сортиране на балон.

Оценка на изчислителната сложност

Идеалният алгоритъм за сортиране трябва да бъде възможно най-бърз. В същото време той трябва да отнеме малко количество процесор и ресурси на паметта. И такъв процес, като сортиране на балони от масива, не може да бъде най-енергийно ефективна и печеливша. Ето защо, той не намери широко използване. Ако в момента има по-малко памет, процесорните ресурси трябва да се тревожат. Тъй като цифровите масиви може да не са просто големи, а огромни, тогава разходите за компютърни ресурси ще бъдат непредсказуеми. Ако балонното сортиране по принцип бързо се справи с подреждането на поръчката в сравнително малък масив, тогава в голям може да има сривове поради прекомерно използване на ресурсите. Това означава, че собствеността на присъщата на алгоритъма универсалност ще бъде нарушена. Освен това, сортът на балона има N-квадратична сложност и е много далеч от лога на сложността N. В допълнение, рискът от провал при обработката на голям масив увеличава шансовете за загуба на данни поради пренаписване на клетки. Много по-изгодно вВ този план ще бъде сортиране на вложките или алгоритъма на Schell.

Код на програмата

Компютърният код за езика C, изброени по-долу в графичното приложение, позволява сортиране на балончета. Издава се като отделна функция от типа void. Той не връща никакви стойности, но използването на указатели променя местата в елементите в зависимост от условията на сортиране. В този случай, кодът решава проблема с сортирането на балони от масива от цели числа във възходящ ред.
За да изпълни тази функция, потребителят трябва да създаде масив, който трябва да бъде попълнен с необходимите стойности. Можете да направите това ръчно, като посочите измерението и броя на елементите в началото на програмата. В същото време можете да попълните масива с постоянни стойности. Вторият вариант е създаването на универсална програма чрез обявяване на голям едномерен масив от 100 елемента.

Деклариране и инициализиране на масива

Чрез задаване на целочислена променлива и даване на стойност от клавиатурата, можете да ограничите броя на клетките, които ще бъдат запълнени. Можете също така да въведете функцията за въвеждане на елементи от масив от потребителя от клавиатурата, като използвате функцията scanf ("% d", & amp; value). В този пример "% d" е модифициращ низ, който указва на компилатора, че след сканиране ще бъде получена цяло число. Стойността на променливата ще запази стойност, която е размерът на едномерното цяло число. За да използвате алгоритъма за сортиране, името на масива и неговият размер трябва да бъдат предадени на функцията. В ситуацията, представена в графичното приложение, функцията callСортирането ще изглежда така: BubleSort (dataArray, sizeDataArray). Разбира се, в края на реда след функцията, трябва да поставите точка и запетая вместо точка, както се изисква от синтактичните правила на програмата. И така, dataArray е името на масива, който искате да сортирате, а sizeDataArray е неговия размер.
Прехвърлянето на тези параметри в функцията BubleSort () ще доведе до факта, че вместо да използвате sizeArray, както се вижда на фигурата, операциите в реалната програма ще бъдат изпълнени от sizeDataArray. Това означава, че функцията BubleSort () ще използва целочислен масив от dataArray. По същия начин се извикват функциите printArrayFunction () и ArrayIntegerInputFunction (). Първият е отговорен за отпечатването, т.е. за извеждане на елементи в конзолата. А вторият е необходим, за да го запълни с въведените от потребителя елементи от клавиатурата.
Този стил на програмиране, когато изолираните операции се изпълняват като функции, значително увеличава четивността на кода и ускорява неговото развитие. В такава програма е отделно подаден масивът от клавиатурата, отпечатвайки същия балон. Последният може да се използва за подреждане на данни или като вторична функция, която се стреми да намери минимум и максимум на масив.

Сортиране на вложките

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

Свързани публикации