Renditja e algoritmeve: Mësoni pse nuk duhet të përdorni Bubblesort

Disclosure: Mbështetja juaj ju ndihmon të mbani sitin në punë! Ne fitojmë një tarifë referimi për disa nga shërbimet që rekomandojmë në këtë faqe.


A keni menduar ndonjëherë se si një kompjuter i vendos gjërat në rregull? Kur klikoni butonin A-Z në Excel, çfarë po ndodh vërtet?

Kompjuterët rendisin listat duke ndjekur procedurat e quajtura “algoritme klasifikimi”. Një algoritëm është një grup udhëzimesh që mund të ndiqen pa pushim, në mënyrë mekanike. Ekzistojnë disa algoritme të ndryshme klasifikimi – procedura të ndryshme për vendosjen e listave në rendin e tyre të duhur. Secila prej tyre ka pikat e forta dhe të dobëta.

Këtu janë algoritmet e klasifikimit më të njohura.

Renditja e flluskave

Lloji i flluskave është një algoritëm joefikas, por i thjeshtë. Rrallë përdoret në praktikë, por është e lehtë për tu kuptuar.

Lloji i flluskave funksionon duke krahasuar palë të njëpasnjëshme të elementeve në një listë. Elementet e parë dhe të dytë krahasohen, pastaj i dyti dhe i treti, pastaj i treti dhe i katërti, e kështu me radhë përmes listës. Pas çdo krahasimi, të dy elementët këmbehen nëse nuk janë në rregull. Pas një përsëritje të vetme, elementi më i madh do të ketë “flluskuar” deri në fund të listës. Kjo procedurë përsëritet pa pushim deri sa të renditet lista.

Në variantin me dy drejtime, krahasimet bëhen alternuar përpara përmes listës dhe më pas përmes listës. Kjo rritet një seksion i renditur në secilin fund të listës. Ky quhet edhe “lloj shaker koktejli”.

Kur të përdorni renditjen e flluskave

Kurrë, përveç se për demonstrim.

Më shumë informacione rreth Renditjes së Bubble

  • Shpjegimi i flluskave nga Algoritmiist, me kod shembull;
  • Algoritmi i Rendit Bubble i koduar në mbi 100 gjuhë të ndryshme programimi;
  • Bubble Sort ilustruar me Legos;
  • Bubble Sort ilustruar me vallëzimin popullor hungarez.

Renditja e futjes

Lloji i futjes është se si shumica e njerëzve intuitivisht i rendisin gjërat me dorë – për shembull, kur alfabëron letrat. Ai përfshin lëvizjen e secilit element, nga ana tjetër, në vendin e tij të duhur brenda një pjese tashmë të renditur.

Elementi i parë i listës konsiderohet “i renditur”. Pastaj konsiderohet elementi i dytë. Nëse është më i madh se elementi para tij, ai është në vendin e duhur dhe është pjesë e seksionit “të renditur”. Përndryshe, ajo është zhvendosur prapa një çarë dhe krahasohet me elementin pas saj. Elementi vazhdon të lëvizë prapa, derisa të jetë në pozicionin e duhur brenda pjesës së renditur të listës. Kjo procedurë përsëritet më pas me elementët e tretë, të katërt, të pestë, etj.

Kur të përdorni renditjen e futjes

Lloji i futjes është zakonisht zgjidhja më e shpejtë për renditjen e listave të vogla (10 ose më pak elementë), dhe kryen të paktën në mënyrë adekuate në listat e mesme. Megjithatë, mund të bëhet ngadalë në grupe më të mëdha.

Lloji i futjes gjithashtu performon mirë, edhe në grupe të mëdha, nëse lista tashmë është renditur kryesisht. Kjo e bën atë ideal për pastrimin e të dhënave të trashëguara të renditura nga njeriu, ose për përdorimin në lidhje me algoritmet e klasifikimit të tjerë. Për shembull, është e zakonshme të filloni me një lloj të shpejtë, dhe pastaj të kaloni në llojin e futjes pas disa përsëritjesh.

Më shumë informacione rreth Renditjes së Vendosjes

  • Futja Renditni shpjegime dhe ushtrime kodimi, në Akademinë Khan;
  • Futja Sort Algoritmi i koduar në afro 100 gjuhë të ndryshme programimi;
  • Vendosja Renditur ilustruar me gota me shkumë dhe treguar nga një student i Harvard CS;
  • Futja Renditur ilustruar me vallëzimin popullor hungarez.

Renditja e grumbullit

Lloji i grumbullimit është një lloj dy-pjesësh që përdor një strukturë binare të të dhënave binëse si një mbajtës i ndërmjetëm për elementët në listë.

Një grumbull binar është një strukturë peme, në të cilën secila nyje ka deri në dy nyje fëmijësh. Elementi më i madh është në majë të pemës. Eachdo nyje fëmije është më e vogël se nyja e prindërve. Kjo do të thotë që procesi i ndërtimit të një grumbulli renditet pjesërisht në listë. Pasi të ndërtohet grumbulli, elementi më i madh hiqet dhe vendoset në grupin e renditur – atëherë më i madhi nga grumbulli i mbetur, etj..

Kur të përdorni llojin e grumbullimit

Mesatarisht, lloji i grumbullit siguron performancë të mirë. Për më tepër, skenari i tij më i keq është shumë më mirë sesa skenari i rastit më të keq për gati çdo algoritëm tjetër. Prandaj përdoret shpesh me grupe të të dhënave të mëdha dhe të shpërndara.

