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 >> C /C + + -programmering >> Content

    Turbo C sortering

    Sortera en array med data är en av de klassiska problemen i datavetenskap , och så det borde inte komma som någon överraskning att en mängd olika metoder för sortering i Turbo C och andra språk har tänkt . De sträcker sig från ineffektiva men enkel att implementera metoder för att mycket snabbare men mer komplexa metoder . Den bästa algoritmen för en situation beror på den förväntade storleken på de data som ska sorteras och vikten av effektivitet . Bubble Sort

    Bubble Sort är det enklaste , och långsammast , sortering algoritm . Den utgår helt enkelt genom arrayen och jämför det aktuella elementet till elementet direkt framför den . Om dessa två delar är i ordning , byter de plats . När bubblan Sortera når slutet , kontrollerar den för att se om något förändrats ställen . Om det gjorde det , börjar det om från början . Det fortsätter loopa igenom arrayen tills det lyckas fullfölja en hel passera utan att göra någon byta . I genomsnitt tar det O ( n ² ) tid , men om uppgifterna är kända för att vara mycket nära sorterade , med kanske bara en del på sin plats , kan det fungera i O ( n ) . Så det är en bra metod för små matriser som inte sorteras ofta eller större matriser som är kända för att redan sorteras ( eller väldigt nära så ) för det mesta .
    Selection Sort

    Selection sort är något mer raffinerat än Bubble sort . Algoritmen fortsätter genom hela samling av data för att hitta det minsta elementet . Varhelst det elementet är , har det sin position bytte med det första elementet , och en räknare konstaterar att det första elementet i arrayen är kända för att vara ordentligt sorteras . Den fortsätter sedan genom hela matrisen igen , med undantag för det första elementet ( vilket är känt för att vara i rätt plats . ) När den hittar den lägsta elementet , flyttas det till det andra och ökar räknaren för att indikera att de två första element är kända som skall sorteras . Sammantaget arbetar Selection Sort i O ( n ² ) tid , men den har en fördel : som mest , endast n -1 ändrar någonsin inträffar i arrayen , eftersom varje element endast flyttas när dess läge är känt . Detta gör den till en bra algoritm i vissa exotiska situationer där data skrivs till minnet tar drastiskt längre än att läsa den .
    Quicksort

    Som namnet antyder , den QuickSort är snabb. I genomsnitt kan den utföra ett slags i O ( n log n ) tid. Men det är mycket mer komplicerat än många andra program och kräver att utvecklaren veta lite om data i arrayen innan handen . Först en " pivot värde " måste väljas . Detta är det värde som utvecklaren tror ligger nära medianen av alla värden i arrayen. Ju bättre pivot värde , desto snabbare Quicksort kommer att utföra . Därefter arrayen indelade i två grupper : de som ovanför pivot värde flyttas till den högra sidan , och de under den svängbara värde flyttas till den vänstra sidan . Förhoppningsvis , de två sidorna är nära att vara lika i storlek , men de behöver inte vara exakt samma . Slutligen börjar quicksort algoritmen om från början på varje sida , med nya pivot valda värden , och dessa halvor så småningom delas i fjärdedelar . När quicksort har uppdelat arrayen så att varje sektion har bara ett värde , har arrayen har sorterats .

    Liksom de flesta rekursiva algoritmer , kan detta vara svårt att visualisera , så du uppmuntras att se steg för steg - exempel som ges i tredje referens .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Verktyg för att ta en minnesläcka
    ·Hur man på Sortera en array i C + +
    ·Turbo C sortering
    ·Så Reverse Engineer på Visual C
    ·Hur man skriver om Uttalanden i C + +
    ·Hur konvertera en ingång till ett heltal
    ·C + + Datatyper
    ·Hur man kompilerar kod på en Mac
    ·Hur man använder GDB Debugger av GNU
    ·Hur man gör ett operativsystem
    Utvalda artiklarna
    ·Hur man skapar ett gratis E Form
    ·Hur man skapar en Java- skript för att skicka meddelan…
    ·Hur man lägger in en Facebook Connect i sidfoten Anvä…
    ·NetBeans PHP Setup
    ·Hur Infoga VB till Flash 8
    ·Hur man ändra tiden i registret med en Batch -fil
    ·Hur man använder Python ram på 1 & 1
    ·Hur fixar GCC Varning implicit deklaration av funktion
    ·Hur man gör hjärtan på en bärbar dator
    ·Hur man läser Cookies Med Python
    Copyright © Dator Kunskap http://www.dator.xyz