روشهای مرتبسازی داخلی
پایتون یک تابع مرتبسازی سریع داخلی به نامهای
sorted()
و
sort()
دارد. از
Timsort
.
استفاده از توابع مرتب سازی داخلی را در نظر بگیرید.
1) دریافت یک آرایه جدید
B
که با آرایه
A
که به ترتیب صعودی مرتب شده مطابقت دارد (به طور پیشفرض، مرتبسازی به ترتیب صعودی):
B = مرتب شده (A)
2) دریافت یک آرایه جدید B
که مطابق با آرایه A
است که به ترتیب نزولی مرتب شده اند:
B = مرتب شده (A، معکوس = درست)
معکوس - ترجمه شده از انگلیسی "reverse".
3) برای انجام مرتب سازی غیر استاندارد، یک کلید مرتب سازی مورد نیاز است - آرگومان key
.
برای مرتب سازی به ترتیب صعودی بر اساس آخرین رقم یک عدد، کلید آخرین رقم عدد خواهد بود.
برای انجام این کار، باید تابعی بنویسید که کلید مورد نیاز را به ما برمی گرداند - در مورد ما، آخرین رقم شماره.
# تابعی که کلید مرتب سازی را برمی گرداند
# - آخرین رقم عدد
Def lastDigit(n):
بازگشت n% 10
B = مرتب شده (A، کلید = آخرین رقم)
4) استفاده از تابع lambda - بدون نام.
اگر نمی خواهید یک تابع جداگانه بنویسید، به دلیل سادگی، می توانید از توابع لامبدا استفاده کنید. هنگامی که در پارامتر key
فراخوانی می شود، چنین توابعی مستقیماً نوشته می شوند.
B = مرتب شده (A، کلید = lambda x: x % 10)
5) اگر نیاز دارید آرایه را "در جای خود" مرتب کنید (بدون اختصاص آرایه اضافی)، بهتر است از روش sort()
استفاده کنید.
به عنوان مثال، مرتب کردن آرایه A
بر اساس آخرین رقم به ترتیب نزولی به این صورت است:
A.sort(key = lambda x: x % 10, reverse = True)