Rešeno: kako sortirati 2d niz pomoću mehurića

Posljednje ažuriranje: 09/11/2023

Iako je sortiranje jednodimenzionalnog niza dobro poznat problem koji se rješava u većini kurseva programiranja i tutorijala, organiziranje složenijih struktura podataka, kao što je dvodimenzionalni niz, može predstavljati veći izazov. U ovom članku ćemo istražiti implementaciju algoritma sortiranja oblačićima koji efikasno sortira 2D niz u Pythonu, analizirati kako on funkcionira i zaroniti u neke povezane koncepte koji će pomoći u razumijevanju metode i prilagođavanju kada je to potrebno.

**Bubble Sortiranje za 2D niz**

Za početak, hajde da prvo razmotrimo šta znači sortiranje 2D niza i razlikovati ga od sortiranja 1D niza. Evo primjera:

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

Dok sortiranje 1D niza zahtijeva samo stavljanje niza brojeva u ispravan redoslijed, sortiranje 2D niza se odnosi na organiziranje brojeva ne samo unutar redova i kolona, ​​već i preko njih. Sortiranje 2D niza može se postići na brojne načine, ali naš fokus će biti na primjeni algoritma sortiranja mehurića.

**Vodič korak po korak za sortiranje 2D niza pomoću mjehurića sortiranja**

Hajde sada da se udubimo u objašnjenje korak po korak primene sortiranja mehurića na 2D niz:

1. Kreirajte Python funkciju koja uzima 2D niz.
2. Izravnajte 2D niz u 1D niz.
3. Primijenite algoritam sortiranja mehurića na 1D niz.
4. Preoblikujte sortirani 1D niz natrag u 2D niz s originalnim dimenzijama.

A evo kako će funkcija izgledati u Pythonu:

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

Sada imamo jasnu i efikasnu funkciju za sortiranje 2D niza u Pythonu koristeći algoritam sortiranja mehurića.

Glavne ključne riječi za ovaj odjeljak: Bubble sortiranje, 1D niz, 2D niz, Python funkcija, izravnavanje, preoblikovanje.

Pregled algoritma za sortiranje mehurića

Bubble sortiranje je osnovni algoritam za sortiranje koji radi uzastopnim ponavljanjem kroz listu i poređenjem dva susjedna elementa. Ako su elementi u pogrešnom redoslijedu, oni se zamjenjuju. Ovaj proces se ponavlja dok se cijela lista u potpunosti ne sortira.

Glavna prednost algoritma sortiranja mehurića je njegov jednostavnost. Međutim, to je glavni nedostatak leži u svom performanse, jer to nije najefikasnija metoda sortiranja za velike skupove podataka, sa najgorem vremenskom složenošću od O(n^2). Iako možda nije najbolji izbor za visokoefikasna rješenja, ipak se pokazuje dovoljnim u manjim aplikacijama i za nastavne svrhe.

Glavne ključne riječi za ovaj odjeljak: Algoritam sortiranja mehurićima, jednostavnost, performanse, vremenska složenost.

Pande za jednostavnu manipulaciju i sortiranje podataka

Dok je sortiranje oblačićima važan algoritam za sortiranje za učenje, postoje efikasniji načini za rješavanje 2D struktura podataka, posebno kada se koristi Pandas biblioteka. Uz Pandas, možete lako učitavati, manipulirati i sortirati podatke koristeći njegovu moćnu i intuitivnu strukturu okvira podataka.

Evo kratkog primjera kako sortirati 2D listu koristeći Pandas:

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 nudi širok spektar dodatnih funkcionalnosti koje mogu uvelike poboljšati vašu manipulaciju podacima i radni tok analize, čineći ga moćnom alternativom korišćenju klasičnih algoritama za sortiranje kao što je sortiranje u mehurićima u nekim slučajevima.

Glavne ključne riječi za ovaj odjeljak: Pandas biblioteka, efikasna, 2D strukture podataka, sortiranje, DataFrame.

Slični postovi: