| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Python Programming >> Content
    Rekursiv Merge Sorter i Python
    Sortering er traditionelt en vanskelig opgave i datalogi. Vælge en sorteringsalgoritme som er effektiv og hurtigt kan være vanskelig . Ofte effektiv algoritme valg indebærer kendskab til de data, der sorteret og specialiserede former arbejder normalt meget bedre end generelle sortering algoritmer. Men visse former , såsom " merge slags , " kan arbejde i generelle situationer ved at nedbryde sæt og sortering mindre stykker rekursivt . Listen

    En sammenfletning slags er en " del og hersk " algoritme , idet det tager dele af listerne og hele tiden bryder dem i to halvdele , indtil man kommer enkelte elementer i listen , som derefter fusionerede i rækkefølge. For eksempel begynder med en numerisk liste såsom

    5 6 2 4 1 9 8 3 7

    Sortering af en liste som denne med en sammenfletning slags vil kræve en halvering af listestørrelsen indtil hver grundtallet eksisterer alene. Derefter kan den slags sammenligne tallene og sætte dem sammen i korrekt rækkefølge ( laveste til højeste , i dette tilfælde) .
    Flet Method

    merge metoden er ligetil : Hej

    def merge (første, anden )

    tager to lister , vil metoden flette dem sammen ved at starte ved begyndelsen af ​​hver liste . Derefter tilføjer den næste mindste beløb for hver liste til en ny liste . Resultatet er en sorteret liste . (Husk at korrekt indsætte fane white space efter ", mens " og " hvis /else " udsagn . ) : Hej

    mens jeg < len (første) og j < len (anden ) : Hej < p> hvis først [i] <= sekund [ j] : Hej

    new_list.append (første [i] )

    i = i + ​​1

    andet : < br >

    new_list.append (anden [ j] )

    j = j + 1}

    Endelig, efter én liste slutter, de resterende værdier er placeret i den nye liste : < br >

    new_list + = første [i : ]

    new_list + = sekund [ j: ]

    afkast end_list
    Merge sorteringsbetingelser

    selve merge slags driver den vigtigste sortering algoritme. Der er to vigtigste funktionelle dele: den betingede aspekt , der stopper rekursionen når listerne er opdelt , og den faktiske rekursion , der halverer listerne. HALT betingelse kommer først : Hej

    def mergesort (liste ) : Hej

    hvis len (liste ) == 1 : Hej

    retur liste

    Dette sikrer, at når en sub liste når kun én , skal dette element returneres for at det at blive sammenlagt med de andre numre .
    Merge Sort Recursion

    Den anden halvdel af den slags er rekursion . Efter den "hvis" erklæring /betinget som følger : Hej

    andet : Hej

    midt = len (liste ) /2

    start = mergesort (liste [ midten: ] )

    ende = mergesort (liste [ : midt ] )

    retur merge (start , slut)

    grund af rekursion , efter at listerne er opdelt i enkelte elementer , algoritmen back sporer op til sidste henrettet metode. Så med den tid, den erklæring, "return merge (start , slut )" henretter , returnerer algoritmen en flettet , sorteret liste af to tidligere fusioneret , sorteret lister over mindre størrelse.
    < br >

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan fjernes alle breve fra en liste i Python 
    ·Sådan Erstat White Space Med Python Regex 
    ·Sådan fjernes en Python Decimal 
    ·Sådan Slet tegnsætningstegn i Python 
    ·Sådan eksporteres billeder til Python 
    ·Sådan får Exit status i Python 
    ·Sådan oprettes en liste fra en streng i Python 
    ·Sådan tilføjes en Enter Character i Python 
    ·Sådan Konverter en CSV-fil til en graf i Python 
    ·Sådan Pakke Python Scripts 
      Anbefalede Artikler
    ·Visual C Projekter 
    ·Hvad er Mellemrum i Matlab 
    ·Hvordan til Mount et ISO Image i OpenSUSE 
    ·Sådan Defrag en VMWare Billed 
    ·Sådan bruges Strpbrk Funktion i C + + 
    ·Sådan vises en apostrof i VBScript 
    ·Sådan Suppleant rækkefarver i CSS Med PHP 
    ·Sådan Set Up formulargodkendelsens 
    ·Turbo C Tutorial 
    ·Sådan Compute en gennemsnitlig i Visual Basic 
    Copyright © Computer Viden http://www.computerdk.com