Më shumë informacion mbi Renditja e Heap

  • Shpjegimi i hollësishëm i renditjes së Heap nga një profesor i CS në Kent State;
  • Ligjërata për Video dhe Heap Sort nga MIT;
  • Për një kuptim të thelluar të grumbujve dhe llojeve të grumbujve, shihni këtë seri seri me pesë pjesë.

Bashkoni renditjen

Bashkimi i dy listave tashmë të renditura në një listë të re tashmë të renditur është relativisht e thjeshtë: krahasoni elementin e parë të secilit dhe vendosni më të vegjlit në listën e re, përsërisni. Kjo është baza për llojin e bashkimit.

Për të filluar një lloj bashkimi, një listë ndahet në një grup “listash” me 1 element. Pastaj, çiftet e këtyre listave bashkohen në listat me dy elementë, të cilat më pas bashkohen në listat me 4 elementë, dhe kështu me radhë derisa të gjithë lista të bashkohet përsëri së bashku.

Kur të përdorni renditjen e bashkimit

Lloji i bashkimit është shumë efikas. Problemi i vetëm është se lloji i bashkimit zakonisht kërkon memorie të mjaftueshme aktive (RAM) për ta mbajtur listën dy herë. Prandaj mund të bëhet i pa realizueshëm në rrethana të caktuara.

Më shumë informacione rreth Renditjes së Merge

  • Bashkimi Sort nga Khan Academy është një mësim i shkëlqyer me gjashtë pjesë me ushtrime programimi të përfshira;
  • Bashkimi Renditni koduar në mbi 80 gjuhë të ndryshme programimi;
  • Bashkimi Sort me Dance Folk gjermane siguron një rutinë valle që demonstron algoritmin e klasifikimit.

Renditja e shpejtë

Lloji i shpejtë nuk është shumë intuitiv. Megjithatë është shumë efikas.

Hapi i parë në një renditje të shpejtë është të zgjidhni një element strumbullar. Ky mund të jetë çdo element në listë. Tjetra, të gjitha vlerat më të mëdha se strumbullari vendosen pas tij, ndërsa të gjitha vlerat më të vogla se sa vendosen para tij. Kjo krijon dy ndarje të cilat nuk janë të renditura, por janë në lidhje të saktë me njëra-tjetrën. Kjo procedurë e njëjtë bëhet në secilën ndarje, më pas në secilën nën-ndarje, etj. Kur ndarjet arrijnë një madhësi prej një element secili, lista renditet.

Kur të përdorni Renditjen e Shpejtë

Renditja e shpejtë është një nga algoritmet e klasifikimit më të njohura për përdorim praktik. Shpejtësia mesatare është shumë e shpejtë. Sidoqoftë, skenari i rastit më të keq (që ndodh rrallë në grupet e të dhënave natyrore) bëhet problematik me grupe shumë të mëdha.

Më shumë informacione rreth Renditjes së Shpejtë

  • Renditja e shpejtë e koduar në mbi 100 gjuhë programimi;
  • Renditja e shpejtë e shpjeguar me Blloqe nga klasa CS-50 e Harvardit;
  • Tutoriali i Renditjes së Shpejtë nga Tutorials Point ka shumë detaje, kod kampioni dhe imazhe të animuara.

Burimet e Algoritmit të Renditjes së Përgjithshme

  • Struktura e të dhënave – teknikat e renditjes është një seri shumë e detajuar nga Tutorials Point;
  • Algoritmet e renditjes kanë vizualizime të çdo lloji, në kushte të ndryshme – madje mund të shikoni algoritme të ndryshme duke garuar njëri-tjetrin;
  • 15 Renditja e algoritmeve në 6 minuta është një vizualizim tërheqës i videos;
  • Të renditurit është video duke eksploruar problemin e klasifikimit të kompjuterizuar;
  • Whatfarë Algoritme të ndryshme të renditjes tingëllojnë si është një video e mrekullueshme “audibilization” duke përkthyer disa algoritme të klasifikimit në tingull.

përmbledhje

Shumica e kohës, kur programoni, nëse keni nevojë për diçka të parëndësishme të renditura – një grup i shkurtër vlerash, një kolonë të dhënash – thjesht do të përdorni çfarëdo metode ose funksioni të jetë ndërtuar në gjuhën tuaj të programimit ose bibliotekën e preferuar.

Por kur punoni në aplikacione të mëdha të të dhënave, është e rëndësishme të mendoni se si zgjedhja juaj e algoritmit do të ndikojë në performancën e sistemit tuaj. Përtej kësaj, algoritmet e klasifikimit janë një aspekt themelor i shkencës kompjuterike dhe duhet të kuptohen mirë nga kushdo që punon në zhvillim ose programim..

Leximi i mëtutjeshëm dhe burimet

Ne kemi më shumë udhëzues, mësime dhe infografikë që lidhen me kodimin dhe zhvillimin:

  • Burimet e Zhvilluesit C ++: një nga gjuhët më të njohura të programimit, i mirë për shumicën e llojeve të aplikacioneve.
  • Paraqitja dhe burimet e unikodeve: mësoni gjithçka rreth kodimit të karaktereve.
  • Paraqitja dhe burimet e MantisBT: MantisBT është një nga programet më të njohura të ndjekjes së gabimeve.

Codefarë kodi duhet të mësoni?

Të hutuar në cilën gjuhë programimi duhet të mësoni të kodoni? Shikoni infografin tonë, Codefarë kodi duhet të mësoni? Ajo jo vetëm që diskuton aspekte të ndryshme të gjuhëve, por përgjigjet në pyetje të rëndësishme siç janë, “Sa para do të bëj Java programuese për të jetuar?”

Codefarë kodi duhet të mësoni?
Codefarë kodi duhet të mësoni?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map