/ / Vienmatės masyvo burbulų rūšiavimas: algoritmas, programos kodas C kalba

Burbulinis vienos dimensijos masyvo rūšiavimas: algoritmas, programos kodas C kalba

Dirbant su informacija, pelningiausiajo laikymo būdai yra struktūros ir masyvai. Pastarajame gali būti bet kokie to paties tipo duomenys, kuriuos patogu naudoti dirbant programą. Jie dažnai naudojami internetinėse parduotuvėse ir kuriant žaidimus. Todėl juose esantys duomenys yra ne kartą rūšiuojami ir keičiami, jiems atliekamos loginės ar matematinės operacijos. Vienas iš masyvo tvarkos užtikrinimo būdų yra burbulų rūšiavimas. Šiame leidinyje bus nagrinėjamas jo C programos kodas ir permutacijos logika.

Masyvo rūšiavimo algoritmas

Techniniai programuotojo sunkumaiburbulų rūšiavimas nėra vienmatis masyvas, nors jis retai naudojamas dėl mažo efektyvumo. Treniruočių etape jis dažniau vertinamas kaip paprasčiausias. Tačiau jis toli gražu nėra pats efektyviausias. Jo algoritmas susideda iš kintančių skaitmenų palyginimo ir abipusio langelių perrašymo, jei sąlyga yra įvykdyta.

burbulas rūšiuoti

Rūšiavimas žingsnis po žingsnio

Pirmasis kartojimas palaipsniui lygina dukaimyniniai skaičiai. Jei kairė yra didesnė, tada ji perrašoma vietomis su dešine. Minusas 8 ir 0 neatitinka sąlygų. Todėl jie nekeičia vietų. Nulis ir 5 taip pat netinka. 5 ir 3 yra tinkami. Tačiau tokioje iteracijoje skaitymo rėmas nepatenka į penkis, o pasislenka į dešinę, nes 5 anksčiau buvo lyginami su nuline. Tai reiškia, kad keičiama kita pora - 3 ir 9. Be to, skaitytojas kviečiamas savarankiškai peržiūrėti visus pakeitimus be autoriaus komentarų ir ištirti burbulų rūšiavimo algoritmą.

burbulų rūšiavimo algoritmas

Dėl visų pasikartojimų masyvas yra palaipsniuiyra rūšiuojamas, ir tai iš esmės vyksta taip: dideli teigiami skaičiai greitai juda į dešinę, o mažesni ir neigiami - lėtai į kairę. Panašu, kad skysčio dujų burbuliukai greitai plaukia aukštyn. Dėl šios analogijos algoritmas buvo vadinamas burbulų rūšiavimu.

Skaičiavimo sudėtingumo vertinimas

Idealus rūšiavimo algoritmas turėtų būtikaip įmanoma greičiau. Tuo pačiu metu jis turėtų atimti nedidelį kiekį procesoriaus ir atminties išteklių. Toks procesas kaip masyvo burbulų rūšiavimas gali būti ne pats efektyviausias ir pelningiausias. Todėl jis nerado plataus taikymo. Jei šiuo metu yra mažiau problemų dėl atminties, tuomet reikėtų sunerimti procesoriaus išteklius. Kadangi skaitmeniniai masyvai gali būti ne tik dideli, bet ir didžiuliai, kompiuterio išteklių naudojimas pasirodys nenuspėjamas.

Jei burbulų rūšiavimas iš esmės yra greitassusidoroja su daiktų tvarkos nustatymu santykinai mažame masyve, tada dideliame gali būti gedimų dėl per didelio išteklių naudojimo. Tai reiškia, kad bus pažeista algoritmui būdinga universalumo savybė. Be to, burbulų rūšiavimas yra N kvadrato sudėtingumo ir yra labai toli nuo N sudėtingumo logaritmo. Be to, nesėkmės rizika apdorojant didelį masyvą padidina duomenų praradimo tikimybę dėl langelių perrašymo. Šiuo atžvilgiu įterpimo rūšiavimas arba „Shell“ algoritmas bus daug pelningesnis.

Programos kodas

Toliau nurodyta grafinėje programojekompiuterio kodas C kalbai leidžia burbulus rūšiuoti. Jis pateikiamas kaip atskira tuščio tipo funkcija. Jis negrąžina jokių verčių, tačiau naudoja žymeklius, kad sukeistų elementus pagal rūšiavimo sąlygas. Tokiu atveju kodas išsprendžia burbulų rūšiavimo sveikųjų skaičių masyvą didėjimo tvarka problemą.

