| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
software  
  • Adobe Illustrator
  • animation Software
  • Antivirus Software
  • Audio Software
  • Sikkerhedskopiere data
  • brænde cd'er
  • brænde dvd'er
  • Datakomprimeringssystem
  • database Software
  • Desktop Publishing
  • Desktop Video
  • Digital Video Software
  • Drupal
  • Educational Software
  • Engineering Software
  • Fil Forlængelse Types
  • finansiel Software
  • Freeware, Shareware & Abandonware
  • GIMP
  • grafik Software
  • Home Recording Software
  • Microsoft Access
  • Microsoft Excel
  • Microsoft Publisher
  • Microsoft Word
  • Open Source Code
  • Anden Computer Software
  • PC spil
  • Photoshop
  • Portable Document Format
  • PowerPoint
  • præsentation Software
  • produktivitet Software
  • Quicktime
  • Remote Desktop Management
  • SQL Server
  • Skype
  • Software betaversioner
  • Software Consultants
  • Software Development Companies
  • software Licensing
  • regneark
  • Skat forberedelse software
  • Utility Software
  • Web Clip Art
  • Windows Media Player
  • Tekstbehandling Software
  • Facebook
  • Twitter
  • Instagram
  • LinkedIn
  • TikTok
  • WhatsApp
  • WordPress
  • Chrome
  • Discord
  • Amazon
  •  
    Computer Viden >> software >> Datakomprimeringssystem >> Content
    Hvad er tidskompleksiteten af ​​vektorindsatsoperation i datastrukturer og algoritmer?
    Tidskompleksiteten af ​​`indsæt '-operationen i en vektor afhænger af hvor Du indsætter elementet.

    Her er en sammenbrud:

    * Indsættelse i slutningen (ved hjælp af `push_back` eller tilsvarende): Dette er generelt O (1) - Amortiseret konstant tid . "Amortiseret" betyder, at selvom vektoren lejlighedsvis skal omfordele sin underliggende hukommelse (som tager O (n) tid), er det meste af tiden, at indsættelsen simpelthen placerer elementet i det næste tilgængelige slot. Over mange indsættelser er den gennemsnitlige tid tæt på konstant.

    * Indsættelse i en bestemt position (ved hjælp af `indsæt (iteratorposition, værdi)` eller tilsvarende): Dette er o (n) - lineær tid . Her er hvorfor:

    1. Find stillingen: Hvis iteratoren gives direkte, er det normalt O (1) at finde positionen inden for den eksisterende vektor. Hvis du imidlertid skal * søge * efter indsættelsespunktet (f.eks. Indsættelse i en sorteret rækkefølge), kan søgetid i sig selv være O (n) eller O (log n) afhængigt af den anvendte søgealgoritme (henholdsvis lineær søgning eller binær søgning). Men den skiftende del dominerer.

    2. skiftende elementer: For at gøre plads til det nye element skal alle elementer * efter * indsættelsespunktet forskydes en position til højre. I værste tilfælde (indsættelse i begyndelsen) skal du skifte `n` elementer. I det gennemsnitlige tilfælde (indsættelse i midten) skifter du omtrent `n/2` elementer. I begge tilfælde bidrager den skiftende operation O (n) tidskompleksitet.

    Sammendragstabel:

    | Indsættelsesplacering | Tidskompleksitet | Forklaring |

    |----------------------|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

    | Slut (push_back) | O (1) (amortiseret) | Normalt konstant tid. Der kan lejlighedsvis være nødvendigt med omfordeling, men over mange indsættelser forbliver den gennemsnitlige tid tæt på konstant. |

    | Specifik position | O (n) | Kræver at skifte alle elementer efter indsættelsespunktet. Den skiftende operation dominerer tidskompleksiteten. Bemærk:Hvis indsættelsespunktet skal findes ved at søge inden for vektoren, vil denne søgningstid blive føjet til den samlede kompleksitet. |

    Vigtige overvejelser:

    * omfordeling: Når en vektor løber tør for kapacitet, skal den omfordele en større hukommelsesblok og kopiere alle de eksisterende elementer til den nye blok. Denne omfordelingsoperation er O (n). Imidlertid fordobler vektorer ofte deres kapacitet, hver gang de omfatter, hvilket gør omfordeling sjældent nok til, at omkostningerne afskrives over mange indsættelser.

    * Vektorimplementering: Specifikationerne ved vektorimplementeringer kan lidt påvirke ydeevnen. For eksempel kan nogle implementeringer muligvis bruge mere sofistikerede hukommelsesstyringsteknikker.

    Eksempel (C ++):

    `` CPP

    #include

    #include

    int main () {

    std ::vector myVector ={1, 2, 3, 4, 5};

    // Indsættelse i slutningen (amortiseret o (1))

    myvector.push_back (6);

    std ::cout <<"Efter push_back:";

    for (int x:myVector) std ::cout < std ::cout <

    // Indsættelse i en bestemt position (O (n))

    myvector.insert (myvector.begin () + 2, 10); // Indsæt 10 ved indeks 2

    std ::cout <<"Efter indsættelse:";

    for (int x:myVector) std ::cout < std ::cout <

    return 0;

    }

    `` `

    I sammendraget skal du være opmærksom på * hvor * du indsætter i en vektor. `Push_back` er din ven, hvis du bare har brug for at tilføje til slutningen. Hvis du har brug for at indsætte i midten, skal du overveje præstationsimplikationerne, især hvis du laver mange sådanne indsættelser. Hvis der kræves hyppige midterste indsættelser, kan alternative datastrukturer som tilknyttede lister eller afbalancerede træer være mere egnede.

    Forrige :

    næste : No
      Relaterede artikler
    ·Hvordan til at afkode en ZIP- fil 
    ·Audio Compression Sammenligning MP3 Vs. WMA 
    ·Sådan Format 250MB Zip-diske 
    ·Hvordan til at komprimere mapper i Zip-filer 
    ·Sådan pakkes og komprimere Zip-filer 
    ·Hvordan til at komprimere en stor fil til Send 
    ·Kan alle filformater komprimeres? 
    ·Hvordan til at komprimere en mp3-fil 
    ·Hvorfor komprimeres lydfiler? 
    ·Sådan bruges Bzip2 at komprimere filer 
      Anbefalede Artikler
    ·Sådan tilføjes et Colored filter i Adobe Photoshop CS…
    ·Kan jeg bruge iTunes til at Mix Music 
    ·Sådan udgør en procentdel af Time i en 24 -timers cyk…
    ·Hvordan laver du et ondt smiley ansigt i PowerPoint? 
    ·Sådan foretages fejlfinding streaming en live webcast …
    ·Sådan deaktiverer Skype i Firefox 
    ·Sådan gendannes My Word-fil 
    ·Sådan geninstalleres RealPlayer 
    ·Hvordan vil modtage faxer med et modem 
    ·Hvad er Riskware Keylogger 
    Copyright © Computer Viden https://www.computerdk.com