Lahendatud: kuidas sorteerida 2D massiivi mullidega

Kuigi รผhemรตรตtmelise massiivi sortimine on รผldtuntud probleem, millega enamikes programmeerimiskursustes ja -รตpetustes tegeldakse, vรตib keerulisemate andmestruktuuride, nรคiteks kahemรตรตtmelise massiivi korraldamine olla suurem vรคljakutse. Selles artiklis uurime mullide sortimise algoritmi rakendamist, mis sorteerib tรตhusalt Pythonis 2D-massiivi, analรผรผsime selle toimimist ja sukeldume mรตnda seotud kontseptsiooni, mis aitavad meetodit mรตista ja vajadusel kohandada.

**Mullide sortimine 2D-massiivi jaoks**

Alustuseks mรตelgem esmalt, mida tรคhendab 2D-massiivi sortimine, ja eristame seda 1D-massiivi sortimisest. Siin on nรคide:

1D_Array = [5, 2, 8, 1, 4]
2D_Array = [[8, 2, 6],
            [1, 5, 4],
            [9, 3, 7]]

Kui 1D-massiivi sortimiseks on vaja vaid numbrite seeriat รตigesse jรคrjekorda panna, siis 2D-massiivi sorteerimine viitab numbrite korraldamisele mitte ainult ridade ja veergude sees, vaid ka nende vahel. 2D-massiivi sorteerimist saab saavutada mitmel viisil, kuid meie tรคhelepanu keskmes on mullide sortimise algoritmi rakendamine.

** Samm-sammuline juhend 2D-massiivi sorteerimiseks mullsorteerimisega**

Vaatame nรผรผd รผksikasjalikku selgitust mullide sortimise rakendamise kohta 2D-massiivile:

1. Looge Pythoni funktsioon, mis vรตtab sisse 2D massiivi.
2. Tasandage 2D massiiv 1D massiiviks.
3. Rakendage 1D-massiivile mullide sortimise algoritm.
4. Kujundage sorteeritud 1D massiiv uuesti algsete mรตรตtmetega 2D massiiviks.

Ja Pythonis nรคeb see funktsioon vรคlja jรคrgmiselt:

def bubble_sort_2D(arr):
    n = len(arr)
    k = len(arr[0])
    
    # Flatten the 2D array into a 1D array
    flat_arr = [elem for row in arr for elem in row]
    
    # Perform bubble sort on the 1D array
    for i in range(len(flat_arr)):
        for j in range(0, len(flat_arr)-i-1):
            if flat_arr[j] > flat_arr[j+1]:
                flat_arr[j], flat_arr[j+1] = flat_arr[j+1], flat_arr[j]
    
    # Reshape the 1D array back into a 2D array
    sorted_arr = [flat_arr[i:i+k] for i in range(0, len(flat_arr), k)]
    
    return sorted_arr

Meil on nรผรผd selge ja tรตhus funktsioon 2D-massiivi sortimiseks Pythonis, kasutades mullide sortimise algoritmi.

Selle jaotise peamised mรคrksรตnad: Mullide sortimine, 1D massiiv, 2D massiiv, Pythoni funktsioon, tasandamine, รผmberkujundamine.

รœlevaade mullide sortimise algoritmist

Mullide sortimine on pรตhiline sortimisalgoritm, mis toimib loendi jรคrjestikuse itereerimise ja kahe kรตrvuti asetseva elemendi vรตrdlemise teel. Kui elemendid on vales jรคrjekorras, siis need vahetatakse. Seda protsessi korratakse, kuni kogu loend on tรคielikult sorteeritud.

Peamine eelis mullide sortimise algoritm on selle lihtsus. Kuid selle peamine puudus peitub selles jรตudlus, kuna see ei ole suurte andmekogumite jaoks kรตige tรตhusam sortimismeetod, halvimal juhul on ajaline keerukus O (n ^ 2). Kuigi see ei pruugi olla parim valik รผlitรตhusate lahenduste jaoks, on see siiski piisav vรคiksemates rakendustes ja รตppetรถรถs.

Selle jaotise peamised mรคrksรตnad: Mullide sortimise algoritm, lihtsus, jรตudlus, ajaline keerukus.

Pandad andmete lihtsaks manipuleerimiseks ja sortimiseks

Kuigi mullsorteerimine on รตppimiseks oluline sortimisalgoritm, on 2D-andmestruktuuridega tegelemiseks tรตhusamaid viise, eriti kui kasutate Panda raamatukogu. Pandadega saate hรตlpsasti andmeid laadida, tรถรถdelda ja sorteerida, kasutades selle vรตimsat ja intuitiivset andmeraami struktuuri.

Siin on lรผhike nรคide 2D-loendi sortimisest Pandade abil.

import pandas as pd

data = [[8, 2, 6],
        [1, 5, 4],
        [9, 3, 7]]

# Load the data into a Pandas DataFrame
df = pd.DataFrame(data)

# Sort the DataFrame
sorted_df = df.stack().sort_values().unstack()

# Convert the sorted DataFrame into a 2D list
sorted_data = sorted_df.to_numpy().tolist()

Pandas pakub laia valikut lisafunktsioone, mis vรตivad teie andmetega manipuleerimise ja analรผรผsi tรถรถvoogu oluliselt tรคiustada, muutes selle mรตnel juhul vรตimsaks alternatiiviks klassikaliste sortimisalgoritmide (nt mullsorteerimise) kasutamisele.

Selle jaotise peamised mรคrksรตnad: Panda teek, tรตhus, 2D andmestruktuurid, sorteerimine, DataFrame.

Seonduvad postitused:

Jรคta kommentaar