burbulų rūšiavimo algoritmas

Norėdami atlikti šią funkciją, vartotojas turisukurkite masyvą, kurį reikia užpildyti norimomis reikšmėmis. Tai galima padaryti rankiniu būdu, programos pradžioje nustatant matmenį ir elementų skaičių. Tada galite užpildyti masyvą pastoviomis reikšmėmis. Antrasis variantas yra sukurti universalią programą, deklaruojant didelę 100 elementų vienmatę masyvą.

Masyvo deklaravimas ir inicializavimas

Nustatydami sveikojo skaičiaus kintamąjį ir priskirdami jįreikšmę, nuskaitytą iš klaviatūros, galite apriboti užpildomų langelių skaičių. Taip pat galite įdiegti masyvo elementų vartotojo įvedimo iš klaviatūros funkciją naudodamiesi funkcija scanf ("% d" ir vertė). Šiame pavyzdyje „% d“ yra modifikatorių eilutė, sakanti kompiliatoriui, kad po nuskaitymo bus grąžinta sveika skaičiaus reikšmė. Kintamoji vertė išsaugos vertę, kuri yra vienmatės sveikojo skaičiaus masyvo dydis.

Norint naudoti rūšiavimo algoritmą, reikiaperduoti funkcijai masyvo pavadinimą ir jo dydį. Grafinėje programoje pateiktoje situacijoje iškvietimas į rūšiavimo funkciją atrodys taip: BubleSort (dataArray, sizeDataArray). Žinoma, eilutės pabaigoje po funkcijos, vietoj taško turėtumėte įdėti kabliataškį, kaip to reikalauja programos sintaksės taisyklės. Taigi dataArray yra rūšiuojamo masyvo pavadinimas, o sizeDataArray - jo dydis.

burbulas rūšiuoti masyvą

Šiuos parametrus perduoti funkcijai „BubleSort ()“sukels tai, kad užuot naudoję sizeArray, kaip matote paveikslėlyje, tikroje programoje operacijos bus atliekamos su sizeDataArray. Tai taip pat reiškia, kad sveikojo skaičiaus masyvas „dataArray“ bus naudojamas funkcijoje „BubleSort“ (). Funkcijos printArrayFunction () ir ArrayIntegerInputFunction () iškviečiamos tuo pačiu būdu. Pirmasis yra atsakingas už spausdinimą, tai yra, už elementų rodymą konsolėje. Antrasis reikalingas norint jį užpildyti elementais, kuriuos vartotojas įveda iš klaviatūros.

Šis programavimo stilius, kai izoliuotasoperacijos atliekamos funkcijų pavidalu, žymiai padidina kodo įskaitomumą ir pagreitina jo plėtrą. Tokioje programoje atskirai išimamas masyvo užpildymas iš klaviatūros, jo spausdinimas ir pats burbulų rūšiavimas. Pastarasis gali būti naudojamas užsakant duomenis arba kaip nepilnametė funkcija, norint rasti masyvo mažiausią ir didžiausią.

Rūšiuoti pagal įdėklus

Manoma, kad įterpimo rūšiavimaspakaitomis lyginant kiekvieną elementą ir sudarant elementų grandinę, jau surūšiuotą pagal sąlygą. Todėl kiekvieno vėlesnio palyginimo rezultatas yra langelio, į kurį galima įdėti naują vertę, paieška. Bet kiekvienas iš jų įterpiamas jau surūšiuotoje masyvo dalyje.

burbulų rūšiavimo intarpai

Šis apdorojimas yra greitesnis ir mažiau sudėtingas skaičiavimais. C kodas pateikiamas grafinėje programoje.

burbulas rūšiuoti

Jis taip pat pateikiamas kaip funkcija, į kuriąkaip argumentai perduodami užsakomo masyvo pavadinimas ir masyvo dydis. Čia galite pamatyti, koks yra lėtas burbulų rūšiavimas. Įdėklai atlieka panašų darbą daug greičiau ir turi kompaktišką programos kodą.

Patinka:
0
Populiarios žinutės
Dvasinė raida
Maistas
yup