Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> python Programming >> Content

    Hur man slår ihop ett Sortera i Python

    Sortering datalistor är ett problem som har förargat programmerare sedan början av datorprogrammering . Sortering någon lista med data kan sluta som ett minne - och tidskrävande uppgift . På grund av detta har olika slags metoder uppfunnits för att minimera utmaning och ansträngning för sortering . En metod är samman sortering . Den delar upp en lista rekursivt in singulära element och återförenar listan i sorterade formen . Alla programmeringsspråk som stöder rekursion , såsom Python , kan genomföra en sammanslagning sort . Saker du behöver
    Pythontolk med Interactive Development Environment
    Visa fler instruktioner
    1

    Definiera " mergesort " funktionen . Denna grundläggande funktion kallar sig rekursivt , dela listan storlek i hälften med varje samtal . När mergesort funktionen slår en lista med ett element , stannar rekursion och avkastningen elementet . Som mergesort rekursion rullas , är varje mindre lista slås ihop i sorterad ordning . Detta exempel visar en grundläggande mergesort funktion som tar en lista som argument :

    >>> def mergesort ( li ) :

    . . . If Len ( li ) < 2 :

    . . . återvända li

    . . . mid = len ( li ) /2 Review

    . . . första = mergesort ( li [ : mitten ] ) katalog

    . . . Senast = mergesort ( li [ mid : ] ) katalog

    . . . returnera samman ( första , sista )
    2

    Konfigurera merge metoden . Denna funktion kommer att fungera som sorteringsmetod , den returnerar en sorterad lista av element . Den samman- metoden tar två redan sorterade listor . Det definierar därefter en intern lista " sorteras " som kommer att representera de kombinerade sorterade argumentlistor . Den samman- metoden åstadkommer detta genom att ta det minsta elementet och sätter in det i en ny lista " sorteras " . När en av de listor ändar , är den andra listan införd i sin helhet

    >>> def merge ( x , y ) : .

    . . . sorteras = [ ]
    3

    Merge listorna i kopplingen metoden . Den " medan " loop i exemplet jämförs varje lista punkt för punkt , med den minsta del och sätter in det i en ny lista " sorteras " . När en av listorna slutar , är den andra listan införd i sin helhet , och den nya sorterade listan returneras :

    . . . i, j = 0 , 0

    . . . medan jag < len ( x ) och j < len ( y ) :

    . . . Om x [ i] < = y [ j ] :

    . . . sorted.append ( x [ i] ) katalog

    . . . i + = 1

    . . . annanstans :

    . . . sorted.append ( y [ j ] ) katalog

    . . . j + = 1

    . . . sorterade + = x [ I : ]

    . . . sorterade + = y [ : j ]

    . . . tillbaka sorteras Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Skillnader mellan skriv & Writeline i Python
    ·Hur man gör en flottör i Python
    ·Hur svårt är Utforma ett GUI i Python
    ·Hur man skriver ett program i Python för Diophantine E…
    ·Hur man använder html5lib i Python
    ·Hur man går Strängar i Python
    ·Hur till Aktivera en knapp med wxPython
    ·Ställa upp en tabell i Python
    ·Hur man skapar en annan process i Python
    ·Hur man kompilerar ett Python -kod för fel utan Runnin…
    Utvalda artiklarna
    ·Hur man använder VB6 som en SWF Variable Finder
    ·Hur man gör ett flödesschema som visar en Array
    ·Hur man upptäcker mobila webbläsare med ASP
    ·Kan jag använda PHP kodning med en HTML- editor som Ko…
    ·Hur man gör ett formulär passa alla storlekar skärme…
    ·Hur konvertera till Boolean i Python
    ·Vad är en Visual Basic Miljö
    ·Lägga till en startsida till en webbläsare i C #
    ·Hur Hand Trace Genom programkod
    ·Om Arrays
    Copyright © Dator Kunskap http://www.dator.xyz