درود دوستان! 👋
امروز میخوایم درباره دو تا از مهمترین الگوریتمهای برنامهنویسی صحبت کنیم: مرتبسازی سریع (Quick Sort) و الگوریتمهای جستوجو (Search Algorithms). بریم که با این الگوریتمها بیشتر آشنا بشیم! 🚀
📌 الگوریتم مرتبسازی سریع (Quick Sort)
الگوریتم Quick Sort یکی از کارآمدترین الگوریتمهای مرتبسازی هست که از روش تقسیم و حل (Divide and Conquer) استفاده میکنه. این الگوریتم به صورت زیر کار میکنه:
1. انتخاب محور (Pivot): یک عنصر رو به عنوان محور انتخاب میکنیم.
2. تقسیمبندی: آرایه رو به دو بخش تقسیم میکنیم، طوری که عناصر کمتر از محور در یک بخش و عناصر بزرگتر در بخش دیگر قرار بگیرن.
3. بازگشت (Recursion): برای هر دو بخش به صورت بازگشتی همین کار رو انجام میدیم تا آرایه کاملاً مرتب بشه.
مزیت Quick Sort سرعت بالا و کارایی خوبش در اکثر موارده، هر چند که در بدترین حالت میتونه O(n^2) باشه. ولی با انتخاب مناسب محور، معمولاً کارایی اون به O(n log n) میرسه.
نمونه کد Quick Sort :
📌 الگوریتمهای جستوجو (Search Algorithms)
الگوریتمهای جستوجو برای پیدا کردن یک عنصر خاص در یک مجموعه داده استفاده میشن. دو تا از پرکاربردترین این الگوریتمها عبارتند از:
1. جستوجوی خطی (Linear Search):
- سادهترین روش جستوجو هست.
- به ترتیب هر عنصر مجموعه رو بررسی میکنه تا عنصر مورد نظر رو پیدا کنه.
- زمان اجرای این الگوریتم O(n) هست.
نمونه کد جستوجوی خطی :
2. جستوجوی دودویی (Binary Search):
- این الگوریتم برای آرایههای مرتبشده مناسبه.
- به این صورت کار میکنه که عنصر وسط رو بررسی میکنه. اگر عنصر مورد نظر بزرگتر یا کوچکتر از عنصر وسط باشه، جستوجو رو در نیمه مناسب ادامه میده.
- زمان اجرای این الگوریتم O(log n) هست که خیلی سریعتر از جستوجوی خطیه.
نمونه کد جستوجوی دودویی :
استفاده از این الگوریتمها به شما کمک میکنه تا برنامههاتون بهینهتر و سریعتر عمل کنن.
📢 به دوستانتون هم بگین بیاین اینجا تا با هم بیشتر یاد بگیریم! 🌟
[اینم کانال منه]
#برنامه_نویسی #آموزش #الگوریتم #مرتب_سازی #جستجو #یادگیری #QuickSort #SearchAlgorithms
امروز میخوایم درباره دو تا از مهمترین الگوریتمهای برنامهنویسی صحبت کنیم: مرتبسازی سریع (Quick Sort) و الگوریتمهای جستوجو (Search Algorithms). بریم که با این الگوریتمها بیشتر آشنا بشیم! 🚀
📌 الگوریتم مرتبسازی سریع (Quick Sort)
الگوریتم Quick Sort یکی از کارآمدترین الگوریتمهای مرتبسازی هست که از روش تقسیم و حل (Divide and Conquer) استفاده میکنه. این الگوریتم به صورت زیر کار میکنه:
1. انتخاب محور (Pivot): یک عنصر رو به عنوان محور انتخاب میکنیم.
2. تقسیمبندی: آرایه رو به دو بخش تقسیم میکنیم، طوری که عناصر کمتر از محور در یک بخش و عناصر بزرگتر در بخش دیگر قرار بگیرن.
3. بازگشت (Recursion): برای هر دو بخش به صورت بازگشتی همین کار رو انجام میدیم تا آرایه کاملاً مرتب بشه.
مزیت Quick Sort سرعت بالا و کارایی خوبش در اکثر موارده، هر چند که در بدترین حالت میتونه O(n^2) باشه. ولی با انتخاب مناسب محور، معمولاً کارایی اون به O(n log n) میرسه.
نمونه کد Quick Sort :
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
# استفاده
arr = [3, 6, 8, 10, 1, 2, 1]
print("Sorted array:", quick_sort(arr))
📌 الگوریتمهای جستوجو (Search Algorithms)
الگوریتمهای جستوجو برای پیدا کردن یک عنصر خاص در یک مجموعه داده استفاده میشن. دو تا از پرکاربردترین این الگوریتمها عبارتند از:
1. جستوجوی خطی (Linear Search):
- سادهترین روش جستوجو هست.
- به ترتیب هر عنصر مجموعه رو بررسی میکنه تا عنصر مورد نظر رو پیدا کنه.
- زمان اجرای این الگوریتم O(n) هست.
نمونه کد جستوجوی خطی :
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
# استفاده
arr = [3, 6, 8, 10, 1, 2, 1]
target = 10
print("Element found at index:", linear_search(arr, target))
2. جستوجوی دودویی (Binary Search):
- این الگوریتم برای آرایههای مرتبشده مناسبه.
- به این صورت کار میکنه که عنصر وسط رو بررسی میکنه. اگر عنصر مورد نظر بزرگتر یا کوچکتر از عنصر وسط باشه، جستوجو رو در نیمه مناسب ادامه میده.
- زمان اجرای این الگوریتم O(log n) هست که خیلی سریعتر از جستوجوی خطیه.
نمونه کد جستوجوی دودویی :
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 = sorted([3, 6, 8, 10, 1, 2, 1])
target = 10
print("Element found at index:", binary_search(arr, target))
استفاده از این الگوریتمها به شما کمک میکنه تا برنامههاتون بهینهتر و سریعتر عمل کنن.
📢 به دوستانتون هم بگین بیاین اینجا تا با هم بیشتر یاد بگیریم! 🌟
[اینم کانال منه]
#برنامه_نویسی #آموزش #الگوریتم #مرتب_سازی #جستجو #یادگیری #QuickSort #SearchAlgorithms
❤1👍1