sortiranje niza u C-u

  • Začetnik teme THE_MASHIN
  • Datum pokretanja
T

THE_MASHIN

Gost
Imam vec program za sortiranje niza ali mi je potrebna funkcija, kao header file(.h) koja ucitani niz od n brojeva sortira od manjeg ka vecem ili obrnuto nije bitno. Brojevi se ucitavaju u glavnoj funkciji main().
Thank you !!!
 
eh, ne znam C. Evo ti smernice za literaturu:

Klasicni skolski algoritmi za sortiranje u vremenu n^2 postoje u vise varijanti u svakoj knjizi o ovoj tematici. Potrazi Bubble Sort posto za druge algoritme imana ne postoje, ili ih bar ja neznam.

Ozbilnjiji algoritmi u vremenu n*log(n) su ti
Merge Sort (ali ti treba pomocni niz)
Quick Sort
Heap Sort

potrazi na net ili u nekuj knjizici ove algoritme na C-u, ubedjen sam da ih ima na kilo, a prilicno su jednostavni pa ces ih razumeti...
 
Izvinite nije me bilo duze vremena, bio sam zauzet.
Ako neko ima bilo kakav kod neka ga prenese na prostor za odgovor, pa cu vidjeti da li mi odgovara.
Jednostavno ne znam koju variablu da uzmem kao povratnu (return), ili clanove niza ili broj clanova?
Hvala !
 
milos12345:
sta se davite, ne postoji brzi algoritam od quicka ako se upotrebi dobra f-ja za izbor, a uz to je i implementirana u hederima koji idu uz c

Greshish... ovaj, silno greshish sinak! Proguglaj malo pa pogledaj poredjenje brzine algoritama.

Inache, originalna tema : da se ne bi davio sa svakojakim algoritmima, uradi to u Bubble-sortu za pochetak - najjednostavnija moguca stvar, dve petlje u krug i gotovo :)
 
Lord British:
milos12345:
sta se davite, ne postoji brzi algoritam od quicka ako se upotrebi dobra f-ja za izbor, a uz to je i implementirana u hederima koji idu uz c

Greshish... ovaj, silno greshish sinak! Proguglaj malo pa pogledaj poredjenje brzine algoritama.

Inache, originalna tema : da se ne bi davio sa svakojakim algoritmima, uradi to u Bubble-sortu za pochetak - najjednostavnija moguca stvar, dve petlje u krug i gotovo :)
naravno da postoji brzi, ali od onih koji se najcesce koriste to je qsort
 
Lord British:
milos12345:
sta se davite, ne postoji brzi algoritam od quicka ako se upotrebi dobra f-ja za izbor, a uz to je i implementirana u hederima koji idu uz c

Greshish... ovaj, silno greshish sinak! Proguglaj malo pa pogledaj poredjenje brzine algoritama.

Inache, originalna tema : da se ne bi davio sa svakojakim algoritmima, uradi to u Bubble-sortu za pochetak - najjednostavnija moguca stvar, dve petlje u krug i gotovo :)
E, ajd' mi kazi bar jedan algoritam za sortiranje koji radi brze od n*log(n)!
 
u sustini ja mislim da je covek u pravu da postoje i brzi algoritmi(mada se vecina njih svodi na kombinovanje quicka sa drugim vrstama, a mislim i da je radix sort isto tu negde po brzini ako ne i brzi, ali je dovoljno komplikovan da ti treba dugo vremena da ukapirash sta radi), ali kao sto rekoh qsort se najcesce koristi, a u uz to ima ga i u nekom od hedera.........nego zaboravih da covek(koji je pokrenuo temu) moze da pogleda jednu vrstu implementacije qsort-a u kerninghan&ritchie
 
E-hej: postoji prilicno mrsed dokaz koji se zasniva na stablu odlucivanja i kojim se dokazuje da algoritam za sortiranje niza ne moze biti brzi od O(n*log(n)) Nijedan algoritam!

E, sad, za pojedine primene neki algorutmi su brzi/bolji od drugih. Radix mozda pretekne quick tek kod vrlo malih nizova. Inace quick je algoritam "u mestu", i prilicno je prost, pa se zato koristi u vecini slucajeva. Mana: zanimljivo, ali ako se pivot bira pseudo-sluajno quick je najbrzi! Znaci, probano - radi sporije ako se za pivota uzima srednji po velicini element ili bilo koji po drugi. Sta to znaci - s' obzirom da se zasniva na slucajnom izboru nemoguce je predvideti koliko dugo ce trajati procedura sortiranja pre nego sto se ona izvrsi. Zato se kod sistema koji zahtevaju strogu vremensku kontrolu pribegava sporijim ili algoritmima koji "nisu u mestu", ali su predvidivi. Najcesce se koristi heap sort, koji je prilicno slozen za realizovanje...
 
zaboravio si na josh jednu manu quick-a, a to je kad se primenjuje na sortirani niz :o( tada mu je valjda kvadratno vreme, a najbolje vreme je kad se nizovi dele odma na 2 dela tada je vreme nlogn (u literaturi termin "podeli pa vladaj"
 

Back
Top