آموزش پایتون - مرتب‌سازی آرایه‌ها

ماژول array در پایتون کلاس array را تعریف می‌کند. یک شیء از کلاس array شبیه به آرایه‌های موجود در زبان‌های Java یا C/C++ است. برخلاف دنباله‌های درون‌ساخته پایتون، آرایه یک مجموعه همگن از رشته‌ها، اعداد صحیح یا اشیای اعشاری (float) است.

کلاس array هیچ تابع یا متدی برای مرتب‌سازی عناصر خود ندارد. با این حال، می‌توانیم با استفاده از یکی از روش‌های زیر به آن دست یابیم:

  • استفاده از یک الگوریتم مرتب‌سازی

  • استفاده از متد sort() در لیست

  • استفاده از تابع درون‌ساخته sorted()

بیاین هر کدام از این روش‌ها را با جزییات بررسی کنیم.

Python Array Sorting

مرتب‌سازی آرایه‌ها با استفاده از الگوریتم مرتب‌سازی

ما الگوریتم کلاسیک مرتب‌سازی حبابي (Bubble Sort) را برای به دست آوردن آرایه مرتب‌شده پیاده‌سازی می‌کنیم. برای انجام این کار، از دو حلقه توی در تو استفاده کرده و عناصر را برای چیدمان مجدد به ترتیب مرتب‌شده جابه‌جا می‌کنیم.

مثال

کد زیر را با استفاده از یک ویرایشگر کد پایتون اجرا کنید:

import array as arr
a = arr.array('i', [10,5,15,4,6,20,9])
for i in range(0, len(a)):
   for j in range(i+1, len(a)):
      if(a[i] > a[j]):
         temp = a[i];
         a[i] = a[j];
         a[j] = temp;
print (a)

این کد خروجی زیر را تولید خواهد کرد:

array('i', [4, 5, 6, 9, 10, 15, 20])

مرتب‌سازی آرایه‌ها با استفاده از متد sort() در لیست

اگرچه ماژول array متد sort() ندارد، اما کلاس درون‌ساخته List در پایتون متد sort دارد. در مثال بعدی از آن استفاده خواهیم کرد.

ابتدا یک آرایه تعریف کرده و با استفاده از متد tolist() یک شیء لیست از آن به دست آورید. سپس از متد sort() برای داشتن یک لیست مرتب‌شده استفاده کنید. در نهایت، با استفاده از لیست مرتب‌شده یک آرایه دیگر بسازید که آرایه مرتب‌شده را نمایش می‌دهد.

مثال

کد زیر نحوه دست‌یابی به آرایه مرتب‌شده با استفاده از متد sort() را نشان می‌دهد.

import array as arr

# creating array
orgnlArray = arr.array('i', [10,5,15,4,6,20,9])
print("Original array:", orgnlArray)
# converting to list 
sortedList = orgnlArray.tolist()
# sorting the list
sortedList.sort()

# creating array from sorted list
sortedArray = arr.array('i', sortedList)
print("Array after sorting:",sortedArray)

کد بالا خروجی زیر را نمایش می‌دهد:

Original array: array('i', [10, 5, 15, 4, 6, 20, 9])
Array after sorting: array('i', [4, 5, 6, 9, 10, 15, 20])

مرتب‌سازی آرایه‌ها با استفاده از تابع sorted()

سومین روش برای مرتب‌سازی یک آرایه، استفاده از تابع sorted() است که یک تابع درون‌ساخته محسوب می‌شود.

ساختار (Syntax) تابع sorted() به صورت زیر است:

sorted(iterable, reverse=False)

این تابع یک لیست جدید شامل تمام آیتم‌های قابل پیمایش (iterable) را به صورت صعودی برمی‌گرداند. پارامتر reverse را روی True تنظیم کنید تا آیتم‌ها به صورت نزولی مرتب شوند.

تابع sorted() می‌تواند همراه با هر شیء قابل پیمایشی استفاده شود. آرایه در پایتون یک شیء قابل پیمایش است زیرا مجموعه‌ای دارای اندیس است. بنابراین، می‌توان از یک آرایه به عنوان پارامتر ورودی تابع sorted() استفاده کرد.

مثال

در این مثال، نحوه استفاده از متد sorted() را در مرتب‌سازی یک آرایه مشاهده خواهیم کرد.

import array as arr
a = arr.array('i', [4, 5, 6, 9, 10, 15, 20])
sorted(a)
print(a)

این کد خروجی زیر را تولید خواهد کرد:

array('i', [4, 5, 6, 9, 10, 15, 20])

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.