#  الگوریتم جستجوی باینری در پایتون

در این آموزش یاد می‌گیرد که چگونه می‌توانیم یک الگوریتم جستجوی دودویی را با استفاده از پایتون برای یافتن موقعیت ایندکس یک آیتم در لیست داده شده اعمال کنیم.

 

جستجوی دودویی الگوریتمی برای یافتن یک عنصر خاص در لیست است. فرض کنید ما یک لیست از هزار عنصر داریم و باید موقعیت index یک عنصر خاص را بدست آوریم. با استفاده از الگوریتم جستجوی دودویی می‌توانیم موقعیت ایندکس آیتم را خیلی سریع پیدا کنیم.

 

الگوریتم های جستجوی زیادی وجود دارد، اما جستجوی باینری در بین آنها محبوب ترین است.

 

آیتم های موجود در لیست باید برای اعمال الگوریتم جستجوی دودویی مرتب شوند. اگر عناصر مرتب نشده اند، ابتدا آنها را مرتب کنید.

 

الگوریتم جستجوی دودویی در پایتون

 

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

 

def binary_search(array, query):
    lo, hi = 0, len(array) - 1
    while lo <= hi:
        mid = (hi + lo) // 2
        val = array[mid]
        if val == query:
            return mid
        elif val < query:
            lo = mid + 1
        else:
            hi = mid - 1
    return None

 



0

intro

5:18

رایگان

1

complexity

9:4

رایگان

2

constant complexity

5:13

رایگان

3

log complexity

5:17

رایگان

4

linear complexity

3:49

رایگان

5

polynomial complexity

3:5

رایگان

6

exponential complexity

3:58

رایگان

7

limit

10:25

رایگان

8

top one

8:57

رایگان

9

caesar cipher

19:43

رایگان

10

search insert

9:41

رایگان

11

is isomorphic

10:23

رایگان

12

a1z26 cipher

6:35

رایگان

13

bead sort

8:56

رایگان

14

zig zag iterator

6:37

رایگان

15

move zeros

2:52

رایگان

16

remove min

4:56

رایگان

17

OneTimePad cipher

9:32

رایگان

18

two sum

5:7

رایگان

19

rotate

6:10

رایگان

20

search range

9:7

رایگان

21

linear search

4:34

رایگان

22

binary search

6:45

رایگان

23

first occurrence

4:6

رایگان

24

last occurrence

5:28

رایگان

25

done

1:42

رایگان

دوره های پیشنهادی

دوره آموزش asyncio در پایتون
دوره آموزش asyncio در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش Multi Threading در پایتون
دوره آموزش Multi Threading در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش FastAPI
دوره آموزش FastAPI
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


s

2 سال قبل پاسخ به نظر

سلام
این دستورات بازگشتی هستند؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
خیر. این الگوریتم بازگشتی نیست.
برای آموزش توابع بازگشتی میتونید ویدیو زیر رو ببینید:
https://www.mongard.ir/one_part/120/python-recursive-functions/

sh

2 سال قبل پاسخ به نظر

سلام
الگوریتم ها حفظین درسته؟
چون بعد چند وقت که باهاشون کار نمیکنیم قاعدتا یادمون میره

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
خیر
لازم نیست حفظ کنید. منم حفظ نیستم.

مونگارد