Competitive Programming Academy · Lektion

Hvorfor sortering først åbner for løsninger

Greedy- og to-pointer-opstillinger efter sortering

Lektion 4 af 413 trin

Hvorfor sortering først åbner for løsninger er en gratis Competitive Programming Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Competitive Programming Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Competitive Programming Academy-kurset indeholder 4 lektioner i alt.

Sortering er et forberedende træk

Sortering løser sjældent et problem alene, men den lægger grunden til det egentlige trick. En ordnet række forvandler et kaotisk array til en struktur, du kan udnytte.

Sortering muliggør to pointere

Når dataene er sorteret, bevæger to pointere sig fra begge ender. At finde et par med en ønsket sum går fra O(n²) til O(n).

Sortering muliggør binær søgning

Et sorteret array er vejen til binær søgning. Du kan finde værdier eller indsættelsespunkter på O(log n), når rækkefølgen er på plads.

from bisect import bisect_left
i = bisect_left(sorted_nums, target)

Grådige algoritmer kræver ofte sortering

Mange beviser for grådige algoritmer siger, at du skal tage det mindste eller afslutte det tidligste først. Sortering efter det relevante felt gør det rigtige valg let tilgængeligt.

Sortér for at finde dubletter

Efter sortering ligger ens elementer ved siden af hinanden. Derefter kan du finde eller tælle dubletter i én gennemgang uden ekstra hukommelse.

for i in range(1, len(a)):
    if a[i] == a[i-1]:
        print("dup", a[i])

Intervaller kræver sorterede starttidspunkter

At flette eller planlægge intervaller begynder med sortering efter starttidspunkt. Derefter kan en gennemgang fra venstre mod højre håndtere overlap på en enkel måde.

intervals.sort(key=lambda iv: iv[0])

Sortering afslører medianen

Det midterste element efter sortering er medianen, og forskellene mellem naboerne bliver tydelige. Mange afstandsproblemer bygger på dette.

Medregn den ekstra omkostning

Sortering tilføjer O(n log n), hvilket som regel er en lille pris i forhold til det arbejde, den gør muligt. Kontrollér, at det passer inden for tidsgrænsen, før du bygger videre på det.

Pas på ikke at miste de oprindelige indekser

Sortering ændrer positionerne. Hvis svaret kræver det oprindelige indeks, skal du sortere par af værdi og indeks, så du kan genskabe det.

order = sorted(range(n), key=lambda i: a[i])

Spørg: Vil sortering hjælpe

Når du sidder fast, så spørg, om sortering kan gøre problemet enklere. Hvis ja, kan en løsning med to pointere, en grådig algoritme eller binær søgning ofte dukke op.

Sortering er en naturlig første tanke

Dygtige problemløsere prøver tidligt sortering som et standardeksperiment. Det er billigt at tilføje og afslører ofte hele løsningen.

Hurtig kontrol

Du sorterer et array, men får senere brug for hvert elements position i inddataene.

Opsummering

Sortering muliggør to pointere, binær søgning, grådige algoritmer, fjernelse af dubletter og gennemgang af intervaller. Medregn omkostningen, og gem indekserne, når du får brug for dem. 🚀

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Hvorfor sortering først åbner for løsninger” gratis?

Ja — hele teksten til “Hvorfor sortering først åbner for løsninger” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Competitive Programming Academy-kurset, skal du opgradere til CoddyKit PRO. Competitive Programming Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Hvorfor sortering først åbner for løsninger”?

Greedy- og to-pointer-opstillinger efter sortering Du øver dig i Competitive Programming Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Competitive Programming Academy?

Der kræves ingen tidligere erfaring. Competitive Programming Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Hvorfor sortering først åbner for løsninger”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Competitive Programming Academy-lektion?

Ja. Alle Competitive Programming Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. sorted() og key-funktionen
  2. Sortér efter flere felter
  3. Brugerdefineret rækkefølge med functools.cmp_to_key
  4. Hvorfor sortering først åbner for løsninger
← Tilbage til Competitive Programming Academy