/ / Сортиране на мехурчета на едномерен масив: алгоритъм, код C

Сортиране на мехурчета на едномерен масив: алгоритъм, C код

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

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

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

сортиране на балончета

Поетапно описание на сортирането

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

алгоритъм за сортиране на балончета

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

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

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

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

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

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

алгоритъм за сортиране на балончета

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

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

Задав целочисленную переменную и присвоив ей стойност, прочетена от клавиатурата, можете да ограничите броя на клетките, които трябва да бъдат запълнени. Можете също така да реализирате функцията за въвеждане на елементи от масива от потребителя от клавиатурата с помощта на функцията scanf ("% d", & стойност). В този пример „% d“ е модификационен низ, който казва на компилатора, че след сканиране ще бъде получена цяло число. Променливата стойност ще съхранява стойността, която е размерът на едноизмерен цяло число.

За да използвате алгоритъма за сортиране, трябвапредайте името на масива и неговия размер на функцията. В ситуацията, представена в графичното приложение, обаждането към функцията за сортиране ще изглежда така: BubleSort (dataArray, sizeDataArray). Разбира се, в края на реда след функцията трябва да поставите точка и запетая вместо период, както се изисква от правилата на синтаксиса на програмата. И така, dataArray е името на масива за сортиране, а sizeDataArray е неговият размер.

сортиране на балонни масиви

Предаване на тези параметри на функцията BubleSort ()ще доведе до факта, че вместо да използвате sizeArray, както е показано на фигурата, в реална програма ще се извършват операции с sizeDataArray. Това също означава, че целочисленото dataArray ще бъде използвано във функцията BubleSort (). По подобен начин повикването към функциите printArrayFunction () и ArrayIntegerInputFunction (). Първият е отговорен за печат, тоест за извеждане на елементи към конзолата. И втората е необходима, за да го запълни с елементи, въведени от потребителя от клавиатурата.

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

Сортиране на вмъкване

При сортиране на вмъкване се предполагаалтернативно сравняване на всеки елемент и изграждане на верига от елементи, вече сортирани според състоянието на елементите. В резултат резултатът от всяко следващо сравнение е търсене на клетка, в която може да се постави нова стойност. Но всеки от тях се вмъква във вече подредената част от масива.

сортиране на мехурчета чрез вложки

Тази обработка е по-бърза и има по-малка изчислителна сложност. Кодът С е представен в графично приложение.

извършва сортиране на балончета

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

хареса:
0
Популярни публикации
Духовното развитие
храна
ш