در این مطلب، ویدئو ساختار داده ها و الگوریتم ها در پایتون | ساختارهای داده در پایتون | ادورکا | Python Rewind- 5 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 1:47:25
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,839
بچه ها قبل از شروع جلسه،
2
00:00:01,839 –> 00:00:03,760
می توانید لطفاً یک تأیید سریع به من بدهید،
3
00:00:03,760 –> 00:00:05,680
اگر همه می توانید صفحه نمایش من را ببینید
4
00:00:05,680 –> 00:00:07,440
و صدای من را بشنوید، ارباب و واضح و همچنین
5
00:00:07,440 –> 00:00:09,680
6
00:00:12,639 –> 00:00:14,160
عالی. خیلی ممنون از
7
00:00:14,160 –> 00:00:16,720
تأیید همه، بنابراین نام من
8
00:00:16,720 –> 00:00:18,880
neeraj kedia است و من بوده ام. اکنون
9
00:00:18,880 –> 00:00:21,199
بیش از 13 سال است که در صنعت شهر
10
00:00:21,199 –> 00:00:22,640
11
00:00:22,640 –> 00:00:24,640
کار می کنیم، بنابراین دستور جلسه امروز اول
12
00:00:24,640 –> 00:00:26,960
از همه در مورد
13
00:00:26,960 –> 00:00:28,880
ساختارهای داده در پایتون بحث می کنیم
14
00:00:28,880 –> 00:00:30,640
و دوباره ساختار داده این است که چگونه می
15
00:00:30,640 –> 00:00:32,880
توانیم با ساختارهای داده داخلی کار کنیم
16
00:00:32,880 –> 00:00:35,280
و چگونه می توانیم با ساختارهای داده تعریف شده توسط کاربر کار کنید
17
00:00:35,280 –> 00:00:36,640
18
00:00:36,640 –> 00:00:38,559
و سپس در مورد
19
00:00:38,559 –> 00:00:40,960
الگوریتمهای پایتون بحث کنیم
20
00:00:40,960 –> 00:00:43,040
که چگونه الگوریتمهایی دقیقاً
21
00:00:43,040 –> 00:00:45,840
عناصر یک الگوریتم الگوریتم خوب
22
00:00:45,840 –> 00:00:48,719
هستند، الگوریتمهای پیمایش درختی را طبقهبندی میکنند
23
00:00:48,719 –> 00:00:51,280
، مرتبسازی همه الگوریتمها
24
00:00:51,280 –> 00:00:53,440
و الگوریتمهای جستجو را انجام میدهیم و سپس این
25
00:00:53,440 –> 00:00:56,480
کار را انجام میدهیم. تجزیه و تحلیل الگوریتم
26
00:00:56,480 –> 00:00:59,440
بسیار خوب است، بنابراین دانش ساختارهای داده
27
00:00:59,440 –> 00:01:01,840
و الگوریتم ها پایه ای را
28
00:01:01,840 –> 00:01:05,040
برای شناسایی برنامه نویسان تشکیل می
29
00:01:05,040 –> 00:01:07,520
دهد که دلیل دیگری برای دوباره
30
00:01:07,520 –> 00:01:10,400
شناختن پایتون به عنوان یک زبان و در حالی که
31
00:01:10,400 –> 00:01:13,119
ساختارهای داده به شرکت ها کمک می کند
32
00:01:13,119 –> 00:01:15,360
تا مطمئن شوند که می توانند
33
00:01:15,360 –> 00:01:17,840
الگوریتم های داده را بهتر سازماندهی کنند، به
34
00:01:17,840 –> 00:01:20,000
یافتن راه حل برای
35
00:01:20,000 –> 00:01:22,400
مشکلات تجزیه و تحلیل داده ها کمک می کند،
36
00:01:22,400 –> 00:01:24,240
بنابراین اگر در مورد ساختارهای داده
37
00:01:24,240 –> 00:01:26,400
در پایتون صحبت کنیم، اول از همه آنها
38
00:01:26,400 –> 00:01:28,400
چندین نوع هستند. دادهها،
39
00:01:28,400 –> 00:01:30,799
انواع دادههای داخلی را داریم و سپس
40
00:01:30,799 –> 00:01:33,520
انواع دادههای تعریفشده توسط کاربر را داریم، اکنون از نظر
41
00:01:33,520 –> 00:01:36,240
انواع دادههای داخلی،
42
00:01:36,240 –> 00:01:39,680
لغتنامهها و مجموعههای تاپل لیست داریم،
43
00:01:39,680 –> 00:01:42,799
بنابراین فهرست برای ذخیره عناصر فهرستی استفاده میشود
44
00:01:42,799 –> 00:01:45,119
که قابل تغییر هستند و میتوانند.
45
00:01:45,119 –> 00:01:47,360
شامل عبارتهای تکراری است، بنابراین در یک لیست داده شده
46
00:01:47,360 –> 00:01:49,119
میتوانیم چندین مورد تکراری داشته باشیم
47
00:01:49,119 –> 00:01:52,079
و به علاوه میتوانیم
48
00:01:52,079 –> 00:01:55,680
موارد فهرست را هر زمان که بخواهیم بهروزرسانی کنیم، سپس
49
00:01:55,680 –> 00:01:58,560
فرهنگهای لغتنامههایی داریم تا فرهنگهای لغت مانند
50
00:01:58,560 –> 00:02:00,560
جفتهای مقادیر کلیدی باشند که قابل تغییر هستند، به این
51
00:02:00,560 –> 00:02:02,320
معنی که میتوانیم آنها را در هر نقطه از آن تغییر دهیم.
52
00:02:02,320 –> 00:02:03,119
53
00:02:03,119 –> 00:02:06,159
پس از آن ما تاپل هایی داریم، بنابراین تاپل ها غیرقابل تغییر هستند، به
54
00:02:06,159 –> 00:02:07,600
این معنی که ما غیرقابل تغییر در نظر گرفته می شویم،
55
00:02:07,600 –> 00:02:10,160
آنها نمی
56
00:02:10,160 –> 00:02:12,480
توانند پس از اعلام آن
57
00:02:12,480 –> 00:02:14,400
تغییر کنند و حتی نمی توانند
58
00:02:14,400 –> 00:02:16,239
تکراری داشته باشند.
59
00:02:16,239 –> 00:02:18,480
پس از آن ما مجموعه هایی داریم، بنابراین مجموعه ها مانند عناصر پیوسته هستند،
60
00:02:18,480 –> 00:02:21,360
مانند عناصر منحصر به فرد نامرتب
61
00:02:21,360 –> 00:02:23,680
که تغییر ناپذیر هستند، به
62
00:02:23,680 –> 00:02:25,840
این معنی که در اینجا باید همه عناصر
63
00:02:25,840 –> 00:02:27,280
منحصر به فرد باشند، آنها نمی توانند
64
00:02:27,280 –> 00:02:29,840
تکرار شوند و می توان آنها را در زمان بعدی تغییر داد.
65
00:02:29,840 –> 00:02:31,599
66
00:02:31,599 –> 00:02:32,480
67
00:02:32,480 –> 00:02:34,000
و سپس اگر در مورد
68
00:02:34,000 –> 00:02:36,160
ساختار داده تعریف شده توسط کاربر صحبت کنیم،
69
00:02:36,160 –> 00:02:38,640
70
00:02:38,640 –> 00:02:42,239
نمودار فهرست پیوندی درخت صف پشته و نقشه هش داریم، بنابراین
71
00:02:42,239 –> 00:02:43,599
برای شروع،
72
00:02:43,599 –> 00:02:47,040
ما پشته داریم، بنابراین پشته ها مانند
73
00:02:47,040 –> 00:02:50,560
آخرین ساختار داده خطی هستند،
74
00:02:50,560 –> 00:02:52,720
بنابراین اساساً اگر عناصر
75
00:02:52,720 –> 00:02:54,640
به آخرین به روز رسانی شده است، قرار است به
76
00:02:54,640 –> 00:02:57,519
77
00:02:57,519 –> 00:02:59,360
عنوان یک معماری برگ به اولین به عنوان آخرین در اولین بیرون فشار داده شود،
78
00:02:59,360 –> 00:03:01,280
سپس
79
00:03:01,280 –> 00:03:03,760
زمانی که صف داریم در اینجا صف داریم، بنابراین qs مانند
80
00:03:03,760 –> 00:03:04,959
81
00:03:04,959 –> 00:03:06,800
اولین خطی در خانه اول با عنصر داده است
82
00:03:06,800 –> 00:03:09,040
که ابتدا معرفی شد.
83
00:03:09,040 –> 00:03:11,519
84
00:03:11,519 –> 00:03:13,200
وقتی اکسل اتفاق میافتد دوباره
85
00:03:13,200 –> 00:03:15,280
برای اولین بار از آن خارج میشویم و به این ترتیب در قسمت fifa ابتدا در ابتدا به
86
00:03:15,280 –> 00:03:16,159
بیرون کار میکند،
87
00:03:16,159 –> 00:03:18,800
سپس درختهایی داریم، بنابراین درختها مانند
88
00:03:18,800 –> 00:03:21,360
ساختار داده غیرخطی هستند که ریشه دارند
89
00:03:21,360 –> 00:03:22,959
و یک لیست پیوندی تعریف نشده است
90
00:03:22,959 –> 00:03:25,280
، بنابراین
91
00:03:25,280 –> 00:03:27,200
لیست های پیشرو به عبارت ساده عناصر هستند، آنها
92
00:03:27,200 –> 00:03:29,440
ساختارهای داده ای هستند که با اشاره گرها پیوند دارند،
93
00:03:29,440 –> 00:03:30,720
94
00:03:30,720 –> 00:03:33,360
سپس ما نمودار داریم، بنابراین نمودارها شامل
95
00:03:33,360 –> 00:03:36,239
مجموعه ای از نقاط یا گره ها به همراه
96
00:03:36,239 –> 00:03:37,280
یال ها هستند
97
00:03:37,280 –> 00:03:40,319
و سپس ما نقشه های هش داریم، بنابراین اساساً
98
00:03:40,319 –> 00:03:42,239
آنها بنابراین
99
00:03:42,239 –> 00:03:44,840
اگر سناریوی پایتون را درست در نظر بگیریم، آنها مانند دیکشنری ها هستند،
100
00:03:44,840 –> 00:03:46,400
101
00:03:46,400 –> 00:03:47,840
بنابراین
102
00:03:47,840 –> 00:03:50,879
اکنون باید در مورد مفهوم
103
00:03:50,879 –> 00:03:52,959
ساختارهای داده داخلی بحث کنیم
104
00:03:52,959 –> 00:03:55,040
که چگونه آنها پیکربندی می شوند،
105
00:03:55,040 –> 00:03:57,360
بنابراین در اینجا ما دیکشنری داریم، مجموعه
106
00:03:57,360 –> 00:03:59,760
هایی داریم که تاپل ها داریم و سپس لیستی داریم. بنابراین
107
00:03:59,760 –> 00:04:02,159
ما دوباره این لیست را مورد بحث
108
00:04:02,159 –> 00:04:04,159
109
00:04:04,159 –> 00:04:06,400
110
00:04:06,400 –> 00:04:09,120
111
00:04:09,120 –> 00:04:12,080
112
00:04:12,080 –> 00:04:14,319
قرار دادیم.
113
00:04:14,319 –> 00:04:16,560
دوباره آنها
114
00:04:16,560 –> 00:04:18,399
قابل تغییر نیستند یعنی ما نمی توانیم
115
00:04:18,399 –> 00:04:19,600
آن را تغییر دهیم
116
00:04:19,600 –> 00:04:22,240
و سپس مجموعه هایی داریم و آنها
117
00:04:22,240 –> 00:04:24,720
مجموعه ای نامرتب از عناصر منحصر به فرد هستند
118
00:04:24,720 –> 00:04:26,000
و آنها
119
00:04:26,000 –> 00:04:29,360
قابل تغییر هستند به این معنی که ما می توانیم آن را تغییر دهیم.
120
00:04:29,360 –> 00:04:31,919
پس از آن ما ساختار داده تعریف شده توسط
121
00:04:31,919 –> 00:04:33,840
کاربر داریم، ساختارهای داده تعریف شده توسط کاربر داریم،
122
00:04:33,840 –> 00:04:36,160
مانند
123
00:04:36,160 –> 00:04:39,360
لیست های پیوندی، نمودارها، نقشه های هش درخت، صف ها و
124
00:04:39,360 –> 00:04:40,320
پشته
125
00:04:40,320 –> 00:04:42,320
هایی که در مورد این مؤلفه ها به تفصیل بحث می کنیم،
126
00:04:42,320 –> 00:04:44,080
127
00:04:44,080 –> 00:04:47,280
بنابراین اکنون اجازه دهید در مورد الگوریتم ها در پایتون بحث کنیم،
128
00:04:47,280 –> 00:04:48,880
129
00:04:48,880 –> 00:04:51,120
بنابراین الگوریتم ها چیستند، بنابراین الگوریتم ها چیستند.
130
00:04:51,120 –> 00:04:53,520
اساساً یک قانون یا مجموعهای از
131
00:04:53,520 –> 00:04:55,759
دستورالعملها که باید
132
00:04:55,759 –> 00:04:58,000
برای تکمیل یک کار معین دنبال شود، به عنوان مثال،
133
00:04:58,000 –> 00:04:59,759
اگر راههای متعددی برای تکمیل
134
00:04:59,759 –> 00:05:02,400
یک کار وجود دارد، بهترین مسیر کدام باید باشد،
135
00:05:02,400 –> 00:05:04,639
در مقابل اگر آنها یک
136
00:05:04,639 –> 00:05:07,199
شرط هستند، آن شرایط چگونه باید
137
00:05:07,199 –> 00:05:07,919
باشد.
138
00:05:07,919 –> 00:05:10,400
باید دوباره اعمال شوند، همه چیزها
139
00:05:10,400 –> 00:05:12,560
به خوبی به عنوان بخشی از الگوریتم تعریف شده اند،
140
00:05:12,560 –> 00:05:14,320
141
00:05:14,320 –> 00:05:16,320
بنابراین برای یافتن کد مطمئن
142
00:05:16,320 –> 00:05:18,479
برای هر مسئله ای استفاده می شود، به عنوان مثال
143
00:05:18,479 –> 00:05:20,400
اگر در حال نوشتن یک مسئله هستیم، برای
144
00:05:20,400 –> 00:05:22,479
مثال همان مفهومی که ممکن است
145
00:05:22,479 –> 00:05:24,240
در دوران مدرسه یاد گرفته باشید. هنگامی که ما
146
00:05:24,240 –> 00:05:26,080
در مورد فلوچارت نیز یاد میگرفتیم،
147
00:05:26,080 –> 00:05:28,639
بنابراین اگر در مورد ایجاد
148
00:05:28,639 –> 00:05:30,320
فلوچارت برای مثال درست کردن چای صحبت
149
00:05:30,320 –> 00:05:32,479
کنیم، باید آب را بجوشانیم.
150
00:05:32,479 –> 00:05:34,560
اگر آب شروع به جوشیدن کند، اگر آب شروع به جوشیدن کند،
151
00:05:34,560 –> 00:05:36,320
باید برگ های چای را اضافه کنیم،
152
00:05:36,320 –> 00:05:38,240
اگر اینطور نیست، باید چند ثانیه به جوشیدن ادامه دهیم،
153
00:05:38,240 –> 00:05:41,280
154
00:05:41,280 –> 00:05:43,440
بنابراین منطقی است که
155
00:05:43,440 –> 00:05:45,759
بر اساس انتخاب های داده شده در چه نقطه ای از زمان
156
00:05:45,759 –> 00:05:48,479
باید اعمال شود. آنچه را که
157
00:05:48,479 –> 00:05:51,199
در اینجا به عنوان الگوریتم معرفی می کنیم همان چیزی است
158
00:05:51,199 –> 00:05:54,080
که به عنوان الگوریتم معرفی می شود
159
00:05:54,080 –> 00:05:55,919
و به کدام قسمت اشاره می کنیم
160
00:05:55,919 –> 00:05:57,280
و
161
00:05:57,280 –> 00:05:59,360
اگر دوباره در مورد ساختار الگوریتم صحبت کنیم
162
00:05:59,360 –> 00:06:01,120
163
00:06:01,120 –> 00:06:03,759
باید کارآمدترین منطق باشد و
164
00:06:03,759 –> 00:06:05,360
اساساً کد شبه
165
00:06:05,360 –> 00:06:07,759
مشکلات را می دهند و سپس می توانند
166
00:06:07,759 –> 00:06:10,720
در چندین زبان پیاده سازی شده است، زیرا
167
00:06:10,720 –> 00:06:13,199
زبان خاصی نیستند،
168
00:06:13,199 –> 00:06:15,600
بنابراین در اینجا باید
169
00:06:15,600 –> 00:06:17,680
ابتدا مشکل را مشخص کنیم که دقیقاً
170
00:06:17,680 –> 00:06:20,160
مشکل ما چیست، بنابراین الگوریتم ها معمولاً
171
00:06:20,160 –> 00:06:22,720
به صورت ترکیبی از
172
00:06:22,720 –> 00:06:26,080
زبان قابل فهم توسط کاربر و برخی از
173
00:06:26,080 –> 00:06:28,080
زبان های برنامه نویسی رایج در حال حاضر
174
00:06:28,080 –> 00:06:30,960
معمولاً در مراحل یادداشت می شوند. با این حال
175
00:06:30,960 –> 00:06:33,840
همیشه لازم نیست این کار را انجام دهیم، بنابراین
176
00:06:33,840 –> 00:06:36,160
قوانین مشخصی برای فرمولبندی
177
00:06:36,160 –> 00:06:38,240
الگوریتمها وجود ندارد، اما باید
178
00:06:38,240 –> 00:06:40,319
نکات زیر را در نظر داشته باشیم. همانطور که میتوانیم
179
00:06:40,319 –> 00:06:42,400
روی صفحه نمایش ببینیم، بنابراین ابتدا باید بفهمیم
180
00:06:42,400 –> 00:06:44,880
181
00:06:44,880 –> 00:06:47,120
مشکل دقیقا چیست، سپس
182
00:06:47,120 –> 00:06:49,440
باید بفهمیم که آیا دقیقاً باید از کجا
183
00:06:49,440 –> 00:06:50,880
شروع
184
00:06:50,880 –> 00:06:52,800
کنیم یا نه و سپس باید به این
185
00:06:52,800 –> 00:06:53,919
فکر
186
00:06:53,919 –> 00:06:55,919
کنیم که از کجا باید شروع کنیم. همچنین توقف کنید زیرا
187
00:06:55,919 –> 00:06:58,400
شروع و توقف هر دو مورد نیاز است
188
00:06:58,400 –> 00:07:01,199
و سپس باید مراحلی را
189
00:07:01,199 –> 00:07:03,360
که قرار است
190
00:07:03,360 –> 00:07:05,599
در آینده نزدیک انجام شود به عنوان بخشی از پاسخ فرموله
191
00:07:05,599 –> 00:07:07,199
میکردیم و سپس باید
192
00:07:07,199 –> 00:07:09,520
مراحل خود را نیز مرور کنیم
193
00:07:09,520 –> 00:07:11,520
، مثلاً فرض کنید مجبور بودیم یک الگوریتم پاپ و
194
00:07:11,520 –> 00:07:14,240
ساده برای بررسی
195
00:07:14,240 –> 00:07:16,560
اینکه آیا دانش آموزی امتحان را پس داده است یا خیر، فرموله
196
00:07:16,560 –> 00:07:18,880
کنید، بنابراین در اینجا می توانیم
197
00:07:18,880 –> 00:07:20,720
الگوریتم چند مرحله ای ایجاد کنیم، بنابراین در اینجا می توانیم شروع کنیم،
198
00:07:20,720 –> 00:07:22,800
می توانیم دو متغیر را اعلام کنیم و سپس
199
00:07:22,800 –> 00:07:25,680
می توانیم نمره ها را ذخیره کنیم و با x
200
00:07:25,680 –> 00:07:27,120
و سپس به دست آوریم. ما میتوانیم حداقل
201
00:07:27,120 –> 00:07:28,800
نمره قبولی را در y ذخیره کنیم
202
00:07:28,800 –> 00:07:31,360
و سپس میتوانیم بررسی کنیم که آیا x بزرگتر
203
00:07:31,360 –> 00:07:32,319
از y
204
00:07:32,319 –> 00:07:34,639
است، در غیر این صورت دانشآموز موفق شده است، در غیر این
205
00:07:34,639 –> 00:07:37,039
صورت توزیع به سادگی ناموفق است و اکنون باید
206
00:07:37,039 –> 00:07:38,479
207
00:07:38,479 –> 00:07:40,240
اجرا را نیز متوقف کنیم،
208
00:07:40,240 –> 00:07:42,319
بنابراین اگر میخواهید میتوانیم این امتحان را دستکاری کنیم.
209
00:07:42,319 –> 00:07:44,479
به عنوان مثال، فرض کنید می
210
00:07:44,479 –> 00:07:46,720
خواهیم مقادیر را به متغیرها
211
00:07:46,720 –> 00:07:48,639
در مرحله دو اختصاص دهیم، برای مثال فرض کنید
212
00:07:48,639 –> 00:07:50,879
در اینجا باید چندین متغیر را
213
00:07:50,879 –> 00:07:52,879
برای تجزیه و شکست پیدا کنیم، بنابراین شما می توانید
214
00:07:52,879 –> 00:07:55,280
چندین متغیر را تعریف کنید و سپس ما
215
00:07:55,280 –> 00:07:57,440
نیز می توانیم منطق خود را اعمال کنیم.
216
00:07:57,440 –> 00:08:00,080
217
00:08:00,080 –> 00:08:03,360
بسته به نیاز می تواند درصد و غیره را بیابد،
218
00:08:03,360 –> 00:08:06,080
بنابراین اگر در مورد الگوریتم های خوب صحبت می کنیم،
219
00:08:06,080 –> 00:08:07,680
بنابراین اگر در مورد عناصر یک
220
00:08:07,680 –> 00:08:10,080
الگوریتم خوب صحبت می کنیم، ابتدا چندین مرحله وجود دارد،
221
00:08:10,080 –> 00:08:13,440
اول از همه مراحل باید متناهی باشد،
222
00:08:13,440 –> 00:08:15,759
واضح و قابل درک باشد،
223
00:08:15,759 –> 00:08:17,360
یعنی باید وجود داشته باشد. هیچ گونه
224
00:08:17,360 –> 00:08:19,199
اختلافی وجود نداشته باشد به علاوه نباید هیچ نوع سردرگمی وجود داشته باشد،
225
00:08:19,199 –> 00:08:20,800
226
00:08:20,800 –> 00:08:23,120
اما آنچه باید انجام شود و همچنین
227
00:08:23,120 –> 00:08:25,599
به چه روشی، بنابراین کل
228
00:08:25,599 –> 00:08:27,440
ساختار الگوریتم باید
229
00:08:27,440 –> 00:08:28,639
روشن
230
00:08:28,639 –> 00:08:29,759
باشد، نباید هیچ نوع
231
00:08:29,759 –> 00:08:32,399
سردرگمی در مورد آنچه باید انجام شود وجود داشته باشد.
232
00:08:32,399 –> 00:08:33,839
آنچه باید در دسترس باشد باید
233
00:08:33,839 –> 00:08:36,080
برای همه کاملاً واضح باشد،
234
00:08:36,080 –> 00:08:37,919
سپس باید یک توصیف واضح و
235
00:08:37,919 –> 00:08:41,120
دقیق از ورودی و خروجی
236
00:08:41,120 –> 00:08:43,200
وجود داشته باشد، بنابراین ورودی از چه چیزی باید باشد.
237
00:08:43,200 –> 00:08:45,519
کاربران نهایی و خروجی مورد انتظار ما چیست
238
00:08:45,519 –> 00:08:46,959
239
00:08:46,959 –> 00:08:48,959
و هر مرحله باید یک خروجی تعریف شده داشته
240
00:08:48,959 –> 00:08:51,839
باشد که فقط به ورودی بستگی دارد و در
241
00:08:51,839 –> 00:08:56,000
آن مرحله یا مراحل قبل از
242
00:08:56,000 –> 00:08:57,600
آن و سپس الگوریتم باید به
243
00:08:57,600 –> 00:08:59,680
اندازه کافی منعطف باشد تا
244
00:08:59,680 –> 00:09:01,600
آن را قالب بندی کند تا اجازه تعداد
245
00:09:01,600 –> 00:09:03,519
راه حل ها و
246
00:09:03,519 –> 00:09:04,959
این مراحل باید از
247
00:09:04,959 –> 00:09:07,279
اصول کلی برنامه نویسی باشد و نباید
248
00:09:07,279 –> 00:09:10,560
به هیچ نوع زبانی خاص باشد،
249
00:09:10,560 –> 00:09:12,240
بنابراین اگر در مورد کلاس های الگوریتم صحبت کنیم،
250
00:09:12,240 –> 00:09:15,279
اول از همه تقسیم
251
00:09:15,279 –> 00:09:17,680
و تسخیر داریم، سپس
252
00:09:17,680 –> 00:09:19,120
برنامه نویسی پویا
253
00:09:19,120 –> 00:09:21,839
و سپس الگوریتم های حریص داریم.
254
00:09:21,839 –> 00:09:23,600
همه اینها انواع مختلفی از
255
00:09:23,600 –> 00:09:26,160
کلاس های الگوریتم هستند، بنابراین اول از همه تقسیم کنید
256
00:09:26,160 –> 00:09:28,240
و غلبه کنید، بنابراین تقسیم
257
00:09:28,240 –> 00:09:30,000
در تقسیم و غلبه، ما به سادگی
258
00:09:30,000 –> 00:09:32,399
مسئله را به عبارات فرعی تقسیم می کنیم، به
259
00:09:32,399 –> 00:09:34,480
عنوان مثال ما یک مشکل بزرگ داریم، بنابراین
260
00:09:34,480 –> 00:09:36,640
می توانیم آن را به جزء کوچکتر تقسیم کنیم
261
00:09:36,640 –> 00:09:38,560
و سپس می توانیم شروع کنیم.
262
00:09:38,560 –> 00:09:40,800
این اجزای کوچکتر را یکی یکی حل کنید و
263
00:09:40,800 –> 00:09:42,240
اگر قرار باشد همه اجزای کوچکتر
264
00:09:42,240 –> 00:09:44,480
حل شوند، کل مشکل
265
00:09:44,480 –> 00:09:47,120
نیز حل خواهد شد. و غیره
266
00:09:47,120 –> 00:09:49,760
بنابراین در اینجا میتوانیم کل
267
00:09:49,760 –> 00:09:51,440
مشکل بزرگ را به عبارات کوچکتر بدهیم و سپس
268
00:09:51,440 –> 00:09:53,680
میتوانیم روی آن کار کنیم
269
00:09:53,680 –> 00:09:55,839
و سپس برنامهنویسی پویا را داریم،
270
00:09:55,839 –> 00:09:57,680
بنابراین در اینجا میتوانیم مشکل را
271
00:09:57,680 –> 00:09:58,800
272
00:09:58,800 –> 00:10:01,920
به بخشهای فرعی تقسیم کنیم، نتیجه زیربخشها را به خاطر بسپاریم و
273
00:10:01,920 –> 00:10:04,079
میخواهیم اعمال کنیم. به موارد مشابه
274
00:10:04,079 –> 00:10:05,760
، بنابراین در اینجا میتوانیم سعی کنیم یک
275
00:10:05,760 –> 00:10:07,120
الگو را نیز پیدا کنیم
276
00:10:07,120 –> 00:10:09,760
و سپس الگوریتم حریص را داریم، بنابراین
277
00:10:09,760 –> 00:10:13,040
شامل برداشتن آسانترین مراحل
278
00:10:13,040 –> 00:10:15,519
در حین حل یک مشکل بدون نگرانی
279
00:10:15,519 –> 00:10:17,360
در مورد پیچیدگی مراحل بعدی
280
00:10:17,360 –> 00:10:19,760
است، بنابراین در اینجا هدف ما این است که
281
00:10:19,760 –> 00:10:21,360
کل
282
00:10:21,360 –> 00:10:24,000
بیانیه آماده و اجرا شود و سپس میتوانیم
283
00:10:24,000 –> 00:10:26,640
روی اصلاح مسائل یا
284
00:10:26,640 –> 00:10:28,880
کار بیشتر روی هدایت
285
00:10:28,880 –> 00:10:32,880
دادههای فعلی که قبلاً به آنها دسترسی داریم کار کنیم
286
00:10:32,880 –> 00:10:35,440
تا با این ساختار داده
287
00:10:35,440 –> 00:10:37,519
و الگوریتمهای موجود در پایتون
288
00:10:37,519 –> 00:10:40,079
که اکنون به صورت رایگان در مورد آن صحبت میکنیم، پیش برویم.
289
00:10:40,079 –> 00:10:42,959
پیمایش در الگوریتمهای جستجو و
290
00:10:42,959 –> 00:10:45,440
همچنین الگوریتمهای مرتبسازی
291
00:10:45,440 –> 00:10:47,839
مورد استفاده،
292
00:10:48,399 –> 00:10:50,399
بنابراین اکنون میخواهیم در مورد
293
00:10:50,399 –> 00:10:52,560
الگوریتم سلول سفر درختی بحث کنیم،
294
00:10:52,560 –> 00:10:55,279
بنابراین اساساً درختها در پایتون
295
00:10:55,279 –> 00:10:57,680
غیر خطی هستند. ساختارهای داده گوش
296
00:10:57,680 –> 00:10:59,519
که دارای ریشه
297
00:10:59,519 –> 00:11:01,440
و گره هستند همانطور
298
00:11:01,440 –> 00:11:02,720
که در
299
00:11:02,720 –> 00:11:05,040
اینجا مشاهده کردیم در این
300
00:11:05,040 –> 00:11:07,120
نمودار فعلی به آنها نگاه می کنیم
301
00:11:07,120 –> 00:11:07,920
بنابراین
302
00:11:07,920 –> 00:11:10,160
اساساً بر اساس ترتیب
303
00:11:10,160 –> 00:11:12,880
بازدید از گره ها می توانند سه
304
00:11:12,880 –> 00:11:15,600
نوع پیمایش درخت
305
00:11:15,600 –> 00:11:17,200
باشند بنابراین اساساً ما در اینجا سه نوع داریم که می
306
00:11:17,200 –> 00:11:18,560
وانید ببینید ما سه نوع داریم که به
307
00:11:18,560 –> 00:11:20,399
ترتیب پیشسفارش و سفارش پس از آن داریم، بنابراین
308
00:11:20,399 –> 00:11:21,680
اول از همه بیایید یک کار را انجام دهیم، بیایید
309
00:11:21,680 –> 00:11:23,200
310
00:11:23,200 –> 00:11:26,399
با پیمایش
311
00:11:26,399 –> 00:11:28,880
312
00:11:28,880 –> 00:11:31,519
313
00:11:31,519 –> 00:11:34,560
ترتیب شروع کنیم. ریشه و سپس گره های سمت راست، بنابراین
314
00:11:34,560 –> 00:11:36,720
پیمایش خود را به شکل
315
00:11:36,720 –> 00:11:39,040
از تمام گره های ساختار لب
316
00:11:39,040 –> 00:11:41,040
شروع می کنیم و سپس به سمت
317
00:11:41,040 –> 00:11:42,959
ریشه و سپس در نهایت به سمت درخت حرکت می کنیم،
318
00:11:42,959 –> 00:11:44,240
اینطوری
319
00:11:44,240 –> 00:11:46,000
است که از نظر
320
00:11:46,000 –> 00:11:48,399
پیمایش به ترتیب ابتدا در اینجا کار می کند. دوباره
321
00:11:48,399 –> 00:11:51,120
322
00:11:51,120 –> 00:11:52,959
با گره های چپ شروع می کنیم و سپس
323
00:11:52,959 –> 00:11:55,040
ریشه در گره های سمت راست را دنبال می کنیم و سپس
324
00:11:55,040 –> 00:11:56,880
دو راه اندازی را
325
00:11:56,880 –> 00:11:58,639
از گره های درخت فرعی سمت چپ می
326
00:11:58,639 –> 00:12:00,720
آوریم و سپس به سمت th حرکت می کنیم. ریشه e و
327
00:12:00,720 –> 00:12:03,120
در نهایت زیردرخت سمت راست به طور کلی
328
00:12:03,120 –> 00:12:05,279
به همین صورت کار می کند
329
00:12:05,279 –> 00:12:06,399
و
330
00:12:06,399 –> 00:12:08,880
اکنون اینجا می توانیم اکنون در این اکنون ببینیم
331
00:12:08,880 –> 00:12:10,720
تا آن را به عنوان بخشی از مرجع داشته باشیم، می
332
00:12:10,720 –> 00:12:12,720
توانیم از این نمودار مشاهده کنیم
333
00:12:12,720 –> 00:12:13,839
که
334
00:12:13,839 –> 00:12:16,079
چهار بیشترین سمت چپ است همانطور که می بینید
335
00:12:16,079 –> 00:12:16,959
چهار
336
00:12:16,959 –> 00:12:18,720
وجود ندارد. چهار در اینجا چهار
337
00:12:18,720 –> 00:12:22,160
حالت سمت چپ اکثر گره است و از این
338
00:12:22,160 –> 00:12:23,920
رو که این اولین گره ای است
339
00:12:23,920 –> 00:12:26,320
که قرار است بعداً بازدید شود، ما به
340
00:12:26,320 –> 00:12:28,880
سمت ریشه ها حرکت خواهیم کرد، به این
341
00:12:28,880 –> 00:12:30,320
معنی که اکنون وقتی به سمت ریشه در اینجا حرکت می کنیم، داریم
342
00:12:30,320 –> 00:12:32,560
. بنابراین ریشه برای no
343
00:12:32,560 –> 00:12:34,320
4 4
344
00:12:34,320 –> 00:12:36,800
چیزی است که ریشه گره 4 چیست در اینجا بچه ها
345
00:12:36,800 –> 00:12:38,480
اجازه دهید فقط این را برجسته کنم
346
00:12:38,480 –> 00:12:41,440
که سمت چپ ترین گره در حال حاضر 2 4 سمت راست است،
347
00:12:41,440 –> 00:12:44,399
بنابراین ریشه گره 4
348
00:12:44,399 –> 00:12:47,040
چیست، آن 2 سمت راست است، بنابراین به سمت راست حرکت می
349
00:12:47,040 –> 00:12:49,360
کند. گره ریشه ابتدا به سمت راست، بنابراین
350
00:12:49,360 –> 00:12:51,519
به سمت 2 حرکت می کند و سپس به
351
00:12:51,519 –> 00:12:53,680
دنبال آن باید بررسی کنیم که
352
00:12:53,680 –> 00:12:55,920
آیا گرهی به سمت راست داریم و درخت
353
00:12:55,920 –> 00:12:58,079
نشان می دهد که ما یک گره به عنوان
354
00:12:58,079 –> 00:13:00,880
ریشه پنج داریم
355
00:13:00,880 –> 00:13:03,360
تا دوباره برای بازدید ارائه شود. جاده جدید پنج و یک بار
356
00:13:03,360 –> 00:13:05,279
که انجام شد و سپس زیر تی را ترک کنید hree
357
00:13:05,279 –> 00:13:07,519
کامل است و سپس ما
358
00:13:07,519 –> 00:13:10,560
دوباره همان قانون را از
359
00:13:10,560 –> 00:13:13,200
ریشه چپ به راست دنبال می کنیم تا
360
00:13:13,200 –> 00:13:16,560
تمام پیمایش را به
361
00:13:16,560 –> 00:13:18,480
درستی کامل کنیم، بنابراین
362
00:13:18,480 –> 00:13:20,800
دوباره به سمت چپ برمی گردد که چهارمین است و
363
00:13:20,800 –> 00:13:23,120
سپس می رود. برای پیمایش به سمت راست
364
00:13:23,120 –> 00:13:25,279
در
365
00:13:25,279 –> 00:13:27,120
دسترس احساس کنید که با ترتیب بنابراین اکنون در اینجا
366
00:13:27,120 –> 00:13:29,040
میتوانیم با پیمایش پیشسفارش
367
00:13:29,040 –> 00:13:31,200
نیز کار کنیم، بنابراین از نظر پیشسفارش
368
00:13:31,200 –> 00:13:33,519
ابتدا گره ریشه بازدید میشود و
369
00:13:33,519 –> 00:13:35,360
سپس زیر درخت سمت چپ و
370
00:13:35,360 –> 00:13:36,880
سپس زیردرخت سمت راست،
371
00:13:36,880 –> 00:13:39,040
بنابراین در این مثال میتوانیم ببینیم که اولین
372
00:13:39,040 –> 00:13:41,600
گره بازدید شده یک است،
373
00:13:41,600 –> 00:13:43,120
بنابراین در اینجا میتوانیم ببینیم اولین
374
00:13:43,120 –> 00:13:45,440
گرهای که میخواهیم از آن بازدید کنیم یک است
375
00:13:45,440 –> 00:13:48,560
و سپس گره دو
376
00:13:48,560 –> 00:13:50,560
که در سمت چپ گره
377
00:13:50,560 –> 00:13:53,440
یک است، بنابراین سمت چپ سمت گره دو
378
00:13:53,440 –> 00:13:55,279
است و به قسمت دوم می رود و
379
00:13:55,279 –> 00:13:57,279
380
00:13:57,279 –> 00:13:59,680
دوباره به سمت چپ حرکت می کند چهارم می شود و اکنون
381
00:13:59,680 –> 00:14:01,120
چپی وجود ندارد
382
00:14:01,120 –> 00:14:03,199
بنابراین اکنون به
383
00:14:03,199 –> 00:14:05,440
سمت راست و دوباره از راست تراورس می کنیم.
384
00:14:05,440 –> 00:14:07,519
دوباره به سمت بالا می رویم
385
00:14:07,519 –> 00:14:09,600
فرض کنید
386
00:14:09,600 –> 00:14:11,519
عنصر دیگری در دسترس باشد، سپس
387
00:14:11,519 –> 00:14:13,120
به آن
388
00:14:13,120 –> 00:14:15,120
عنصر خاص و همچنین بخشی از
389
00:14:15,120 –> 00:14:17,680
پیمایش پیشسفارش میرفت
390
00:14:17,680 –> 00:14:19,680
و سپس اگر در مورد سفارش پست صحبت میکنیم،
391
00:14:19,680 –> 00:14:21,839
پیمایش مرتبسازی پس از سفارش
392
00:14:21,839 –> 00:14:24,399
از سمت چپ شروع میشود. به سمت راست و سپس
393
00:14:24,399 –> 00:14:27,120
در نهایت به ریشه بنابراین در اینجا از سمت چپ شروع می شود
394
00:14:27,120 –> 00:14:29,279
و سپس
395
00:14:29,279 –> 00:14:32,000
دوباره به سمت
396
00:14:32,000 –> 00:14:34,639
راست به سمت چپ می رود دوباره به سمت راست دوباره به سمت چپ و
397
00:14:34,639 –> 00:14:37,360
به همین ترتیب مانند یک مسیر زیگزاگی کامل است
398
00:14:37,360 –> 00:14:39,760
که با استفاده از پست یا یک مسیر دنبال می شود.
399
00:14:39,760 –> 00:14:41,760
پیمایشی که از چپ به
400
00:14:41,760 –> 00:14:44,720
راست از چپ به راست و غیره میرفت،
401
00:14:44,720 –> 00:14:47,920
بنابراین مرتبسازی دادهها را در زمان واقعی
402
00:14:47,920 –> 00:14:49,440
میتوانیم مرتب کنیم، میتوانیم بگوییم چه زمانی روی آن
403
00:14:49,440 –> 00:14:51,360
کار میکنیم و هر داده را مرتب
404
00:14:51,360 –> 00:14:53,920
میکنیم، پس باید در زمان واقعی انجام شود
405
00:14:53,920 –> 00:14:56,000
و باید به
406
00:14:56,000 –> 00:14:58,480
یک تعداد الگوریتمهای مرتبسازی که باید
407
00:14:58,480 –> 00:15:00,000
حل شوند،
408
00:15:00,000 –> 00:15:02,639
بنابراین با مفاهیم
409
00:15:02,639 –> 00:15:05,519
ساختار داده و الگوریتمها در پایتون
410
00:15:05,519 –> 00:15:07,360
به عنوان بخشی از بحث ما پیش میرویم، اجازه دهید
411
00:15:07,360 –> 00:15:09,680
بحث خود را در مورد الگوریتمهای مرتبسازی
412
00:15:09,680 –> 00:15:11,600
ابتدا در
413
00:15:11,600 –> 00:15:14,320
پایتون شروع کنیم.
414
00:15:14,320 –> 00:15:17,040
در ابتدا از نظر الگوریتمهای مرتبسازی، از
415
00:15:17,040 –> 00:15:19,519
الگوریتمهای مرتبسازی برای مرتبسازی
416
00:15:19,519 –> 00:15:22,399
دادهها به ترتیب معین استفاده میشود
417
00:15:22,399 –> 00:15:24,800
و الگوریتمهای مرتبسازی
418
00:15:24,800 –> 00:15:27,680
را میتوان به پنج نوع سرویس طبقهبندی کرد.
419
00:15:27,680 –> 00:15:30,240
420
00:15:30,240 –> 00:15:33,120
421
00:15:33,120 –> 00:15:35,759
سپس مرتبسازی پوستهای داریم،
422
00:15:35,759 –> 00:15:38,399
بنابراین همه الگوریتمها
423
00:15:38,399 –> 00:15:41,199
دوباره اینجا هستند، همه آنها ابتدا تعریف میشوند
424
00:15:41,199 –> 00:15:42,480
425
00:15:42,480 –> 00:15:44,320
اگر در مورد مرتبسازی ادغام صحبت میکنیم،
426
00:15:44,320 –> 00:15:46,079
بیایید در مورد این مرتبسازیها یک به
427
00:15:46,079 –> 00:15:46,880
یک
428
00:15:46,880 –> 00:15:48,560
صحبت کنیم، بنابراین اگر درباره الگوریتم مرتبسازی و
429
00:15:48,560 –> 00:15:50,959
ادغام صحبت کنیم، به شرح زیر است. قانون divine
430
00:15:50,959 –> 00:15:53,040
and conquer اول از همه از
431
00:15:53,040 –> 00:15:55,040
قانون divide and conquer پیروی می کند،
432
00:15:55,040 –> 00:15:57,360
بنابراین در اینجا لیست داده شده از آیتم ها
433
00:15:57,360 –> 00:16:00,079
ابتدا به واحدهای کوچکتر تقسیم می شود و
434
00:16:00,079 –> 00:16:02,079
سپس به نقطه ای می رسد
435
00:16:02,079 –> 00:16:05,120
که هر لیست دقیقاً از یک
436
00:16:05,120 –> 00:16:06,399
آیتم تشکیل شده است
437
00:16:06,399 –> 00:16:09,120
و به طور پیش فرض لیستی حاوی
438
00:16:09,120 –> 00:16:11,519
یک مورد است. آیتم مرتب می شود
439
00:16:11,519 –> 00:16:13,199
و
440
00:16:13,199 –> 00:16:15,440
الگوریتم مرتب سازی ادغام با هم مقایسه می شود
441
00:16:15,440 –> 00:16:16,800
یا می توانید بگویید کسی قرار است
442
00:16:16,800 –> 00:16:19,600
خطوط مجاور را با هم مقایسه کند و
443
00:16:19,600 –> 00:16:22,160
آنها را به ترتیب دلخواه مرتب کند و این
444
00:16:22,160 –> 00:16:24,320
فرآیند به
445
00:16:24,320 –> 00:16:26,079
عنوان مرتب سازی قالب نامیده می شود
446
00:16:26,079 –> 00:16:28,720
و این فرآیند دوباره به
447
00:16:28,720 –> 00:16:30,320
صورت بازگشتی انجام می شود
448
00:16:30,320 –> 00:16:32,399
تا زمانی که به نقطه ای برسد که
449
00:16:32,399 –> 00:16:33,360
فقط
450
00:16:33,360 –> 00:16:34,639
یک
451
00:16:34,639 –> 00:16:37,199
لیست مرتب شده در دسترس باشد
452
00:16:37,199 –> 00:16:39,839
و سپس باید
453
00:16:39,839 –> 00:16:41,759
از چندین
454
00:16:41,759 –> 00:16:43,199
نشانگر الگوریتم نیز مراقبت کنیم، بنابراین زمانی که با ادغام کار می کنیم
455
00:16:43,199 –> 00:16:45,440
اول از همه. اگر قرار است بله باشد، باید بررسی
456
00:16:45,440 –> 00:16:47,759
کنیم که آیا لیست حاوی بیش از یک آیتم
457
00:16:47,759 –> 00:16:50,560
است یا خیر، سپس
458
00:16:50,560 –> 00:16:52,720
مورد را به دو نیمه تقسیم کنیم، در غیر این صورت لیست
459
00:16:52,720 –> 00:16:53,839
مرتب شده است
460
00:16:53,839 –> 00:16:56,240
و سپس اگر
461
00:16:56,240 –> 00:16:58,000
باید با لیست کار کنیم، باید
462
00:16:58,000 –> 00:17:00,480
بارها و بارها تقسیم شود تا زمانی که فقط وجود داشته باشد.
463
00:17:00,480 –> 00:17:02,959
یک عنصر واحد در هر فهرست فرعی باقی مانده است
464
00:17:02,959 –> 00:17:06,640
و سپس باید
465
00:17:06,640 –> 00:17:09,039
این فهرستهای فرعی را به صورت بازگشتی با
466
00:17:09,039 –> 00:17:11,280
مرتب کردن آنها در یک ترتیب معین ادغام
467
00:17:11,280 –> 00:17:12,640
468
00:17:12,640 –> 00:17:13,839
کنیم تا زمانی که بتوانیم
469
00:17:13,839 –> 00:17:14,799
470
00:17:14,799 –> 00:17:16,720
به ترتیب بعدی
471
00:17:16,720 –> 00:17:19,280
مرتب شویم،
472
00:17:19,280 –> 00:17:22,000
سپس مرتبسازی حبابی را داریم،
473
00:17:22,000 –> 00:17:24,079
بنابراین مرتبسازی حبابی اساساً یک مقایسه است.
474
00:17:24,079 –> 00:17:27,280
الگوریتمی که ابتدا
475
00:17:27,280 –> 00:17:29,840
عناصر مجاور را مقایسه میکند و سپس اگر به
476
00:17:29,840 –> 00:17:31,120
477
00:17:31,120 –> 00:17:33,120
ترتیب مشخصشده نباشند، آنها را مرتب میکند، این همان چیزی است که ما
478
00:17:33,120 –> 00:17:35,440
بهعنوان مرتبسازی حبابی به آن
479
00:17:35,440 –> 00:17:38,480
اشاره میکنیم و سپس درج میکنیم،
480
00:17:38,480 –> 00:17:40,640
بنابراین i اگر در اینجا در مورد مرتبسازی درج صحبت میکنید،
481
00:17:40,640 –> 00:17:43,520
مرتبسازیهای درج دوباره هستند، آنها
482
00:17:43,520 –> 00:17:45,440
به سادگی مسئول انتخاب یک
483
00:17:45,440 –> 00:17:46,480
عنصر
484
00:17:46,480 –> 00:17:49,120
از یک لیست معین در یک زمان هستند و
485
00:17:49,120 –> 00:17:51,919
قرار است آن را دقیقاً در نقطهای قرار دهند
486
00:17:51,919 –> 00:17:55,360
که قرار است قرار گیرد،
487
00:17:55,360 –> 00:17:57,120
بنابراین به سادگی اطمینان حاصل کنید که این که هیچ چیز از هیچ
488
00:17:57,120 –> 00:17:59,919
قرار نگیرد در جای خود رها می
489
00:17:59,919 –> 00:18:01,840
شود و همه چیز
490
00:18:01,840 –> 00:18:03,440
مرتب می شود
491
00:18:03,440 –> 00:18:05,520
و سپس درج داریم بنابراین در مورد درج بحث کرده ایم
492
00:18:05,520 –> 00:18:07,520
493
00:18:07,520 –> 00:18:10,640
و سپس مرتب سازی انتخابی داریم
494
00:18:10,640 –> 00:18:12,640
بنابراین اساساً از نظر مرتب سازی
495
00:18:12,640 –> 00:18:14,960
انتخابی بنابراین الگوریتم مرتب سازی انتخاب تقسیم بندی می کند
496
00:18:14,960 –> 00:18:16,480
. کل لیست داده شده
497
00:18:16,480 –> 00:18:19,360
به دو قسمت مساوی
498
00:18:19,360 –> 00:18:22,480
من می خواهم
499
00:18:22,480 –> 00:18:24,799
قبل از اینکه به طرف دیگر حرکت کنیم یک دستی کوچک در مرتب سازی درج ببینم.
500
00:18:24,799 –> 00:18:28,080
501
00:18:28,080 –> 00:18:29,200
502
00:18:29,200 –> 00:18:30,960
503
00:18:30,960 –> 00:18:33,679
قرار است
504
00:18:33,679 –> 00:18:37,280
به عنوان بخشی از عملی
505
00:18:37,360 –> 00:18:39,919
که میتوانیم مورد را باز کنیم، بهعنوان یکی از
506
00:18:39,919 –> 00:18:42,799
محبوبترین شناسهها به محیط توسعه یکپارچه اشاره دارد،
507
00:18:42,799 –> 00:18:44,400
508
00:18:44,400 –> 00:18:46,799
بنابراین میتوانیم از هر یک از شناسهها در زمانی که هستیم استفاده کنیم
509
00:18:46,799 –> 00:18:48,640
و اگر قصد دارید روی آن کار کنید. هسته
510
00:18:48,640 –> 00:18:51,280
پایتون یا میتوانیم از notepad colab استفاده
511
00:18:51,280 –> 00:18:54,840
کنیم یا میتوانیم مستقیماً از پایتون
512
00:18:54,840 –> 00:18:57,280
نیز استفاده کنیم، بنابراین اگر فقط به دنبال توسعه روی پایتون هستهای هستید،
513
00:18:57,280 –> 00:18:59,039
514
00:18:59,039 –> 00:19:01,039
بهصورت رایگان به عنوان یک ابزار مبتنی بر جامعه در دسترس
515
00:19:01,039 –> 00:19:03,440
است و اگر به دنبال ادغام
516
00:19:03,440 –> 00:19:05,039
این هستیم. با زبان های دیگر، می
517
00:19:05,039 –> 00:19:07,200
توانیم از ابزار حرفه ای
518
00:19:07,200 –> 00:19:09,360
نیز استفاده کنیم،
519
00:19:09,360 –> 00:19:11,280
بنابراین در حال حاضر می توانیم به
520
00:19:11,280 –> 00:19:12,559
521
00:19:12,559 –> 00:19:14,640
آزمایشگاه خود در اینجا بازگردیم و در اینجا یک تعریف
522
00:19:14,640 –> 00:19:15,760
کامل
523
00:19:15,760 –> 00:19:18,080
برای منبع درج تعریف کرده ایم، بنابراین در اینجا
524
00:19:18,080 –> 00:19:20,559
می توانیم با تعریف کردن، مرتب سازی درج را پیدا
525
00:19:20,559 –> 00:19:21,440
کنیم.
526
00:19:21,440 –> 00:19:23,760
پلاگین iso
527
00:19:23,760 –> 00:19:26,400
بنابراین در اینجا ما دوباره برای x در
528
00:19:26,400 –> 00:19:29,039
محدوده یک تعریف کردیم، طول a را اساساً تعریف کردیم
529
00:19:29,039 –> 00:19:30,080
530
00:19:30,080 –> 00:19:32,000
و سپس باید عنصر
531
00:19:32,000 –> 00:19:34,799
موجود در مقدار بی پایان را به عنوان یک پیدا
532
00:19:34,799 –> 00:19:37,039
میکردیم و سپس در حالی
533
00:19:37,039 –> 00:19:39,440
که از حلقه while استفاده میکردیم، تعریف کردیم.
534
00:19:39,440 –> 00:19:41,120
ما می خواهیم
535
00:19:41,120 –> 00:19:43,440
عناصر را با بعدی مقایسه کنیم
536
00:19:43,440 –> 00:19:45,280
تا اینکه آخرین آیتم ها
537
00:19:45,280 –> 00:19:48,720
در اینجا تعریف می کنیم که باید
538
00:19:48,720 –> 00:19:51,520
بزرگتر یا مساوی صفر باشد و مقدار k
539
00:19:51,520 –> 00:19:54,480
باید بزرگتر از a برای j باشد
540
00:19:54,480 –> 00:19:56,799
و سپس می توانیم comp را تعریف کنیم.
541
00:19:56,799 –> 00:19:58,960
بین هر عنصر به عنصری که
542
00:19:58,960 –> 00:20:00,799
543
00:20:00,799 –> 00:20:02,720
در سمت چپ آن وجود دارد ایجاد می شود و سپس ما می
544
00:20:02,720 –> 00:20:05,600
خواهیم بدانیم که کدام مورد
545
00:20:05,600 –> 00:20:07,840
دوباره با
546
00:20:07,840 –> 00:20:10,320
استفاده از j به اضافه یک کلید می شود و سپس
547
00:20:10,320 –> 00:20:12,480
به نتیجه نهایی می رسیم در
548
00:20:12,480 –> 00:20:16,240
اینجا با استفاده از i sort all right تعریف میکنیم،
549
00:20:16,240 –> 00:20:18,640
بنابراین اجازه دهید ببینیم این
550
00:20:18,640 –> 00:20:20,960
الگوریتم مرتبسازی انتخابی دقیقاً چگونه کار میکند تا بتوانیم
551
00:20:20,960 –> 00:20:23,600
552
00:20:23,600 –> 00:20:25,919
اکنون از نظر الگوریتم مرتبسازی انتخابی به بحث خود بازگردیم،
553
00:20:25,919 –> 00:20:29,440
بنابراین اساساً در مرتبسازی انتخاب
554
00:20:29,440 –> 00:20:33,039
، لیست دادهشده را به دو قسمت تقسیم میکنیم. نصف می شود
555
00:20:33,039 –> 00:20:35,280
بنابراین کل
556
00:20:35,280 –> 00:20:37,520
لیست را به دو نیمه مساوی تقسیم می کنیم در حالی که
557
00:20:37,520 –> 00:20:39,840
نیمه اول لیست مرتب شده و
558
00:20:39,840 –> 00:20:41,679
نیمه
559
00:20:41,679 –> 00:20:43,679
دوم لیست مرتب نشده است
560
00:20:43,679 –> 00:20:46,320
و در ابتدا لیست لحیم کاری خالی است
561
00:20:46,320 –> 00:20:48,880
و تمام عناصری که باید مرتب شوند
562
00:20:48,880 –> 00:20:51,679
وجود دارند. در کادر مرتبنشده
563
00:20:51,679 –> 00:20:54,159
و الگوریتمهای مرتبسازی انتخابی
564
00:20:54,159 –> 00:20:56,640
، همه تفاوتها را بررسی میکنند،
565
00:20:56,640 –> 00:20:58,960
بنابراین همه عناصر موجود در
566
00:20:58,960 –> 00:21:01,280
فهرست مرتبنشده مرتبسازینشده و سپس آنها میخواهند
567
00:21:01,280 –> 00:21:03,200
موردی را انتخاب کنند که قرار است درست شود.
568
00:21:03,200 –> 00:21:05,039
st و سپس
569
00:21:05,039 –> 00:21:06,799
the و سپس آن را
570
00:21:06,799 –> 00:21:09,440
در زیر در لیست مرتب شده قرار می دهند
571
00:21:09,440 –> 00:21:10,480
و اگر
572
00:21:10,480 –> 00:21:12,320
قرار است تکرار شود،
573
00:21:12,320 –> 00:21:14,640
فرآیند جستجو مکان
574
00:21:14,640 –> 00:21:16,480
عناصر بعدی در سمت راست عنصر
575
00:21:16,480 –> 00:21:17,440
576
00:21:17,440 –> 00:21:20,480
خواهد بود. بخشی از لیست مرتب شده
577
00:21:20,480 –> 00:21:22,559
مشکلی با آن ندارد، خوب
578
00:21:22,559 –> 00:21:24,960
است، برای مثال فرض کنید میخواهیم
579
00:21:24,960 –> 00:21:26,720
عناصر را برای مرتب
580
00:21:26,720 –> 00:21:28,799
کنیم یا میتوانیم بگوییم که قبلاً همه
581
00:21:28,799 –> 00:21:31,440
اعداد را به ترتیب صعودی دیدهایم، بنابراین
582
00:21:31,440 –> 00:21:33,039
میخواهیم با الگوریتم مرتبسازی انتخاب
583
00:21:33,039 –> 00:21:35,440
کار کنیم. نگاهی به
584
00:21:35,440 –> 00:21:38,159
لیست کامل و سپس به
585
00:21:38,159 –> 00:21:39,840
طور خودکار کوچکترین عنصر را انتخاب می کند
586
00:21:39,840 –> 00:21:42,080
و سپس
587
00:21:42,080 –> 00:21:44,480
عنصر را به عنوان اولین
588
00:21:44,480 –> 00:21:47,440
عنصر در لیست مرتب شده قرار می دهد و سپس
589
00:21:47,440 –> 00:21:49,440
کوچکترین عنصر بعدی را جستجو می کند
590
00:21:49,440 –> 00:21:51,679
و سپس آنها رفتن و سپس
591
00:21:51,679 –> 00:21:53,440
آن را در سمت راست
592
00:21:53,440 –> 00:21:55,520
عنصر اول قرار می دهد و به همین ترتیب به
593
00:21:55,520 –> 00:21:57,600
عنوان بخشی از
594
00:21:57,600 –> 00:22:01,600
الگوریتم انتخاب، می توانم بگویم انتخاب شروع می شود
595
00:22:01,600 –> 00:22:03,200
و وقتی شروع به کار کردیم،
596
00:22:03,200 –> 00:22:05,120
یکی یکی به این اجزا نگاه می کنیم
597
00:22:05,120 –> 00:22:07,280
و سپس ساعت ave
598
00:22:07,280 –> 00:22:10,080
الگوریتم مرتبسازی اجتماعی به ما اجازه
599
00:22:10,080 –> 00:22:12,880
میدهد عناصری را که بخشی از هر مشکلی بودهاند مرتب
600
00:22:12,880 –> 00:22:14,880
کنیم، بنابراین دوباره دنباله مبدا
601
00:22:14,880 –> 00:22:17,600
برای مرتبسازی عناصر به
602
00:22:17,600 –> 00:22:18,720
دنبال n
603
00:22:18,720 –> 00:22:20,159
اسلش
604
00:22:20,159 –> 00:22:22,799
دو و اسلش چهار است، اما در اینجا
605
00:22:22,799 –> 00:22:25,440
دنباله تعداد عناصر خواهد بود.
606
00:22:25,440 –> 00:22:28,400
به عنوان مثال در لیست مرتب نشده
607
00:22:28,400 –> 00:22:30,880
، فرض کنید اگر می خواهید
608
00:22:30,880 –> 00:22:32,480
هشت موز بخورید
609
00:22:32,480 –> 00:22:34,720
و سپس طول آن ها
610
00:22:34,720 –> 00:22:36,480
بر دو تقسیم می شود
611
00:22:36,480 –> 00:22:38,159
که هشت بر دو است و این بدان معناست که
612
00:22:38,159 –> 00:22:41,360
ما چهار عدد را به عنوان لیست خواهیم داشت و اکنون
613
00:22:41,360 –> 00:22:42,640
عنصر اول این کار
614
00:22:42,640 –> 00:22:44,720
را انجام می دهد. با یازده مقایسه شود
615
00:22:44,720 –> 00:22:46,320
و سایر عناصر دارای شاخص
616
00:22:46,320 –> 00:22:47,440
شماره چهار هستند
617
00:22:47,440 –> 00:22:49,039
و این شکاف با
618
00:22:49,039 –> 00:22:51,360
تقسیم بر عدد چهار ایجاد می شود بنابراین بار اول
619
00:22:51,360 –> 00:22:53,840
شکاف دو خواهد شد و
620
00:22:53,840 –> 00:22:55,520
عناصر دوباره بخشی از یک کار
621
00:22:55,520 –> 00:22:56,720
کاملاً
622
00:22:56,720 –> 00:22:58,320
بد
623
00:22:58,320 –> 00:23:00,000
خواهند بود سپس آنها قرار است اجرا شوند و
624
00:23:00,000 –> 00:23:02,400
در نهایت هشت به یک، بنابراین آنها فقط به این ترتیب هستند
625
00:23:02,400 –> 00:23:04,880
که تمام عناصر مجاور دیگر با
626
00:23:04,880 –> 00:23:07,280
هم مقایسه می شوند و آنها به
627
00:23:07,280 –> 00:23:09,120
628
00:23:09,120 –> 00:23:10,960
عنوان بخشی از کل
629
00:23:10,960 –> 00:23:12,880
فرآیند مرتب می شوند، همانطور که در اینجا می توانیم
630
00:23:12,880 –> 00:23:15,120
به عنوان بخشی ببینیم. از الگوریتمهای مرتبسازی که
631
00:23:15,120 –> 00:23:16,000
در
632
00:23:16,000 –> 00:23:18,080
ساختارهای داده دنبال میشوند، سپس
633
00:23:18,080 –> 00:23:20,400
الگوریتم جستجو را داریم، الگوریتم جستجو را داریم،
634
00:23:20,400 –> 00:23:23,280
بنابراین از نظر
635
00:23:23,280 –> 00:23:25,600
الگوریتمهای جستجو، الگوریتمهای جستجوی
636
00:23:25,600 –> 00:23:27,520
دیگران اساساً برای جستجو استفاده میشوند
637
00:23:27,520 –> 00:23:28,400
638
00:23:28,400 –> 00:23:30,400
یا میتوان گفت برخی از عناصر
639
00:23:30,400 –> 00:23:32,799
موجود در برخی از مجموعه دادهها را واکشی کنید
640
00:23:32,799 –> 00:23:35,120
و وجود دارد. بسیاری از انواع
641
00:23:35,120 –> 00:23:37,760
الگوریتم های جستجو مانند جستجوی خطی جستجوی دودویی
642
00:23:37,760 –> 00:23:38,640
643
00:23:38,640 –> 00:23:40,400
جستجوی نمایی و سپس ما
644
00:23:40,400 –> 00:23:43,039
جستجوی درون یابی و غیره داریم، به
645
00:23:43,039 –> 00:23:44,720
عنوان مثال اگر در مورد جستجوی خطی صحبت کنید،
646
00:23:44,720 –> 00:23:46,799
الگوریتم جستجوی
647
00:23:46,799 –> 00:23:48,799
خطی برای موفقیت یا می
648
00:23:48,799 –> 00:23:50,960
توان گفت با موفقیت یک عنصر مشخص را جستجو
649
00:23:50,960 –> 00:23:53,840
می کند. مقایسه آن با تک تک
650
00:23:53,840 –> 00:23:56,400
عناصر یک آرایه داده شده
651
00:23:56,400 –> 00:23:58,559
و یکی از ساده ترین
652
00:23:58,559 –> 00:24:00,480
الگوریتم های جستجو است، اما درک آن بسیار مهم است
653
00:24:00,480 –> 00:24:01,840
654
00:24:01,840 –> 00:24:03,360
که الگوریتم های مرتب سازی خوب دیگری
655
00:24:03,360 –> 00:24:05,279
نیز در دسترس هستند
656
00:24:05,279 –> 00:24:07,440
و سپس
657
00:24:07,440 –> 00:24:09,440
ما جستجوی باینری را داریم، بنابراین از نظر
658
00:24:09,440 –> 00:24:12,080
جستجوی دودویی اساسا ما از آن برای جستجوی
659
00:24:12,080 –> 00:24:14,480
برخی از عناصر داده شده به روش مرتب شده
660
00:24:14,480 –> 00:24:16,480
با استفاده از
661
00:24:16,480 –> 00:24:18,400
dc یا می توانیم s استفاده می کنیم ay در الگوریتم حلزونی کاهش مییابد،
662
00:24:18,400 –> 00:24:21,840
بنابراین در اینجا کلید
663
00:24:21,840 –> 00:24:24,559
توسط فایل مورد بررسی قرار میگیرد و آن را با عنصر میانی مقایسه میکند
664
00:24:24,559 –> 00:24:26,320
و سپس
665
00:24:26,320 –> 00:24:28,720
آرایه را از آن تقسیم میکند
666
00:24:28,720 –> 00:24:31,520
تا نیمه چپ به این صورت باشد اگر عناصری
667
00:24:31,520 –> 00:24:33,440
که باید جستجو
668
00:24:33,440 –> 00:24:36,240
شوند کوچکتر و عنصر
669
00:24:36,240 –> 00:24:38,720
عنصر و دستگاه بود و دوباره
670
00:24:38,720 –> 00:24:40,880
میرود میتواند برعکس هم باشد
671
00:24:40,880 –> 00:24:43,919
و زیر آرایههای مناسب دوباره
672
00:24:43,919 –> 00:24:46,320
به نصف تقسیم میشوند و سپس پردازش آن
673
00:24:46,320 –> 00:24:47,440
674
00:24:47,440 –> 00:24:49,360
خوب تکرار میشود
675
00:24:49,360 –> 00:24:52,960
و بعد از باینری
676
00:24:52,960 –> 00:24:54,159
،
677
00:24:54,159 –> 00:24:55,760
برای آنالیز الگوریتم داریم که باید
678
00:24:55,760 –> 00:24:56,559
679
00:24:56,559 –> 00:24:58,159
جایی که میرویم انجام دهیم. برای بحث در مورد
680
00:24:58,159 –> 00:25:00,159
پاسخ های نظری در مورد
681
00:25:00,159 –> 00:25:03,039
تجزیه و تحلیل تجربی یک به یک،
682
00:25:03,039 –> 00:25:06,559
بنابراین ما می توانیم یک مثال کوچک را در اینجا ببینیم،
683
00:25:06,559 –> 00:25:08,159
بنابراین چه کاری می توانیم انجام دهیم، بیایید یک
684
00:25:08,159 –> 00:25:09,120
کار انجام
685
00:25:09,120 –> 00:25:12,720
دهیم، می توانیم یک جستجوی خطی
686
00:25:12,720 –> 00:25:15,039
تعریف کنیم، می توانیم یک جستجوی خطی تعریف کنیم
687
00:25:15,039 –> 00:25:18,240
و بیایید بگوییم اینجا شما من را پیدا کنید. آرایه
688
00:25:18,240 –> 00:25:21,279
و کلید تعریف شده
689
00:25:21,279 –> 00:25:24,400
و سپس در اینجا می توانیم برای x در
690
00:25:24,400 –> 00:25:27,840
محدوده صفر برای x در محدوده
691
00:25:27,840 –> 00:25:30,480
یا 0 تعریف کنیم و کلید را می توانیم
692
00:25:30,480 –> 00:25:31,760
n
693
00:25:31,760 –> 00:25:33,279
به عنوان بخشی از مقدار شاخص
694
00:25:33,279 –> 00:25:34,799
تعریف کنیم، بنابراین در اینجا می توانیم محدوده و محدوده را تعریف کنیم.
695
00:25:34,799 –> 00:25:37,200
696
00:25:37,200 –> 00:25:38,960
0 باشد و
697
00:25:38,960 –> 00:25:40,880
n
698
00:25:40,880 –> 00:25:43,520
اکنون در اینجا میتوانیم یک دستور if ساده تعریف کنیم
699
00:25:43,520 –> 00:25:46,320
اگر آرایه من
700
00:25:46,320 –> 00:25:48,400
در آن مقدار شاخص x خواهد بود
701
00:25:48,400 –> 00:25:50,400
اگر برابر با
702
00:25:50,400 –> 00:25:51,600
e
703
00:25:51,600 –> 00:25:53,840
باشد اگر برابر با کلید شود،
704
00:25:53,840 –> 00:25:57,679
میخواهیم
705
00:25:57,679 –> 00:25:59,760
x را برگردانیم و سپس به سادگی
706
00:25:59,760 –> 00:26:02,159
بازده منهای یک
707
00:26:02,159 –> 00:26:04,240
را تعریف می کنیم و سپس می توانیم تعریف کنیم آرایه می خریم،
708
00:26:04,240 –> 00:26:06,159
برای مثال بیایید بگوییم در اینجا
709
00:26:06,159 –> 00:26:07,840
آرایه من را آرایه من
710
00:26:07,840 –> 00:26:10,159
تعریف می کنیم و می توانیم هر عددی را تعریف کنیم برای
711
00:26:10,159 –> 00:26:11,840
مثال در اینجا
712
00:26:11,840 –> 00:26:14,799
12 را تعریف می کنیم و دو را تعریف می کنیم
713
00:26:14,799 –> 00:26:19,120
29 و 16 را تعریف می کنیم. می تواند آرایه من باشد.
714
00:26:19,120 –> 00:26:21,440
و سپس میتوانیم کلید را تعریف کنیم، فرض کنید
715
00:26:21,440 –> 00:26:22,840
کلید باید
716
00:26:22,840 –> 00:26:27,360
16 باشد. شما کلید b16 را به طور کلی تعریف میکنید
717
00:26:27,360 –> 00:26:30,240
و سپس میتوانیم n
718
00:26:30,240 –> 00:26:32,000
719
00:26:32,000 –> 00:26:34,480
720
00:26:34,480 –> 00:26:36,840
را تعریف کنیم.
721
00:26:36,840 –> 00:26:39,600
ما از
722
00:26:39,600 –> 00:26:41,200
723
00:26:41,200 –> 00:26:44,480
جستجوی خطی و جستجوی خطی برای
724
00:26:44,480 –> 00:26:45,600
725
00:26:45,600 –> 00:26:47,440
آرایه من n و
726
00:26:47,440 –> 00:26:48,960
مقدار کلید در اینجا استفاده می کنیم
727
00:26:48,960 –> 00:26:52,159
و سپس می خواهیم تعریف کنیم که آیا
728
00:26:52,159 –> 00:26:53,200
729
00:26:53,200 –> 00:26:54,559
مطابقت یک است
730
00:26:54,559 –> 00:26:56,559
یا می توانیم منهای یک را تعریف کنیم
731
00:26:56,559 –> 00:26:58,240
زیرا دوباره دقیقاً همان چیزی است که
732
00:26:58,240 –> 00:27:00,559
می خواهیم انجام دهیم. برای استفاده از جستجوی خطی
733
00:27:00,559 –> 00:27:03,200
و سپس در اینجا می توانیم d efine print
734
00:27:03,200 –> 00:27:05,279
حالا اگر درست باشد، اگر قرار است به
735
00:27:05,279 –> 00:27:08,240
سادگی به این معنی باشد که او
736
00:27:08,240 –> 00:27:09,440
غایب است
737
00:27:09,440 –> 00:27:10,799
یا او نیست
738
00:27:10,799 –> 00:27:12,799
فرض کنید کلید وجود ندارد،
739
00:27:12,799 –> 00:27:15,919
می توانیم تعریف کنیم که کلید وجود ندارد
740
00:27:15,919 –> 00:27:17,360
و سپس
741
00:27:17,360 –> 00:27:21,520
می توانیم تعریف کنیم که قرار است
742
00:27:21,520 –> 00:27:23,440
آن کلید
743
00:27:23,440 –> 00:27:24,960
744
00:27:24,960 –> 00:27:27,360
موجود باشد
745
00:27:27,360 –> 00:27:28,880
و سپس
746
00:27:28,880 –> 00:27:30,480
مطابقت دارد،
747
00:27:30,480 –> 00:27:32,880
بنابراین این می تواند یک برنامه جستجوی خطی ساده باشد،
748
00:27:32,880 –> 00:27:34,399
749
00:27:34,399 –> 00:27:37,520
بنابراین اکنون اگر قرار است اجرا
750
00:27:37,520 –> 00:27:38,960
شود، خروجی را می بینیم
751
00:27:38,960 –> 00:27:40,399
که به ما برگردانده می شود،
752
00:27:40,399 –> 00:27:42,159
بنابراین همانطور که می بینید اینجا به سادگی می
753
00:27:42,159 –> 00:27:44,799
گوید کلید موجود است و سپس
754
00:27:44,799 –> 00:27:46,960
به مطابق با 3.
755
00:27:46,960 –> 00:27:49,440
بنابراین کلید در مقدار پایان سوم
756
00:27:49,440 –> 00:27:51,039
به عنوان بخشی از
757
00:27:51,039 –> 00:27:53,120
آرایه من وجود دارد
758
00:27:53,120 –> 00:27:54,720
و به همین ترتیب برای جستجوی باینری دوباره
759
00:27:54,720 –> 00:27:56,320
می توانیم جستجوی باینری را نیز تعریف کنیم
760
00:27:56,320 –> 00:27:57,760
که در آن
761
00:27:57,760 –> 00:28:00,159
به سادگی می توانیم کلید را با وسط
762
00:28:00,159 –> 00:28:02,159
با عنصر میانی مقایسه کنیم و اگر
763
00:28:02,159 –> 00:28:04,080
مطابقت داشت، میتوانیم مقدار شاخص میانی را برگردانیم
764
00:28:04,080 –> 00:28:04,960
765
00:28:04,960 –> 00:28:07,120
و کلید عنصر بزرگتر
766
00:28:07,120 –> 00:28:10,000
از عنصر میانی است، سپس
767
00:28:10,000 –> 00:28:11,679
میتوانیم عنصر کلیدی را در
768
00:28:11,679 –> 00:28:13,760
سمت راست عنصر میانی به عنوان
769
00:28:13,760 –> 00:28:16,399
بخشی از جستجوی باینری جستجو
770
00:28:16,399 –> 00:28:17,760
کنیم، به عنوان مثال، فرض کنید
771
00:28:17,760 –> 00:28:19,279
ما یک کار را انجام دهید بیایید یک فایل جدید به
772
00:28:19,279 –> 00:28:21,840
طور کلی
773
00:28:21,919 –> 00:28:24,000
نسخه ی نمایشی دو ایجاد کنیم،
774
00:28:24,000 –> 00:28:26,640
بنابراین در اینجا می توانیم اینجا
775
00:28:26,640 –> 00:28:28,720
دوباره یک تحقیق bind تعریف کنیم، بنابراین در اینجا می
776
00:28:28,720 –> 00:28:30,720
توانیم یک جستجوی باینری تعریف کنیم که در آن می
777
00:28:30,720 –> 00:28:34,640
توانیم چیزی را برای لیست من و کلید
778
00:28:34,640 –> 00:28:36,960
تعریف کنیم و در اینجا می توانیم تعریف
779
00:28:36,960 –> 00:28:41,360
کنیم که فرض کنید n است. فرض کنید 0
780
00:28:41,360 –> 00:28:43,919
و سپس می توانیم r r را یک
781
00:28:43,919 –> 00:28:45,840
طول ساده
782
00:28:45,840 –> 00:28:48,000
تعریف کنیم، بنابراین در اینجا می توانیم r را که
783
00:28:48,000 –> 00:28:50,320
طول ساده خواهد بود و دوباره در اینجا
784
00:28:50,320 –> 00:28:53,440
می توانیم طول
785
00:28:53,440 –> 00:28:57,360
لیست من و طول آن را تعریف کنیم – 1
786
00:28:57,360 –> 00:28:59,919
و در اینجا می توانیم مطابقت را تعریف کنیم که در
787
00:28:59,919 –> 00:29:03,039
آن مقدار را false نگه
788
00:29:03,039 –> 00:29:05,120
داریم سپس می توانیم از یک حلقه while استفاده کنیم در
789
00:29:05,120 –> 00:29:06,159
حالی که
790
00:29:06,159 –> 00:29:07,279
i
791
00:29:07,279 –> 00:29:08,480
کمتر
792
00:29:08,480 –> 00:29:10,880
یا مساوی با همه است می تواند صفحه من را ببیند و
793
00:29:10,880 –> 00:29:14,159
او نیز k را کاملاً بارگذاری می
794
00:29:17,120 –> 00:29:18,720
کند متشکرم خیلی برای
795
00:29:18,720 –> 00:29:20,640
تایید همه،
796
00:29:20,640 –> 00:29:23,039
بنابراین نام من Neeraj Keria است و من
797
00:29:23,039 –> 00:29:24,960
بیش از 13 سال است که در صنعت شهر
798
00:29:24,960 –> 00:29:27,279
799
00:29:27,279 –> 00:29:29,279
کار می کنم، بنابراین دستور جلسه امروز اول
800
00:29:29,279 –> 00:29:31,520
از همه در مورد
801
00:29:31,520 –> 00:29:33,440
ساختارهای داده در پایتون
802
00:29:33,440 –> 00:29:35,039
و دوباره در پایتون بحث خواهیم کرد. ساختار داده
803
00:29:35,039 –> 00:29:36,960
نحوه کار با داده های داخلی است
804
00:29:36,960 –> 00:29:39,520
ساختارهای داده و اینکه چگونه میتوانیم با
805
00:29:39,520 –> 00:29:41,200
ساختارهای دادهای تعریفشده توسط کاربر کار کنیم
806
00:29:41,200 –> 00:29:43,120
و سپس در مورد
807
00:29:43,120 –> 00:29:46,480
الگوریتمهای پایتون بحث میکنیم که چگونه
808
00:29:46,480 –> 00:29:48,799
الگوریتمهایی دقیقاً عناصر یک
809
00:29:48,799 –> 00:29:51,919
الگوریتم الگوریتم خوب، پیمایش درخت را طبقهبندی میکنند
810
00:29:51,919 –> 00:29:55,200
یا الگوریتمهایی که مرتبسازی همه
811
00:29:55,200 –> 00:29:57,440
الگوریتمها و الگوریتمهای جستجو را طبقهبندی میکنند.
812
00:29:57,440 –> 00:29:59,279
سپس میخواهیم آنالیز الگوریتم را به درستی انجام دهیم
813
00:29:59,279 –> 00:30:01,120
814
00:30:01,120 –> 00:30:02,559
815
00:30:02,559 –> 00:30:04,799
تا دانش ساختارهای داده و
816
00:30:04,799 –> 00:30:07,520
الگوریتمها پایهای برای شناسایی
817
00:30:07,520 –> 00:30:09,679
برنامهنویسان باشد
818
00:30:09,679 –> 00:30:12,080
که دلیل دیگری برای
819
00:30:12,080 –> 00:30:15,039
دانستن پایتون بهعنوان یک زبان میدهد و در حالی که
820
00:30:15,039 –> 00:30:17,679
ساختارهای داده به شرکتها کمک
821
00:30:17,679 –> 00:30:20,000
میکند تا مطمئن شوند که قادر هستند. برای
822
00:30:20,000 –> 00:30:22,399
سازماندهی بهتر الگوریتمهای داده به
823
00:30:22,399 –> 00:30:24,640
یافتن راهحلهایی برای
824
00:30:24,640 –> 00:30:26,960
مشکلات تحلیل دادهها کمک میکند،
825
00:30:26,960 –> 00:30:28,880
بنابراین اگر در مورد ساختارهای داده
826
00:30:28,880 –> 00:30:31,039
در پایتون صحبت کنیم، اول از همه آنها
827
00:30:31,039 –> 00:30:32,960
چندین نوع داده هستند، ما انواع دادههای داخلی را داریم
828
00:30:32,960 –> 00:30:35,440
و سپس
829
00:30:35,440 –> 00:30:38,159
کاربر را داریم. انواع داده های تعریف شده اکنون از نظر
830
00:30:38,159 –> 00:30:40,880
انواع داده های داخلی،
831
00:30:40,880 –> 00:30:44,320
فرهنگ لغت ها و مجموعه های تاپل لیست داریم،
832
00:30:44,320 –> 00:30:46,960
بنابراین لیست ها برای ذخیره سازی استفاده می شوند.
833
00:30:46,960 –> 00:30:49,200
عناصر فهرستی که قابل تغییر هستند
834
00:30:49,200 –> 00:30:51,679
و می توانند شامل عبارت های تکراری باشند، بنابراین در یک
835
00:30:51,679 –> 00:30:53,200
لیست داده شده می توانیم چندین
836
00:30:53,200 –> 00:30:56,159
مورد تکراری داشته باشیم و به علاوه می توانیم
837
00:30:56,159 –> 00:30:59,679
موارد فهرست را هر زمان که بخواهیم به روز
838
00:30:59,679 –> 00:31:01,840
کنیم، سپس فرهنگ لغت داریم، بنابراین فرهنگ
839
00:31:01,840 –> 00:31:03,120
لغت مانند
840
00:31:03,120 –> 00:31:05,200
جفت های ارزش کلیدی ما است که قابل تغییر هستند. این
841
00:31:05,200 –> 00:31:06,960
بدان معناست که ما میتوانیم آنها را در هر
842
00:31:06,960 –> 00:31:07,760
زمانی تغییر
843
00:31:07,760 –> 00:31:10,799
دهیم، سپس تاپلها را داریم، بنابراین تاپلها
844
00:31:10,799 –> 00:31:12,240
غیر