MC, 2025
Ilustracja do artykułu: Python Data Structures and Algorithms: Alamin ang Lahat ng Kailangan Mong Malaman!

Python Data Structures and Algorithms: Alamin ang Lahat ng Kailangan Mong Malaman!

Sa mundo ng programming, ang mga data structures at algorithms ay napakahalaga. Ang Python, bilang isa sa pinakapopular na programming languages ngayon, ay may malawak na hanay ng mga data structures at algorithms na nagbibigay ng kakayahan para sa mas mabilis, mas efficient, at mas malinaw na code. Kung nais mong magpakadalubhasa sa Python at maging mas mahusay na developer, mahalaga ang pag-aaral ng mga ito. Sa artikulong ito, tatalakayin natin ang mga pangunahing data structures at algorithms sa Python, pati na rin ang mga halimbawa ng paggamit ng mga ito sa totoong buhay.

Ano ang Data Structures sa Python?

Ang mga data structures ay mga paraan kung paano iniimbak at inaayos ang data upang ito ay madaling ma-access at ma-modify. Sa Python, may mga built-in na data structures na pwede mong gamitin tulad ng lists, tuples, sets, at dictionaries. Bawat isa sa mga ito ay may kanya-kanyang gamit at benepisyo depende sa uri ng problema na iyong tinatangkang lutasin.

1. Lists

Ang list ay isang ordered at mutable collection ng mga items. Isa itong pinaka-ginagamit na data structure sa Python dahil sa pagiging versatile nito. Ang list ay maaaring maglaman ng iba't ibang uri ng data tulad ng numbers, strings, o kahit ibang lists.

# Halimbawa ng List:
fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # Output: apple
fruits.append("orange")  # Magdadagdag ng orange sa dulo ng list
2. Tuples

Ang tuple ay katulad ng list, ngunit ito ay immutable. Hindi mo maaaring baguhin ang mga elements ng tuple pagkatapos itong malikha. Ang mga tuples ay mas mabilis kumpara sa lists, at kadalasang ginagamit kapag hindi mo nais na baguhin ang data pagkatapos itong i-assign.

# Halimbawa ng Tuple:
coordinates = (4, 5)
print(coordinates[1])  # Output: 5
3. Sets

Ang set ay isang unordered collection ng mga unique na items. Walang duplication sa sets, kaya ito ay kapaki-pakinabang kapag kailangan mong tiyakin na walang mga duplicate na data sa isang collection.

# Halimbawa ng Set:
colors = {"red", "green", "blue"}
colors.add("yellow")  # Magdadagdag ng yellow sa set
4. Dictionaries

Ang dictionary ay isang unordered collection ng key-value pairs. Ginagamit ito para mag-imbak ng data na nauugnay sa mga keys. Magandang gamitin ito kapag ang data ay may specific na identifier (key) na maaari mong gamitin upang mabilis itong ma-access.

# Halimbawa ng Dictionary:
person = {"name": "Juan", "age": 25, "city": "Manila"}
print(person["name"])  # Output: Juan

Ano naman ang Algorithms?

Ang algorithm ay isang step-by-step na proseso o set ng mga rules na ginagamit upang lutasin ang isang partikular na problema. Ang mga algorithms ay may malaking epekto sa performance ng iyong programa, kaya't mahalaga ang tamang pagpili ng algorithm para sa iyong mga data structures.

1. Searching Algorithms

Ang mga searching algorithms ay ginagamit para maghanap ng specific na item sa isang collection ng data. Dalawang halimbawa ng common searching algorithms ay ang Linear Search at Binary Search.

Linear Search

Ang linear search ay isang simpleng algorithm kung saan tinitingnan ang bawat elemento ng listahan isa-isa hanggang sa makita ang hinahanap na item.

# Halimbawa ng Linear Search:
def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i  # Ibalik ang index ng nahanap na item
    return -1  # Ibalik ang -1 kung hindi nahanap

arr = [10, 20, 30, 40, 50]
target = 30
print(linear_search(arr, target))  # Output: 2
Binary Search

Ang binary search ay mas mabilis kumpara sa linear search, ngunit kailangan mong siguraduhin na ang list ay naka-sort. Sa binary search, hinahati ang listahan at tinitingnan ang gitnang item, pinapaliit ang paghahanap sa kalahating bahagi ng listahan hanggang sa makita ang item.

# Halimbawa ng Binary Search:
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

arr = [10, 20, 30, 40, 50]
target = 30
print(binary_search(arr, target))  # Output: 2
2. Sorting Algorithms

Ang sorting algorithms ay ginagamit upang ayusin ang data sa isang partikular na pagkakasunod-sunod, karaniwan ay ascending o descending order. Ang dalawang common sorting algorithms ay ang Bubble Sort at Merge Sort.

Bubble Sort

Ang bubble sort ay isang simple ngunit hindi efficient na algorithm. Tinutulungan nito ang pinakamalaking elemento na "bumulusok" sa huli ng listahan sa bawat iteration.

# Halimbawa ng Bubble Sort:
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print(arr)  # Output: [11, 12, 22, 25, 34, 64, 90]
Merge Sort

Ang merge sort ay isang efficient na algorithm na gumagamit ng divide-and-conquer technique. Hinahati nito ang listahan sa dalawang bahagi, inaayos ang bawat bahagi, at pinagsasama ang mga ito pabalik sa isang sorted list.

# Halimbawa ng Merge Sort:
def merge_sort(arr):
    if len(arr) > 1:
        mid = len(arr) // 2
        left_half = arr[:mid]
        right_half = arr[mid:]

        merge_sort(left_half)
        merge_sort(right_half)

        i = j = k = 0

        while i < len(left_half) and j < len(right_half):
            if left_half[i] < right_half[j]:
                arr[k] = left_half[i]
                i += 1
            else:
                arr[k] = right_half[j]
                j += 1
            k += 1

        while i < len(left_half):
            arr[k] = left_half[i]
            i += 1
            k += 1

        while j < len(right_half):
            arr[k] = right_half[j]
            j += 1
            k += 1

arr = [38, 27, 43, 3, 9, 82, 10]
merge_sort(arr)
print(arr)  # Output: [3, 9, 10, 27, 38, 43, 82]

Aling Data Structure at Algorithm ang Dapat Pumili?

Ang pagpili ng tamang data structure at algorithm ay depende sa iyong problema at mga pangangailangan. Halimbawa, kung kailangan mong maghanap ng item sa isang sorted na listahan, mas mainam ang binary search kaysa linear search. Kung ang layunin mo naman ay mabilis na pag-sorting, mas mainam gamitin ang merge sort kaysa bubble sort.

Konklusyon

Ang pag-aaral ng Python data structures at algorithms ay hindi lamang makakatulong upang mapabuti ang iyong coding skills, kundi magbibigay din sa iyo ng malalim na pang-unawa kung paano mag-optimize ng mga program at malutas ang mga complex na problema. Sa pamamagitan ng mga simpleng halimbawa at prinsipyo na tinalakay sa artikulong ito, mas magiging handa kang gamitin ang Python upang magsulat ng mas efficient at scalable na mga aplikasyon. Magpatuloy sa pagpapraktis, at magiging eksperto ka sa pag-gamit ng Python para sa mas mabilis at mas magaan na programming!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: