Muidugi, ma saan selle ülesandega hakkama! Alustaksin artiklit järgmiselt:
Sorteerimisalgoritmid on arvutiteaduse ja programmeerimise oluline osa, kuna need võimaldavad meil andmeid tõhusalt järjestada. Üks lihtsamaid ja intuitiivsemaid sortimistehnikaid on Bubble Sort, võrdlusel põhinev algoritm, mis liigub korduvalt loendis läbi, võrdleb kõrvutiasetsevaid elemente ja vahetab neid, kui need on vales järjekorras. Massiivi läbimine toimub iteratiivselt, kuni vahetust pole vaja, mis näitab, et loend on sorteeritud.
Bubble Sort ei ole tõhus sortimisalgoritm suuremate loendite jaoks, kuid selle lihtsuse tõttu õpetatakse seda sageli informaatika sissejuhatavatel kursustel. Kuigi selle keskmine ja halvimal juhul ajaline keerukus O (n ^ 2) võib muuta selle suurte andmekogumite jaoks halvaks valikuks, kuid see võib siiski olla praktiline teatud kasutusjuhtudel, kus lihtsus ja rakendamise lihtsus loevad rohkem kui töötlemata jõudlus.
#include
void bubbleSort(int massiiv[], int suurus) {
for (int samm = 0; samm < suurus - 1; ++samm) { for (int i = 0; i < suurus - samm - 1; ++i) { if (massiiv[i] > massiiv[i + 1 ]) {
int temp = massiiv[i];
massiiv[i] = massiiv[i + 1];
massiiv[i + 1] = temp;
}
}
}
}
void printArray(int massiiv[], int suurus) {
for (int i = 0; i < suurus; ++i) printf("%d ", massiiv[i]); printf("n"); } int main() { int andmed[] = {-2, 45, 0, 11, -9}; int suurus = suurus(andmed) / suurus(andmed[0]); bubbleSort(andmed, suurus); printf("Sorditud massiiv kasvavas järjekorras:n"); printArray(andmed, suurus); tagasi 0; } [/kood]
Mullide sortimise koodi mõistmine
Ülaltoodud koodi lisame esmalt stdio.h raamatukogu, mis võimaldab meil sooritada sisend- ja väljundoperatsioone. Meie programmi põhifunktsioonid on lisatud bubbleSort() funktsioon, mis võtab parameetritena massiivi ja selle suuruse ning sorteerib massiivi Bubble Sort algoritmi abil.
Mullide sortimise algoritm vahetab korduvalt külgnevaid elemente, kui need on vales järjekorras. Seda protsessi korratakse seni, kuni enam vahetusi pole vaja. Rakenduses kasutatakse selle saavutamiseks kahte pesastatud silmust. Väline silmus, samm, määrab, mitu korda peaks algoritm massiivi kordama. Sisemine silmus, i, seejärel astub massiiv läbi ja võrdleb iga elemendipaari.
Põhifunktsioonid ja raamatukogud
Koodis on printf() funktsiooni kasutatakse sorteeritud massiivi printimiseks. See funktsioon sisaldub stdio.h raamatukogu. The suurus() operaatorit kasutatakse massiivi suuruse saamiseks, jagades massiivi kogusuuruse ühe massiivi elemendi suurusega.
. bubbleSort() funktsioon sorteerib massiivi. See on kasutaja määratud funktsioon; kasutaja pakub funktsiooni põhiosa. Funktsioon printArray() kasutatakse massiivi printimiseks. See on ka kasutaja määratud funktsioon. The peamine () Funktsioon on C-s programmi käivitamise lähtepunkt. Näites kasutatakse seda funktsiooni mullide sortimise algoritmi demonstreerimiseks.