در این مطلب، ویدئو #69 آموزش پایتون برای مبتدیان | جستجوی باینری با استفاده از پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:22
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:03,470 –> 00:00:06,240
به عقب خوش آمدید بیگانگان نام من 720 است و
2
00:00:06,240 –> 00:00:08,700
بیایید
3
00:00:08,700 –> 00:00:10,710
در آخرین ویدیویی که روی نور جستجوی خطی کار کرده ایم سری را در پایتون ادامه
4
00:00:10,710 –> 00:00:12,269
دهیم، بنابراین ما
5
00:00:12,269 –> 00:00:14,219
لیست را داشتیم و خارج از آن لیست می خواهیم
6
00:00:14,219 –> 00:00:16,470
یک عنصر خاص را جستجو کنیم، بنابراین
7
00:00:16,470 –> 00:00:18,420
عنصر آنجاست. آیا می گوید پیدا شده است
8
00:00:18,420 –> 00:00:20,970
و همچنین مکان را به درستی یا موقعیت آن را نشان می دهد
9
00:00:20,970 –> 00:00:23,250
اگر محدودیت وجود ندارد
10
00:00:23,250 –> 00:00:25,380
که به سادگی پیدا نمی شود، بنابراین
11
00:00:25,380 –> 00:00:27,330
جستجوی خطی خوب است، اما
12
00:00:27,330 –> 00:00:29,310
اگر لیستی از هزاران
13
00:00:29,310 –> 00:00:31,140
مقدار و نوع آن داشته باشید چه می شود جستجوی
14
00:00:31,140 –> 00:00:33,840
رسمی روشن است، فرض کنید بعد از هشتصد
15
00:00:33,840 –> 00:00:35,700
مقدار، شما هم زمان زیادی را از دست می دهید،
16
00:00:35,700 –> 00:00:37,770
بنابراین با کمترین
17
00:00:37,770 –> 00:00:40,050
افزایش طول، زمان نیز افزایش می یابد،
18
00:00:40,050 –> 00:00:42,899
آیا ما راه بهتری داریم و بله
19
00:00:42,899 –> 00:00:44,910
، یک راه دیگر داریم. روش جستجو
20
00:00:44,910 –> 00:00:47,850
که یک جستجوی دودویی است چگونه کار می کند،
21
00:00:47,850 –> 00:00:50,100
بنابراین قبل از ادامه – جستجو باید
22
00:00:50,100 –> 00:00:51,989
در جستجوی باینری بفهمید همه
23
00:00:51,989 –> 00:00:54,329
مقادیر باید مرتب شوند، بنابراین
24
00:00:54,329 –> 00:00:55,350
به طور معمول وقتی با جستجوی خطی کار می
25
00:00:55,350 –> 00:00:57,600
کنید، ترکیبی نیست که
26
00:00:57,600 –> 00:01:00,210
مقادیر را مرتب کنیم. می تواند مقادیر را به هر
27
00:01:00,210 –> 00:01:02,039
ترتیبی داشته باشد، اما در صورت جستجوی دودویی،
28
00:01:02,039 –> 00:01:03,570
باید مطمئن شوید که مقادیر شما
29
00:01:03,570 –> 00:01:04,319
مرتب شده است، به
30
00:01:04,319 –> 00:01:06,630
این معنی که اگر مقادیر اولیه را به
31
00:01:06,630 –> 00:01:08,189
عنوان مثال ارائه کنم، مقادیر عملیاتی مانند این
32
00:01:08,189 –> 00:01:10,229
درست باشد، بنابراین ما آن را تغییر می دهیم،
33
00:01:10,229 –> 00:01:11,909
مقداری خواهیم داشت که به درستی مرتب شده است. بنابراین
34
00:01:11,909 –> 00:01:16,350
فرض کنید 4 کاما 7 کاما 8 کاما 12 کاما 45
35
00:01:16,350 –> 00:01:18,390
کاما 99 بنابراین فرض کنید که این مقدار
36
00:01:18,390 –> 00:01:20,250
را داریم پس شش مقدار داریم من میخواهم
37
00:01:20,250 –> 00:01:21,540
یک مقدار خاص را جستجو کنم، بنابراین اگر
38
00:01:21,540 –> 00:01:23,040
به دنبال جستجوی خطی در اینجا هستید،
39
00:01:23,040 –> 00:01:24,360
به دنبال دودویی خواهیم بود. اکنون جستجو کنید که چگونه
40
00:01:24,360 –> 00:01:26,189
کار می کند، بنابراین بیایید تصور کنیم حداقل
41
00:01:26,189 –> 00:01:27,720
در اینجا داریم و اگر می خواهید
42
00:01:27,720 –> 00:01:29,340
عنصری را جستجو کنید، کاری که انجام می دهید این است که
43
00:01:29,340 –> 00:01:31,829
ابتدا کران پایین و
44
00:01:31,829 –> 00:01:34,020
کران بالایی را مشخص کنید، بنابراین همانطور که می بینید
45
00:01:34,020 –> 00:01:35,729
اولین مقدار یک است. کران پایین در اینجا بنابراین
46
00:01:35,729 –> 00:01:37,200
اولین مقدار خود یک کران پایین است
47
00:01:37,200 –> 00:01:39,479
و آخرین مقدار کران بالایی است که می
48
00:01:39,479 –> 00:01:41,790
توانید اول یا آخر بگویید، اما پس از آن بیایید
49
00:01:41,790 –> 00:01:43,979
با این کلمه یک صدا پیش برویم، بنابراین L
50
00:01:43,979 –> 00:01:46,590
اولین شاخص است و U آخرین نمایه یک
51
00:01:46,590 –> 00:01:47,850
بار دفعه بعد این مورد را تعیین کرد
52
00:01:47,850 –> 00:01:49,200
شما باید انجام دهید این است که اکنون باید
53
00:01:49,200 –> 00:01:51,570
یک شاخص میانی پیدا کنید چگونه یک شاخص میانی پیدا کنید
54
00:01:51,570 –> 00:01:53,909
همانطور که از نام نشان می دهد باید
55
00:01:53,909 –> 00:01:55,710
یک نقطه وسط این پایین و بالا
56
00:01:55,710 –> 00:01:57,210
سمت راست باشد بنابراین شما به سادگی می گویید پایین به اضافه
57
00:01:57,210 –> 00:02:00,119
بالا / – شما میانه می شوید ارزش اکنون
58
00:02:00,119 –> 00:02:01,680
به هر حال شما می گویید مقدار متوسط، بنابراین در این مورد
59
00:02:01,680 –> 00:02:02,790
می توانید ببینید که ما مقدار متوسط را سو
60
00:02:02,790 –> 00:02:04,619
به سمت راست گرفتیم، بنابراین عنصر B اجازه دهید بگوییم خو
61
00:02:04,619 –> 00:02:06,240
است، بنابراین قبل از ادامه دادن اجازه دهید عن
62
00:02:06,240 –> 00:02:07,619
صر را
63
00:02:07,619 –> 00:02:10,560
یدا کنم، من فقط 45 را جستجو نمی کنم، بسیار خوب، بنابراین اگر می خو
64
00:02:10,560 –> 00:02:12,569
هید جستجو کنید 45 بنابراین می توانید ببینید که
65
00:02:12,569 –> 00:02:14,220
آیا بدنه میانی را درست دریافت کرده ایم،
66
00:02:14,220 –> 00:02:16,709
بنابراین مقدار شاخص برای 4 برابر 0 است،
67
00:02:16,709 –> 00:02:19,140
مقدار بعدی برای 99 برابر با 5 است، بنابراین اگر کم است
68
00:02:19,140 –> 00:02:21,180
به اضافه 5، 5 است و 5 تقسیم بر 2، 2
69
00:02:21,180 –> 00:02:23,160
درست است. ما تقسیم اعداد صحیح
70
00:02:23,160 –> 00:02:24,510
را درست انجام می دهیم، ما تقسیم جریان را انجام نمی دهیم،
71
00:02:24,510 –> 00:02:26,099
بنابراین ما در حال تقسیم هستیم،
72
00:02:26,099 –> 00:02:28,019
بنابراین به شما 2 می دهد، بنابراین مقدار شاخص را به شما می دهد
73
00:02:28,019 –> 00:02:30,180
– بنابراین اساساً میانه شما اکنون 2 است،
74
00:02:30,180 –> 00:02:33,180
بنابراین مقدار در آن شاخص در حال حاضر 8 است.
75
00:02:33,180 –> 00:02:36,030
ما 8 را به عنوان مقدار میانی دریافت کردیم.
76
00:02:36,030 –> 00:02:37,980
مرحله بعدی این است که شما باید
77
00:02:37,980 –> 00:02:40,170
مقدار متوسطی را که دارید بررسی کنید که خدا با t مطابقت دارد.
78
00:02:40,170 –> 00:02:41,400
عنصری که
79
00:02:41,400 –> 00:02:43,380
عنصر مورد نظر ما را جستجو می کند درست 45 است،
80
00:02:43,380 –> 00:02:46,290
بنابراین اکنون با هم مطابقت ندارد.
81
00:02:46,290 –> 00:02:48,030
82
00:02:48,030 –> 00:02:50,280
83
00:02:50,280 –> 00:02:51,450
84
00:02:51,450 –> 00:02:53,069
برای اینکه کدام یک را
85
00:02:53,069 –> 00:02:55,290
تغییر دهید، باید بررسی کنید که
86
00:02:55,290 –> 00:02:57,510
مقداری که جستجو میکنید کوچکتر یا
87
00:02:57,510 –> 00:03:00,060
بزرگتر از مقدار متوسط است اگر مق
88
00:03:00,060 –> 00:03:02,730
ار کوچکتر است، کران بالایی خود را تغییر دهید، به این مع
89
00:03:02,730 –> 00:03:05,370
ی که به سادگی میگویید که مقدار متوسط کر
90
00:03:05,370 –> 00:03:08,120
لای جدید است. مقدار
91
00:03:08,120 –> 00:03:10,500
بزرگتر از مقدار وسط است، بنابراین مقدار وسط
92
00:03:10,500 –> 00:03:12,450
در اینجا 8 است و مقادیری
93
00:03:12,450 –> 00:03:14,430
که در جستجوی آن هستند 45 است، بنابراین اکنون
94
00:03:14,430 –> 00:03:16,950
باید کران پایین خود را تغییر دهید، بنابراین کاری
95
00:03:16,950 –> 00:03:19,769
که انجام خواهید داد این است که کران پایین اکنون
96
00:03:19,769 –> 00:03:21,989
به وسط تبدیل شود. مقدار U از M
97
00:03:21,989 –> 00:03:24,389
تبدیل به L درست می شود، بنابراین به جای داشتن یک
98
00:03:24,389 –> 00:03:25,709
زمان دسترسی بزرگ، یک لیست کوچک
99
00:03:25,709 –> 00:03:27,780
درست دارید، بنابراین D با 8 شروع می شود و
100
00:03:27,780 –> 00:03:30,569
به 99 ختم می شود، اکنون یک مقدار جدید پایین
101
00:03:30,569 –> 00:03:32,160
تر و بالاتر دارید. کاری که انجام خواهید داد
102
00:03:32,160 –> 00:03:33,780
، دوباره یک مقدار متوسط پیدا خواهید کرد، بن
103
00:03:33,780 –> 00:03:35,609
براین t کلاه همان کاری است که هر بار انجام میدهید، بنابراین
104
00:03:35,609 –> 00:03:37,410
پایینتر بهعلاوه بالا، بنابراین آنچه
105
00:03:37,410 –> 00:03:39,599
پایینتر است، در اصل دو است و امتیاز شما
106
00:03:39,599 –> 00:03:43,079
5 است.
107
00:03:43,079 –> 00:03:45,840
108
00:03:45,840 –> 00:03:47,819
همان
109
00:03:47,819 –> 00:03:49,079
چیزی که درست مطابقت ندارد ما اکنون به
110
00:03:49,079 –> 00:03:51,389
دنبال 45 هستیم، شما باید
111
00:03:51,389 –> 00:03:53,639
مقدار کمتر خود را تغییر دهید، زیرا 45
112
00:03:53,639 –> 00:03:56,519
بزرگتر از 12 است، بنابراین
113
00:03:56,519 –> 00:03:58,950
اکنون مقدار پایین خود را به 12 تغییر می دهید، بنابراین 12
114
00:03:58,950 –> 00:04:00,989
مقدار پایین تر و 99 مقدار بالاتر است. بنابراین
115
00:04:00,989 –> 00:04:02,849
کاری که اکنون انجام خواهید داد این است که به سادگی
116
00:04:02,849 –> 00:04:05,700
می گویید دوباره ملاقات کنید، مقدار پایین 3 است،
117
00:04:05,700 –> 00:04:08,430
مقدار بالایی که 5 است، ارسال به 4 می شود و در
118
00:04:08,430 –> 00:04:10,530
4 ما دقیقاً 45 داریم، بنابراین اکنون بررسی می کنید
119
00:04:10,530 –> 00:04:12,450
و مقدار را دریافت کرده اید اکنون ممکن
120
00:04:12,450 –> 00:04:14,459
است فکر کنید. اوه آیا این روش خوبی برای انجام
121
00:04:14,459 –> 00:04:15,730
این کار است و آنها به
122
00:04:15,730 –> 00:04:18,070
این دلیل هستند که در سطح اولیه
123
00:04:18,070 –> 00:04:19,209
برخی از مقادیر را نادیده می گیرید،
124
00:04:19,209 –> 00:04:21,459
اگر لیست شما بزرگ باشد، همه مقادیر را بررسی نمی کنید،
125
00:04:21,459 –> 00:04:23,650
بسیاری از مقادیر را که
126
00:04:23,650 –> 00:04:25,270
بررسی نمی شوند رد می شود، بنابراین
127
00:04:25,270 –> 00:04:27,310
بهبود خواهید یافت. سرعت نیز تنها چیزی
128
00:04:27,310 –> 00:04:29,530
است که شما باید به مقادیری که دارید e
129
00:04:29,530 –> 00:04:30,970
گرفتن باید مرتب شود، بیایید
130
00:04:30,970 –> 00:04:32,710
این را با یک کد پیاده سازی کنیم، بنابراین کاری که می
131
00:04:32,710 –> 00:04:34,510
خواهید انجام دهید این است که بیایید همان کد را حفظ
132
00:04:34,510 –> 00:04:36,310
کنیم، لیست مقادیر را در اینجا داریم، بیایید
133
00:04:36,310 –> 00:04:37,990
45 را جستجو کنیم و بنابراین می گوییم
134
00:04:37,990 –> 00:04:39,880
حداقل جستجو کنید ما لیست را پاس می کنیم.
135
00:04:39,880 –> 00:04:41,440
در حال عبور هستند و آنچه را که شما برای تغییر
136
00:04:41,440 –> 00:04:42,729
چیزی به درستی تغییر دهید، ما باید منطق را در اینجا تغییر دهیم،
137
00:04:42,729 –> 00:04:44,680
بنابراین اجازه دهید تمام موارد را حذف کنم،
138
00:04:44,680 –> 00:04:45,970
این چیزی است که در
139
00:04:45,970 –> 00:04:47,620
حال حاضر تغییر
140
00:04:47,620 –> 00:04:48,580
141
00:04:48,580 –> 00:04:50,949
می کند. برابر با صفر است،
142
00:04:50,949 –> 00:04:52,750
بنابراین شما همیشه L را صفر شروع می کنید و
143
00:04:52,750 –> 00:04:54,729
می گویید u که کران بالایی است بنابراین
144
00:04:54,729 –> 00:04:56,680
n کران پایین تر است استفاده از کران بالایی کران بالا
14