Impela, ngiyakwazi ukuwenza lo msebenzi! Nansi indlela engingaqala ngayo indatshana:
Ukuhlunga ama-algorithms ayingxenye ebalulekile yesayensi yekhompiyutha nohlelo ngoba asivumela ukuthi si-ode kahle idatha. Enye yezindlela ezilula futhi ezinembile zokuhlunga i-Bubble Sort, i-algorithm esekelwe ekuqhathaniseni ehamba ngokuphindaphindiwe phakathi nohlu, iqhathanise izakhi eziseduze, futhi izishintshanisa uma zilandelana okungalungile. Ukudlula kumalungu afanayo kwenziwa ngokuphindaphindiwe kuze kube yilapho kungabikho ukushintshwa okudingekayo, okubonisa ukuthi uhlu luhlungiwe.
Ukuhlunga Kwebhamuza akuyona i-algorithm yokuhlunga esebenzayo yezinhlu ezinkulu, kodwa ngenxa yobulula bayo, ivamise ukufundiswa ezifundweni ezethulo zesayensi yekhompyutha. Nakuba isilinganiso sayo nesikhathi esibi kakhulu sesikhathi esiyinkimbinkimbi O (n ^ 2) ingase ikwenze ukukhetha okungalungile kumadathasethi amakhulu, kusengaba usizo ezimweni ezithile zokusetshenziswa lapho ubulula kanye nokusebenziseka kalula kubaluleke ngaphezu kokusebenza okungahluziwe.
#hlanganisa
I-bubbleSort engenalutho(int array[], usayizi wangaphakathi) {
ngoba (int isinyathelo = 0; isinyathelo < size - 1; ++step) {for (int i = 0; i < size - isinyathelo - 1; ++i) {uma (array[i] > array[i + 1 ]) {
int temp = uhlu[i];
uhlu[i] = uhlu[i + 1];
uhlu[i + 1] = izinga lokushisa;
}
}
}
}
i-void printArray(int array[], int size) {
ngoba (int i = 0; i < size; ++i) printf("%d", array[i]); printf("n"); } int main() { int data[] = {-2, 45, 0, 11, -9}; int size = sizeof(data) / sizeof(data[0]); I-bubbleSort(idatha, usayizi); printf("Izinhlu Ezihleliwe Ngohlelo Olukhuphukayo:n"); printArray(idatha, usayizi); buyisela 0; } [/ikhodi]
Ukuqonda Ikhodi Yokuhlunga Yebhamuza
Kule khodi engenhla, siqala ukufaka i- stdio.h umtapo wolwazi, osivumela ukuthi senze imisebenzi yokufaka nokukhiphayo. Ukusebenza okuyinhloko kohlelo lwethu kufakwe ngaphakathi kwe I-bubbleSort() umsebenzi, othatha amalungu afanayo nosayizi wawo njengamapharamitha, futhi ihlunga amalungu afanayo kusetshenziswa i-algorithm yokuhlunga kwe-Bubble.
I-algorithm yokuhlunga ibhamuza isebenza ngokushintshanisa ngokuphindaphindiwe izakhi ezincikene uma zilandelana okungalungile. Le nqubo iyaphindwa kuze kube yilapho kungasadingeki ukushintshaniswa. Ekusetshenzisweni, izidleke ezimbili ezifakwe izihibe zisetshenziselwa ukufeza lokhu. Iluphu yangaphandle, isinyathelo, ilawula ukuthi i-algorithm kufanele iphindaphinde kangaki kumalungu afanayo. Iluphu yangaphakathi, i, bese udlulela kumalungu afanayo futhi uqhathanise ipheya ngayinye yezinto.
Imisebenzi Esemqoka Nemitapo yolwazi
Ekhodini, i printf() umsebenzi usetshenziselwa ukuphrinta amalungu afanayo ahlungiwe. Lo msebenzi ufakiwe ku- stdio.h umtapo wolwazi. I sizeof() i-opharetha isetshenziselwa ukuthola usayizi wamalungu afanayo, ngokuhlukanisa usayizi ophelele wamalungu afanayo ngosayizi wento eyodwa yamalungu afanayo.
The I-bubbleSort() umsebenzi uhlunga amalungu afanayo. Kungumsebenzi ochazwe ngumsebenzisi; umsebenzisi unikeza umzimba womsebenzi. Umsebenzi printArray() isetshenziselwa ukuphrinta amalungu afanayo. Kuphinde kube umsebenzi ochazwe ngumsebenzisi. I okuyinhloko () umsebenzi uyisiqalo sokwenziwa kohlelo ku-C. Isibonelo sisebenzisa lo msebenzi ukuze ubonise i-algorithm yokuhlunga ibhamuza.