Դույլերի տեսակավորման ալգորիթմը տեղում է:
Դույլերի տեսակավորման ալգորիթմը տեղում է:

Video: Դույլերի տեսակավորման ալգորիթմը տեղում է:

Video: Դույլերի տեսակավորման ալգորիթմը տեղում է:
Video: Ալգորիթմներ #1 - Bubble Sort տեսակավորման ալգորիթմ։ Երբ այն օգտագործել և ինչպես ծրագրավորել։ 2024, Նոյեմբեր
Anonim

Ոչ, դա ներս չէ տեղ տեսակավորում ալգորիթմ . Ամբողջ գաղափարը հենց այդ ներդրումն է տեսակավորում իրենք իրենց, քանի որ նրանք տեղափոխվել են դույլեր . Լավագույն դեպքերում (հաջորդական արժեքներ, բայց առանց կրկնության) անհրաժեշտ լրացուցիչ տարածքը նույնքան մեծ է, որքան սկզբնական զանգվածը:

Այս կերպ տեսակավորման ո՞ր ալգորիթմներն են գործում:

Որպես մեկ այլ օրինակ, շատ տեսակավորման ալգորիթմներ զանգվածները վերադասավորում են իրենց տեղում դասավորված հերթականությամբ, այդ թվում՝ պղպջակների տեսակավորում , սանր տեսակավորում, սելեկցիոն տեսակավորում, ներդրման տեսակավորում , heapsort և Shell տեսակավորում: Այս ալգորիթմները պահանջում են ընդամենը մի քանի ցուցիչ, ուստի դրանց տարածության բարդությունը O(log n է): Quicksort-ը գործում է տեղում՝ տեսակավորվող տվյալների վրա:

Հետագայում հարցն այն է, թե ինչպես է աշխատում դույլով տեսակավորման ալգորիթմը: Դույլի տեսակավորում , կամ bin տեսակավորում , է տեսակավորման ալգորիթմ որ աշխատանքները զանգվածի տարրերը մի շարքի բաշխելով դույլեր . Յուրաքանչյուրը դույլ այն ժամանակ է տեսակավորված անհատապես, կամ օգտագործելով տարբեր տեսակավորման ալգորիթմ , կամ ռեկուրսիվորեն կիրառելով դույլ տեսակավորման ալգորիթմ . Ստեղծեք զանգված սկզբնական դատարկ » դույլեր.

Համապատասխանաբար, ինչպե՞ս եք իրականացնում դույլային տեսակավորման ալգորիթմը:

  1. Ենթադրենք, մուտքային զանգվածը հետևյալն է. Ստեղծեք 10 չափի զանգված:
  2. Տեղադրեք տարրեր զանգվածից դույլերի մեջ: Տարրերը տեղադրվում են ըստ դույլի միջակայքի:
  3. Յուրաքանչյուր դույլի տարրերը դասավորված են՝ օգտագործելով կայուն տեսակավորման ալգորիթմներից որևէ մեկը:
  4. Յուրաքանչյուր դույլի տարրերը հավաքվում են:

Որտեղ է օգտագործվում դույլային տեսակավորումը:

Դույլի տեսակավորում հիմնականում օգտակար է, երբ մուտքագրումը միատեսակ բաշխված է տիրույթում: Օրինակ, հաշվի առեք հետևյալ խնդիրը. Տեսակավորել լողացող կետով թվերի մեծ հավաքածու, որոնք գտնվում են 0.0-ից 1.0 միջակայքում և հավասարաչափ բաշխված են տիրույթում:

Խորհուրդ ենք տալիս: