در این مطلب، ویدئو جستجوی باینری در پایتون: نزدیکترین شماره را پیدا کنید با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:01,890
خوب پس در این ویدیو می
2
00:00:01,890 –> 00:00:03,419
خواهیم مشکل زیر را در
3
00:00:03,419 –> 00:00:06,390
پایتون حل کنیم بنابراین آرایه ای از
4
00:00:06,390 –> 00:00:08,670
اعداد صحیح مرتب شده یا در پایتون لیستی از اعداد صحیح مرتب شده به
5
00:00:08,670 –> 00:00:11,280
ما داده می شود و می خواهیم نزدیک ترین
6
00:00:11,280 –> 00:00:13,410
مقدار را به عنصری که داریم پیدا کنیم. همچنین
7
00:00:13,410 –> 00:00:14,700
به عنوان ورودی داده می شود که ما آن را
8
00:00:14,700 –> 00:00:18,210
مقدار هدف یا شماره هدف می نامیم، بنابراین با توجه به
9
00:00:18,210 –> 00:00:20,820
یک آرایه می خواهیم خوب پیدا کنیم
10
00:00:20,820 –> 00:00:23,340
که نزدیک ترین عدد در آن آرایه به
11
00:00:23,340 –> 00:00:24,900
مقدار هدفی که به ما نیز داده شده است چیست
12
00:00:24,900 –> 00:00:27,330
و فقط به عنوان یک یادداشت این آرایه ای که به ما
13
00:00:27,330 –> 00:00:28,949
داده می شود ممکن است حاوی مقادیر تکراری
14
00:00:28,949 –> 00:00:30,840
اعداد منفی باشد و این فقط
15
00:00:30,840 –> 00:00:31,949
چیزی است که باید در حین
16
00:00:31,949 –> 00:00:34,350
حل این مشکل از آن آگاه باشیم، بنابراین فقط برای
17
00:00:34,350 –> 00:00:35,460
اطمینان از اینکه متوجه شده ایم مشکل چه چیزی
18
00:00:35,460 –> 00:00:37,500
می خواهد، بیایید جلو برویم و
19
00:00:37,500 –> 00:00:38,879
مرحله دوم را طی کنیم. نمونه هایی که من در
20
00:00:38,879 –> 00:00:41,129
اینجا فهرست کرده ام و دقیقاً خواهیم دید که به
21
00:00:41,129 –> 00:00:43,710
چه چیزی نیاز داریم یا مشکل چیست،
22
00:00:43,710 –> 00:00:46,050
بنابراین در اولین مثال،
23
00:00:46,050 –> 00:00:49,320
این آرایه ورودی با اعداد 1 2 4 5 6
24
00:00:49,320 –> 00:00:51,780
6 8 و 9 به ما داده می شود و ما همچنین به عنوان ورودی
25
00:00:51,780 –> 00:00:54,059
این عدد هدف مقدار هدف داده می شود که در
26
00:00:54,059 –> 00:00:57,329
این ج ase 11 است، بنابراین میپرسیم چه
27
00:00:57,329 –> 00:00:59,520
عددی در این آرایه در اینجا است که
28
00:00:59,520 –> 00:01:02,430
به مقدار 11 نزدیکتر است، بنابراین انتظار
29
00:01:02,430 –> 00:01:05,220
خروجی 9 را داریم زیرا در این آرایه در
30
00:01:05,220 –> 00:01:07,320
اینجا عددی که نزدیکترین عدد به عدد
31
00:01:07,320 –> 00:01:10,619
11 است، همین مقدار در اینجا 9 است.
32
00:01:10,619 –> 00:01:13,200
تفاوت بین 9 و 11 2 است و
33
00:01:13,200 –> 00:01:14,700
این کوچکترین تفاوتی است که
34
00:01:14,700 –> 00:01:16,290
می توانید با هر یک از اعداد دیگر
35
00:01:16,290 –> 00:01:18,960
در این آرایه خاص بدست آورید، بنابراین فقط برای
36
00:01:18,960 –> 00:01:19,979
اطمینان از اینکه ما این مفهوم را درک کرده ایم،
37
00:01:19,979 –> 00:01:21,900
اجازه دهید یک مثال دیگر را مرور کنیم، بنابراین
38
00:01:21,900 –> 00:01:23,939
فرض کنیم که به ما داده شده است. این
39
00:01:23,939 –> 00:01:27,000
آرایه ورودی است، بنابراین ما اعداد 2 5 6 7
40
00:01:27,000 –> 00:01:29,549
8 8 9 را داریم و سپس عنصر دیگر در اینجا
41
00:01:29,549 –> 00:01:32,549
این مقدار هدف 4 است، بنابراین در این
42
00:01:32,549 –> 00:01:35,220
مورد نزدیکترین عدد در این آرایه در اینجا است،
43
00:01:35,220 –> 00:01:38,400
بنابراین مقدار هدف 4 دوباره 5 می
44
00:01:38,400 –> 00:01:40,920
شود. این همان 5 است که در اینجا به این
45
00:01:40,920 –> 00:01:43,470
دلیل است که تفاوت بین 5 و 4
46
00:01:43,470 –> 00:01:46,110
1 است، تنها یک عدد صحیح بین 5 و 4
47
00:01:46,110 –> 00:01:47,700
وجود دارد و هیچ عدد دیگری در این
48
00:01:47,700 –> 00:01:49,530
آرایه وجود ندارد که در این مورد مقدار کمتری به شما بدهد،
49
00:01:49,530 –> 00:01:52,560
بنابراین این اصل
50
00:01:52,560 –> 00:01:55,470
چیزی است که ما داریم. می خواهید در این ویدیو حل
51
00:01:55,470 –> 00:01:57,990
کنید از یک دیدگاه ساده لوحانه،
52
00:01:57,990 –> 00:01:59,969
شاید اولین رویکرد برای حل
53
00:01:59,969 –> 00:02:00,960
این مشکل با کاری که ممکن است
54
00:02:00,960 –> 00:02:03,000
ابتدا سعی کنید انجام دهید این باشد که ممکن است
55
00:02:03,000 –> 00:02:05,250
به طور طبیعی سعی کنید از هر یک از
56
00:02:05,250 –> 00:02:07,259
عناصر آرایه ای که به شما داده شده است عبور کنید
57
00:02:07,259 –> 00:02:09,598
و قدر مطلق را محاسبه کنید.
58
00:02:09,598 –> 00:02:10,860
تفاوت بین عنصر هدف
59
00:02:10,860 –> 00:02:13,080
و عددی که اتفاقاً
60
00:02:13,080 –> 00:02:13,540
61
00:02:13,540 –> 00:02:15,340
در آرایه دیده میشوید، بنابراین
62
00:02:15,340 –> 00:02:17,019
از طریق این آرایه حلقه
63
00:02:17,019 –> 00:02:18,489
میزنید و تک تک عناصر را پردازش میکنید و
64
00:02:18,489 –> 00:02:20,739
کوچکترین تفاوتی را
65
00:02:20,739 –> 00:02:23,109
که محاسبه کردهاید دنبال میکنید، برای مثال
66
00:02:23,109 –> 00:02:24,939
شما. ممکن است حلقهای را در اینجا شروع کنید
67
00:02:24,939 –> 00:02:26,769
که از اولین عنصر در این آرایه شروع میشود و شما
68
00:02:26,769 –> 00:02:29,260
خوب 11 منهای 1 را بررسی
69
00:02:29,260 –> 00:02:31,120
میکنید، بنابراین این کوچکترین
70
00:02:31,120 –> 00:02:32,920
مقدار تفاوتی است که تا به حال دیدهاید،
71
00:02:32,920 –> 00:02:34,780
بنابراین به مرور در آرایه ادامه دهید و
72
00:02:34,780 –> 00:02:37,209
دوباره 11 را بررسی کنید. عنصر هدف
73
00:02:37,209 –> 00:02:38,739
منهای عنصری که در این مورد خاص پردازش می کنید
74
00:02:38,739 –> 00:02:41,079
، یعنی 2 که
75
00:02:41,079 –> 00:02:44,260
به شما 9 می دهد، بنابراین 9 کوچکتر از 10 است، بنابراین
76
00:02:44,260 –> 00:02:45,970
ما کوچکترین مقداری را که
77
00:02:45,970 –> 00:02:48,280
تا به حال دیده ایم جایگزین می کنیم. r محاسبات من بین آن 2
78
00:02:48,280 –> 00:02:50,889
عنصر 9 است، بنابراین ما فقط به
79
00:02:50,889 –> 00:02:52,480
همین روش ادامه می دهیم و در این
80
00:02:52,480 –> 00:02:54,909
81
00:02:54,909 –> 00:02:56,859
مورد تا زمانی که به آخرین عنصر در
82
00:02:56,859 –> 00:03:00,189
این لیست در این مثال در اینجا نرسیم، عملاً به مقدار خروجی در این مورد نمی رسیم.
83
00:03:00,189 –> 00:03:01,870
فقط ادامه دهید و ما فقط
84
00:03:01,870 –> 00:03:03,400
شرط خاصی نداریم که
85
00:03:03,400 –> 00:03:06,459
86
00:03:06,459 –> 00:03:07,569
از این شرایط خارج شود، ما فقط
87
00:03:07,569 –> 00:03:08,829
به مرور هر عنصر در آرایه
88
00:03:08,829 –> 00:03:10,900
ادامه می دهیم، به عنوان مثال وقتی از اینجا
89
00:03:10,900 –> 00:03:12,760
شروع کردیم، با شماره شروع کردیم. 2
90
00:03:12,760 –> 00:03:14,769
عنصر هدف برای تفاوت بین این
91
00:03:14,769 –> 00:03:16,419
دو است یا تعداد اعداد صحیح بین 2
92
00:03:16,419 –> 00:03:18,790
و 4 2 کوچکترین است که تاکنون دیده ایم.
93
00:03:18,790 –> 00:03:21,389
94
00:03:21,389 –> 00:03:23,680
95
00:03:23,680 –> 00:03:25,120
تا انتهای
96
00:03:25,120 –> 00:03:26,530
آرایه، ما هیچ کار واقعاً
97
00:03:26,530 –> 00:03:28,540
هوشمندانهای در مورد شکستن زودهنگام یا
98
00:03:28,540 –> 00:03:31,209
هر چیز دیگری انجام نمیدهیم، بنابراین در این مورد، اگر
99
00:03:31,209 –> 00:03:33,040
این رویکرد را
100
00:03:33,040 –> 00:03:35,979
دنبال کنیم، زمان اجرای پیچیدگی خطی
101
00:03:35,979 –> 00:03:37,989
به ما میدهد، بنابراین اگر فکر کنیم که اندازه
102
00:03:37,989 –> 00:03:40,120
آرایه ای که ما ‘re داده شده به اندازه n است، سپس
103
00:03:40,120 –> 00:03:41,620
این زمان متناسب
104
00:03:41,620 –> 00:03:43,419
با اندازه آرایه ای که به ما
105
00:03:43,419 –> 00:03:44,709
داده شده است طول می کشد، بنابراین می خواهیم بگوییم که
106
00:03:44,709 –> 00:03:47,650
O بزرگ از n زمان می برد تا تکمیل شود، بنابراین راهی وجود دارد
107
00:03:47,650 –> 00:03:50,319
که بتوانیم در واقع زمان اجرا را بهبود می بخشیم
108
00:03:50,319 –> 00:03:52,239
و دلیلی که می توانیم این کار را انجام دهیم این
109
00:03:52,239 –> 00:03:54,040
است که می توانیم از چیزی استفاده
110
00:03:54,040 –> 00:03:55,239
کنیم که به طور خاص
111
00:03:55,239 –> 00:03:57,939
از آن در این روش ساده لوحانه استفاده
112
00:03:57,939 –> 00:03:59,919
نمی کنیم، یعنی این واقعیت که
113
00:03:59,919 –> 00:04:02,260
آرایه هایی که به ما داده می شود به این ترتیب مرتب شده اند.
114
00:04:02,260 –> 00:04:03,519
ما می خواهیم از این
115
00:04:03,519 –> 00:04:04,599
واقعیت استفاده کنیم که آرایه هایی که به ما داده
116
00:04:04,599 –> 00:04:07,750
شده مرتب شده اند و سعی می کنیم از آن ویژگی
117
00:04:07,750 –> 00:04:10,689
برای بهبود الگوریتم خود استفاده کنیم تا ببینیم آیا
118
00:04:10,689 –> 00:04:12,280
واقعاً می توانیم زمان اجرا آن را بهبود ببخشیم،
119
00:04:12,280 –> 00:04:15,609
بنابراین یک چیز که ما می خواهیم انجام دهید و
120
00:04:15,609 –> 00:04:17,440
شاید این واضح باشد زیرا این
121
00:04:17,440 –> 00:04:20,289
ویدیو در لیست پخش جستجوی باینری
122
00:04:20,289 –> 00:04:22,810
است. ما از ایده جستجوی باینری استفاده می کنیم
123
00:04:22,810 –> 00:04:25,270
تا ببینیم آیا می توانیم آن را بهبود بخشیم و
124
00:04:25,270 –> 00:04:26,600
به طور کلی در
125
00:04:26,600 –> 00:04:28,250
زمینه مصاحبه یا هر زمانی
126
00:04:28,250 –> 00:04:29,960
که این گونه ها را می بینید از مشکلات ظاهر می
127
00:04:29,960 –> 00:04:32,690
شود اگر ورودی شما
128
00:04:32,690 –> 00:04:34,070
ممکن است بخواهید مرتب شده است o سعی کنید به این فکر کنید که چگونه می
129
00:04:34,070 –> 00:04:36,230
توانید جستجوی باینری را برای مشکل اعمال کنید
130
00:04:36,230 –> 00:04:37,280
زیرا معمولاً یک الگوریتم بسیار قدرتمند
131
00:04:37,280 –> 00:04:39,140
است با فرض اینکه ورودی شما
132
00:04:39,140 –> 00:04:41,720
مرتب شده است، بنابراین بیایید پیش برویم و
133
00:04:41,720 –> 00:04:43,820
الگوریتم جستجوی باینری را گام
134
00:04:43,820 –> 00:04:46,100
برداریم تا این مثال را در اینجا بگوییم و ما می
135
00:04:46,100 –> 00:04:48,410
خواهیم این کار را با کمی پیچ و تاب انجام دهید
136
00:04:48,410 –> 00:04:50,570
و من فکر می کنم که چرخش به ما در حل این مشکل کمک می کند،
137
00:04:50,570 –> 00:04:53,180
بنابراین بیایید فقط
138
00:04:53,180 –> 00:04:54,620
به خود یادآوری کنیم که وقتی به جستجوی باینری نزدیک می شویم
139
00:04:54,620 –> 00:04:56,390
اولین کاری که انجام می دهیم این است
140
00:04:56,390 –> 00:04:59,210
که تعادل خود را به نوعی تعریف می کنیم.
141
00:04:59,210 –> 00:05:00,740
نقطه پایین
142
00:05:00,740 –> 00:05:02,870
نقطه اوج و همچنین نقطه وسط بنابراین
143
00:05:02,870 –> 00:05:04,460
نقطه پایین شروع آرایه
144
00:05:04,460 –> 00:05:06,410
است نقطه بالا پایان
145
00:05:06,410 –> 00:05:08,210
آرایه است و در این مورد نقطه وسط
146
00:05:08,210 –> 00:05:10,910
این مقدار در اینجا هفت است بنابراین ما این
147
00:05:10,910 –> 00:05:13,100
مقدار را در اینجا هفت داریم. و کاری که میتوانیم انجام دهیم این است
148
00:05:13,100 –> 00:05:15,560
که میتوانیم مثلاً
149
00:05:15,560 –> 00:05:17,600
نقاط چپ و راست را در نقطه میانی بررسی کنیم، بنابراین
150
00:05:17,600 –> 00:05:18,380
من فقط میخواهم این
151
00:05:18,380 –> 00:05:19,760
را بنویسم زیرا کمی
152
00:05:19,760 –> 00:05:22,160
درهم میشود، اما به نوعی نوشتن کمک میکند.
153
00:05:22,160 –> 00:05:23,570
این چیزها را به طوری که ما
154
00:05:23,570 –> 00:05:26,030
آنچه را که در جریان است پیگیری می کنیم، بنابراین نقطه وسط خود را محاسبه کردیم
155
00:05:26,030 –> 00:05:27,530
و اولین کاری که انجام دادیم این
156
00:05:27,530 –> 00:05:29,510
است که نقطه میانی در این مورد
157
00:05:29,510 –> 00:05:32,180
هفت است و اکنون می توانیم
158
00:05:32,180 –> 00:05:34,010
عنصر سمت راست نقطه میانی را بررسی کنیم تا
159
00:05:34,010 –> 00:05:37,220
بتوانیم درست از نقطه میانی این را بگوییم.
160
00:05:37,220 –> 00:05:38,900
مقدار هشت است و در واقع سمت چپ
161
00:05:38,900 –> 00:05:40,970
نقطه میانی، این مقدار
162
00:05:40,970 –> 00:05:44,360
شش خواهد بود، بنابراین کاری که میخواهیم انجام دهیم این است که
163
00:05:44,360 –> 00:05:46,970
بررسی کنیم این
164
00:05:46,970 –> 00:05:49,100
عناصر چقدر از هدف فاصله دارند تا
165
00:05:49,100 –> 00:05:50,210
بتوانیم این کار را انجام دهیم.
166
00:05:50,210 –> 00:05:52,940
تفاوت آن عناصر
167
00:05:52,940 –> 00:05:55,010
را مرزهای راست و چپ نقطه میانی
168
00:05:55,010 –> 00:05:56,600
در نظر بگیرید و فقط میتوانیم عنصر هدف را کم
169
00:05:56,600 –> 00:05:58,580
کنیم، بنابراین اساساً میپرسیم این چند
170
00:05:58,580 –> 00:06:00,710
عدد صحیح از عنصر هدف فاصله دارد،
171
00:06:00,710 –> 00:06:03,170
بنابراین در این مورد این
172
00:06:03,170 –> 00:06:06,200
فاصله چهار واحد است و این دو واحد دورتر است، بنابراین
173
00:06:06,200 –> 00:06:07,940
چیزی که در اینجا به نوعی با آن کنار آمده ایم این
174
00:06:07,940 –> 00:06:10,190
است که متوجه شدیم که همه
175
00:06:10,190 –> 00:06:11,840
عناصر سمت راست نقطه میانی
176
00:06:11,840 –> 00:06:14,810
به ما عنصری می
177
00:06:14,810 –> 00:06:16,700
دهند که تفاوتی بزرگتر
178
00:06:16,700 –> 00:06:20,390
از 2 را به ما می دهند. 2 کوچکتر از 4 است و می
179
00:06:20,390 –> 00:06:21,980
دانیم اگر به سمت چپ برویم ممکن است با
180
00:06:21,980 –> 00:06:23,840
181
00:06:23,840 –> 00:06:25,550
حرکت به سمت چپ مقادیر بالقوه کوچک تری دریافت کنیم، اما می
182
00:06:25,550 –> 00:06:27,470
دانیم که با رفتن به سمت راست فقط
183
00:06:27,470 –> 00:06:28,970
آن اختلاف را افزایش خواهیم داد
184
00:06:28,970 –> 00:06:30,620
تا آن عدد همچنان
185
00:06:30,620 –> 00:06:32,390
افزایش یابد. از آنجا که آرایه دوباره
186
00:06:32,390 –> 00:06:33,920
مرتب شده است، این یک نوع نکته کلیدی است
187
00:06:33,920 –> 00:06:35,540
زیرا می دانیم که آرایه مرتب شده است
188
00:06:35,540 –> 00:06:37,550
که مقدار فقط در حال
189
00:06:37,550 –> 00:06:39,650
افزایش است و واقعاً فایده ای ندارد
190
00:06:39,650 –> 00:06:40,220
191
00:06:40,220 –> 00:06:43,100
که نیمه آخر آرایه را نگاه کنیم، بنابراین کار
192
00:06:43,100 –> 00:06:44,360
خوبی است که می توانیم انجام دهیم. فقط می توانیم
193
00:06:44,360 –> 00:06:47,000
بگوییم خوب است
194
00:06:47,000 –> 00:06:49,610
نیمه دوم آرایه را نادیده بگیریم و فقط روی قسمت چپ تمرکز کنیم
195
00:06:49,610 –> 00:06:51,380
و این دقیقاً ایده
196
00:06:51,380 –> 00:06:53,690
پشت جستجوی باینری است و می توانیم دوباره این کار
197
00:06:53,690 –> 00:06:55,220
را دقیقاً انجام دهیم زیرا می دانیم که
198
00:06:55,220 –> 00:06:57,590
آرایه مرتب شده است بنابراین باید چه کاری انجام دهیم.
199
00:06:57,590 –> 00:06:59,120
آیا میخواهیم بگوییم خوب، من به
200
00:06:59,120 –> 00:07:00,920
هیچ یک از آن عناصر اهمیتی نمیدهم، بیایید ادامه دهیم
201
00:07:00,920 –> 00:07:02,960
و محدودههای خود را برای جستجوی دودویی بازتعریف کنیم
202
00:07:02,960 –> 00:07:05,660
و دوباره این کار را امتحان کنیم، بنابراین کاری که
203
00:07:05,660 –> 00:07:07,310
میکنیم این است که فقط به نوعی از
204
00:07:07,310 –> 00:07:09,200
شر همه آنها خلاص میشویم. عناصر وجود دارد و
205
00:07:09,200 –> 00:07:11,360
ما در حال رفتن به t o چاه جدید خود را تنظیم کنید
206
00:07:11,360 –> 00:07:12,980
نقطه پایین جدید همان نقطه پایینی است که
207
00:07:12,980 –> 00:07:15,830
شروع آن در آرایه است، نقطه پایان
208
00:07:15,830 –> 00:07:17,630
اکنون شش است، زیرا ما دوباره
209
00:07:17,630 –> 00:07:19,010
همه چیز را از هفت و
210
00:07:19,010 –> 00:07:20,350
بالاتر رد کردیم و آرایه
211
00:07:20,350 –> 00:07:22,640
چیزی نیست که به ما کمک کند از آن خارج شویم.
212
00:07:22,640 –> 00:07:24,740
یک مقدار نزدیکتر در این آرایه به
213
00:07:24,740 –> 00:07:26,750
عنصر هدف و سپس نقطه وسط ما در
214
00:07:26,750 –> 00:07:29,240
این مورد پنج است، بنابراین ما انتهای خود
215
00:07:29,240 –> 00:07:31,070
را داریم، سمت چپ خود را داریم و سپس
216
00:07:31,070 –> 00:07:33,050
نقطه وسط خود را داریم، بنابراین نقطه وسط پنج است و
217
00:07:33,050 –> 00:07:34,850
ما می رویم. برای دنبال کردن دوباره از همان الگوریتم،
218
00:07:34,850 –> 00:07:37,490
بنابراین نقطه وسط در این مورد از
219
00:07:37,490 –> 00:07:39,350
نوع کوچکتر آرایه تقسیم شده، پنج است
220
00:07:39,350 –> 00:07:41,990
و سپس سمت راست نقطه میانی در
221
00:07:41,990 –> 00:07:43,910
این مورد دو خواهد بود و سپس
222
00:07:43,910 –> 00:07:45,710
سمت چپ آن، متأسفم که سمت چپ
223
00:07:45,710 –> 00:07:47,450
نقطه میانی است، بنابراین سمت راست است. از نقطه وسط
224
00:07:47,450 –> 00:07:51,530
شش سمت چپ است و نقطه وسط دو است و سپس
225
00:07:51,530 –> 00:07:52,550
همان کاری را انجام می دهیم
226
00:07:52,550 –> 00:07:53,600
که دوباره انجام دادیم، تفاوت را بررسی می کنیم
227
00:07:53,600 –> 00:07:56,630
بنابراین 6 منهای 4 و سپس 2 منهای
228
00:07:56,630 –> 00:07:59,240
4 و ما می خواهیم بررسی کنیم که چگونه است.
229
00:07:59,240 –> 00:08:01,250
بسیاری از واحدها دورتر از این عناصر هستند که
230
00:08:01,250 –> 00:08:03,050
ما در حال بررسی آنها از عنصر هدف هستیم
231
00:08:03,050 –> 00:08:05,150
ما در حال تلاش برای تشخیص
232
00:08:05,150 –> 00:08:06,770
نزدیکترین عنصر به آن در آرایه هستیم،
233
00:08:06,770 –> 00:08:09,260
بنابراین 6 منهای 4 به ما
234
00:08:09,260 –> 00:08:11,240
مقدار 2 میدهد و این در واقع
235
00:08:11,240 –> 00:08:13,520
مقدار منهای 2 را به ما میدهد، اما یک چیز که
236
00:08:13,520 –> 00:08:14,930
احتمالاً باید آگاه باشید این است که
237
00:08:14,930 –> 00:08:17,660
ما می خواهیم
238
00:08:17,660 –> 00:08:19,940
قدر مطلق تفاوت را محاسبه کنیم، زیرا ما
239
00:08:19,940 –> 00:08:21,500
واقعاً نگران این هستیم که چند
240
00:08:21,500 –> 00:08:23,479
عدد از عنصر هدف فاصله دارد،
241
00:08:23,479 –> 00:08:25,760
بنابراین ما فقط فرض می کنیم
242
00:08:25,760 –> 00:08:27,680
که من فقط فرض می کنم که
243
00:08:27,680 –> 00:08:30,919
خارج از همه
244
00:08:30,919 –> 00:08:32,120
این تفاوتهایی که ما محاسبه میکنیم، میلههای قدر مطلق وجود دارد،
245
00:08:32,120 –> 00:08:33,830
بنابراین من فقط میروم و
246
00:08:33,830 –> 00:08:37,580
این منهای را حذف میکنم، بنابراین در این مورد، دو برابر
247
00:08:37,580 –> 00:08:40,789
چهار، دو واحد از چهار و
248
00:08:40,789 –> 00:08:43,280
شش، دو واحد با آن فاصله دارند. همچنین چهار تا، بنابراین
249
00:08:43,280 –> 00:08:44,780
ما در آنجا بهتر عمل نمیکنیم، هیچ
250
00:08:44,780 –> 00:08:46,490
کدام از این عناصر ما را
251
00:08:46,490 –> 00:08:48,530
بهتر نمیکنند، اما این کار را انجام میدهیم این است
252
00:08:48,530 –> 00:08:50,180
که میخواهیم بگوییم خوب است، همه چیز در
253
00:08:50,180 –> 00:08:52,430
سمت راست این عناصر اساساً
254
00:08:52,430 –> 00:08:53,050
به نفع
255
00:08:53,050 –> 00:08:54,880
ما نیست. ما فقط همان
256
00:08:54,880 –> 00:08:56,380
کاری را انجام می دهیم که تا h انجام دادیم با
257
00:08:56,380 –> 00:08:58,660
پرتو نقطه میانی 7 ما دوباره به
258
00:08:58,660 –> 00:09:01,060
نصف اندازه آرایه میرویم و
259
00:09:01,060 –> 00:09:03,070
این روند را ادامه
260
00:09:03,070 –> 00:09:04,959
میدهیم، بنابراین اگر
261
00:09:04,959 –> 00:09:06,550
در ویدیوی جستجوی دودویی قدم بردارید،
262
00:09:06,550 –> 00:09:08,500
این فرآیند باید
263
00:09:08,500 –> 00:09:10,810
بسیار آشنا باشد. یک روش جدید برای توصیف
264
00:09:10,810 –> 00:09:12,519
الگوریتم جستجوی دودویی یا فقط یک
265
00:09:12,519 –> 00:09:14,529
دیدگاه متفاوت از الگوریتم جستجوی دودویی
266
00:09:14,529 –> 00:09:16,510
است که برای این مشکل خاص اعمال شده
267
00:09:16,510 –> 00:09:18,820
است، بنابراین در این مورد کاری که ما میخواهیم
268
00:09:18,820 –> 00:09:22,209
انجام دهیم این است که نقطه میانی ما 2 خواهد بود، بنابراین
269
00:09:22,209 –> 00:09:24,399
ما حرکت میکنیم. در نقطه میانی پایین خواهد
270
00:09:24,399 –> 00:09:27,910
بود سپس به وجود دارد، بنابراین سمت راست
271
00:09:27,910 –> 00:09:30,100
آن سمت راست نقطه میانی
272
00:09:30,100 –> 00:09:32,760
خواهد بود 5 و سمت چپ نقطه میانی
273
00:09:32,760 –> 00:09:35,170
در این مورد چیزی به سمت چپ
274
00:09:35,170 –> 00:09:37,000
یک نقطه میانی وجود
275
00:09:37,000 –> 00:09:39,010
ندارد، بنابراین هیچ چیزی در اینجا وجود نخواهد داشت، بنابراین من فقط آن را به عنوان
276
00:09:39,010 –> 00:09:41,529
یک می گذاریم – بنابراین کاری که ما دوباره انجام می دهیم این است که
277
00:09:41,529 –> 00:09:44,620
تفاوت بین 5 و هدف را بررسی می کنیم و
278
00:09:44,620 –> 00:09:46,180
سپس چیزی در اینجا وجود ندارد، بنابراین ما
279
00:09:46,180 –> 00:09:48,100
چیزی را در آنجا بررسی نمی کنیم، این
280
00:09:48,100 –> 00:09:50,589
مقدار 1 را به ما می دهد که
281
00:09:50,589 –> 00:09:52,000
کوچکترین است. تفاوتی که ما
282
00:09:52,000 –> 00:09:54,579
با آن روبرو شده ایم تا اینجای کار انجام شد و بعد از این مرحله،
283
00:09:54,579 –> 00:09:56,019
284
00:09:56,019 –> 00:09:57,730
جستجوی باینری خود را به پایان میرسانیم زیرا میدانیم
285
00:09:57,730 –> 00:09:59,800
که کل آرایه را با جستجوی باینری مرور کردهایم
286
00:09:59,800 –> 00:10:01,690
و این کمترین مقداری است که
287
00:10:01,690 –> 00:10:04,209
تا کنون به آن رسیدهایم، بنابراین این مقدار
288
00:10:04,209 –> 00:10:06,790
خواهد بود. کوچکترین مقدار و یک عدد
289
00:10:06,790 –> 00:10:08,200
در این آرایه که کوچکترین مقدار را به ما می دهد
290
00:10:08,200 –> 00:10:11,110
، این مقدار 5 است، بنابراین
291
00:10:11,110 –> 00:10:12,220
این همان چیزی است که ما به عنوان
292
00:10:12,220 –> 00:10:15,120
خروجی برای این مثال خاص برمی
293
00:10:15,120 –> 00:10:19,270
گردانیم، بنابراین امیدواریم که این نمای کلی
294
00:10:19,270 –> 00:10:20,740
منطقی باشد و کاری که می خواهیم انجام دهیم. اکنون
295
00:10:20,740 –> 00:10:22,720
ما آن ایده را می گیریم و
296
00:10:22,720 –> 00:10:24,700
آن را کدگذاری می کنیم و امیدواریم زمانی که در
297
00:10:24,700 –> 00:10:26,380
مورد نحوه نگارش این مطلب صریح
298
00:10:26,380 –> 00:10:29,500
تر شویم، این
299
00:10:29,500 –> 00:10:31,180
ایده واضح تر یا حداقل دقیق تر می شود،
300
00:10:31,180 –> 00:10:33,670
بنابراین اجازه دهید ادامه دهیم و شروع
301
00:10:33,670 –> 00:10:35,560
به کدنویسی کنید، بنابراین من میخواهم از
302
00:10:35,560 –> 00:10:38,020
شر این یادداشتها خلاص شوم و سپس بیایید
303
00:10:38,020 –> 00:10:40,570
جلوتر برویم و تابع خود را بنویسیم، بنابراین
304
00:10:40,570 –> 00:10:43,240
تابع find closest number را صدا میزنم یا
305
00:10:43,240 –> 00:10:45,459
نزدیکترین numb را پیدا میکنم
306
00:10:45,459 –> 00:10:47,740
، آرایه a را دو آرگومان میگیرد و همچنین
307
00:10:47,740 –> 00:10:49,660
عنصر هدفی که ما دنبالش هستیم er و سپس
308
00:10:49,660 –> 00:10:50,680
میروم و
309
00:10:50,680 –> 00:10:52,660
متغیری به نام min diff تعریف میکنم و این
3