در این مطلب، ویدئو ساختار داده ها و الگوریتم ها در پایتون | ساختارهای داده در پایتون | ادورکا | Python Rewind با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:35:16
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:11,120 –> 00:00:13,440
بنابراین صبح بخیر عصر بخیر و
2
00:00:13,440 –> 00:00:15,440
عصر بخیر بچه ها بر اساس منطقه زمانی، بنابراین
3
00:00:15,440 –> 00:00:17,119
همه شما از آنجا می آیید،
4
00:00:17,119 –> 00:00:19,119
بنابراین بچه ها قبل از شروع جلسه،
5
00:00:19,119 –> 00:00:21,039
می توانید لطفاً
6
00:00:21,039 –> 00:00:23,039
اگر همه می توانید صفحه نمایش من را ببینید
7
00:00:23,039 –> 00:00:26,720
و در حال بارگذاری بازی به عنوان صدای من را بشنوید، یک تأیید سریع به من بدهید
8
00:00:28,840 –> 00:00:31,519
بسیار عالی ممنون از
9
00:00:31,519 –> 00:00:33,440
تایید همه شما،
10
00:00:33,440 –> 00:00:35,440
بنابراین نام من niraj Keriya است و من بیش از 13 سال
11
00:00:35,440 –> 00:00:37,600
است که در صنعت شهر کار می
12
00:00:37,600 –> 00:00:40,000
کنم،
13
00:00:40,000 –> 00:00:42,000
بنابراین دستور جلسه امروز اول
14
00:00:42,000 –> 00:00:44,320
از همه ما در مورد
15
00:00:44,320 –> 00:00:46,239
ساختارهای داده در پایتون بحث خواهیم کرد.
16
00:00:46,239 –> 00:00:47,760
و دوباره در ساختار داده این است که چگونه
17
00:00:47,760 –> 00:00:49,680
می توانیم با ساختارهای داده داخلی کار
18
00:00:49,680 –> 00:00:52,239
کنیم و چگونه می توانیم با
19
00:00:52,239 –> 00:00:54,000
ساختارهای داده تعریف شده توسط کاربر کار کنیم
20
00:00:54,000 –> 00:00:55,920
و سپس در مورد
21
00:00:55,920 –> 00:00:58,480
الگوریتم های پایتون بحث می کنیم
22
00:00:58,480 –> 00:01:00,960
که دقیقاً چه الگوریتم هایی
23
00:01:00,960 –> 00:01:04,000
عناصر یک الگوریتم الگوریتم خوب هستند. الگوریتمهای
24
00:01:04,000 –> 00:01:06,080
پیمایش درخت را طبقهبندی میکند
25
00:01:06,080 –> 00:01:08,640
و مرتبسازی همه الگوریتمها
26
00:01:08,640 –> 00:01:10,799
و الگوریتمهای جستجو را انجام میدهد و سپس میخواهیم
27
00:01:10,799 –> 00:01:13,840
آنالیز الگوریتم را به خوبی انجام دهیم،
28
00:01:13,840 –> 00:01:15,280
29
00:01:15,280 –> 00:01:17,600
بنابراین دانش ساختار دادهها
30
00:01:17,600 –> 00:01:20,320
و الگوریتمها پایهای را برای شناسایی
31
00:01:20,320 –> 00:01:22,400
برنامهنویسان تشکیل میدهند
32
00:01:22,400 –> 00:01:24,880
که دلیل دیگری برای
33
00:01:24,880 –> 00:01:27,759
دانستن پایتون بهعنوان یک زبان ارائه میدهند و در حالی که
34
00:01:27,759 –> 00:01:30,479
ساختارهای داده به شرکتها کمک
35
00:01:30,479 –> 00:01:32,799
میکنند تا اطمینان حاصل کنند که میتوانند
36
00:01:32,799 –> 00:01:35,200
الگوریتمهای داده را بهتر سازماندهی کنند، به
37
00:01:35,200 –> 00:01:37,360
یافتن راهحلهایی برای
38
00:01:37,360 –> 00:01:39,680
مشکلات تجزیه و تحلیل دادهها کمک میکند.
39
00:01:39,680 –> 00:01:41,680
در مورد ساختارهای داده
40
00:01:41,680 –> 00:01:43,759
در پایتون صحبت کنید، سپس آنها ابتدا
41
00:01:43,759 –> 00:01:45,759
انواع مختلفی از داده ها هستند، ما انواع داده های داخلی را داریم
42
00:01:45,759 –> 00:01:48,159
و سپس
43
00:01:48,159 –> 00:01:50,880
انواع داده های تعریف شده توسط کاربر را داریم اکنون از نظر
44
00:01:50,880 –> 00:01:53,600
انواع داده های داخلی،
45
00:01:53,600 –> 00:01:57,040
دیکشنری های تاپل لیست داریم و مجموعهها
46
00:01:57,040 –> 00:01:59,759
بنابراین فهرستها برای ذخیره
47
00:01:59,759 –> 00:02:01,920
عناصر فهرستی استفاده میشوند که قابل تغییر هستند
48
00:02:01,920 –> 00:02:04,479
و میتوانند شامل عبارتهای تکراری باشند، بنابراین در یک
49
00:02:04,479 –> 00:02:06,000
لیست دادهشده میتوانیم چندین
50
00:02:06,000 –> 00:02:08,878
مورد تکراری داشته باشیم و به علاوه میتوانیم
51
00:02:08,878 –> 00:02:10,720
موارد فهرست را
52
00:02:10,720 –> 00:02:13,120
هر زمان که بخواهیم بهروزرسانی کنیم، سپس
53
00:02:13,120 –> 00:02:15,920
فرهنگهای لغتنامههایی داریم که دیکشنریها شبیه به آن هستند.
54
00:02:15,920 –> 00:02:17,920
جفتهای ارزش کلیدی که قابل تغییر هستند،
55
00:02:17,920 –> 00:02:19,680
یعنی میتوانیم آنها را در هر نقطه از
56
00:02:19,680 –> 00:02:23,520
زمان تغییر دهیم، سپس تاپلهایی داریم، بنابراین تاپلها
57
00:02:23,520 –> 00:02:24,959
غیرقابل تغییر هستند، یعنی ما در نظر
58
00:02:24,959 –> 00:02:27,599
گرفتهایم. قرمز بهعنوان غیرقابل
59
00:02:27,599 –> 00:02:29,920
تغییر، وقتی آن را اعلام کردیم نمیتوان آنها را تغییر داد
60
00:02:29,920 –> 00:02:31,760
و حتی نمیتوانند
61
00:02:31,760 –> 00:02:34,720
کپیهای تکراری داشته باشند و سپس مجموعههایی داریم،
62
00:02:34,720 –> 00:02:37,680
بنابراین مجموعهها مانند عناصر پیوسته هستند مانند
63
00:02:37,680 –> 00:02:39,519
عناصر منحصربهفرد نامرتب هستند
64
00:02:39,519 –> 00:02:41,280
که تغییر ناپذیر هستند، یعنی
65
00:02:41,280 –> 00:02:43,200
در اینجا باید همه عناصر مورد
66
00:02:43,200 –> 00:02:44,640
نیاز باشد. برای منحصربهفرد بودن، نمیتوان آنها را
67
00:02:44,640 –> 00:02:47,200
تکرار کرد و میتوان آنها را در یک
68
00:02:47,200 –> 00:02:48,959
زمان بعد تغییر
69
00:02:48,959 –> 00:02:51,360
داد و سپس اگر در مورد
70
00:02:51,360 –> 00:02:53,519
ساختار دادههای تعریفشده توسط کاربر صحبت کنیم،
71
00:02:53,519 –> 00:02:56,000
72
00:02:56,000 –> 00:02:59,599
نمودار فهرست پیوندی درخت صف پشته و نقشه هش داریم، بنابراین
73
00:02:59,599 –> 00:03:00,959
برای شروع
74
00:03:00,959 –> 00:03:04,400
باید پشته پس پشته ها مانند
75
00:03:04,400 –> 00:03:07,920
ساختار داده خطی آخرین در اولین خروجی هستند،
76
00:03:07,920 –> 00:03:10,080
بنابراین اساساً اگر عناصری که
77
00:03:10,080 –> 00:03:11,840
به آخرین به روز رسانی شده اند به
78
00:03:11,840 –> 00:03:14,560
عنوان معماری لایفو اول به عنوان آخرین در
79
00:03:14,560 –> 00:03:16,720
اولین خروجی خارج شوند،
80
00:03:16,720 –> 00:03:18,640
81
00:03:18,640 –> 00:03:20,800
زمانی که ما صف می گیریم. صفها در اینجا وجود دارد، بنابراین صفها
82
00:03:20,800 –> 00:03:22,319
مانند
83
00:03:22,319 –> 00:03:24,159
اول خطی در خانه اول هستند با عنصر داده
84
00:03:24,159 –> 00:03:26,400
که
85
00:03:26,400 –> 00:03:28,959
ابتدا معرفی شد و با اجرای اکسل دوباره برای اولین بار از آن خارج میشود
86
00:03:28,959 –> 00:03:30,560
و به این
87
00:03:30,560 –> 00:03:32,640
ترتیب کار میکند. قسمت fifa ابتدا در ابتدا به
88
00:03:32,640 –> 00:03:33,519
بیرون می آید
89
00:03:33,519 –> 00:03:36,159
سپس درختان را داریم، بنابراین درختان مانند
90
00:03:36,159 –> 00:03:38,720
ساختار داده غیرخطی هستند که دارای ریشه
91
00:03:38,720 –> 00:03:40,319
و نودیفیکیشن هستند،
92
00:03:40,319 –> 00:03:42,159
سپس ما لیست پیوند داده ایم،
93
00:03:42,159 –> 00:03:44,319
بنابراین ناب بودن به عبارت ساده عناصر
94
00:03:44,319 –> 00:03:46,560
ساختارهای داده ای هستند که با اشاره گرها مرتبط هستند،
95
00:03:46,560 –> 00:03:48,080
96
00:03:48,080 –> 00:03:50,720
سپس ما داریم گراف بنابراین گراف ها شامل
97
00:03:50,720 –> 00:03:53,599
مجموعه ای از نقاط یا گره ها به همراه
98
00:03:53,599 –> 00:03:54,640
یال ها هستند
99
00:03:54,640 –> 00:03:57,680
و سپس نقشه های هش داریم بنابراین
100
00:03:57,680 –> 00:03:59,680
101
00:03:59,680 –> 00:04:01,760
اگر سناریوی پایتون را درست در نظر بگیرید، اساساً آنها مانند دیکشنری ها هستند،
102
00:04:01,760 –> 00:04:03,760
103
00:04:03,760 –> 00:04:05,200
بنابراین
104
00:04:05,200 –> 00:04:08,319
اکنون مجبور شدیم در مورد مفهوم داخلی بحث کنیم
105
00:04:08,319 –> 00:04:10,400
. ساختار داده ها
106
00:04:10,400 –> 00:04:12,480
چگونه پیکربندی می شوند،
107
00:04:12,480 –> 00:04:14,720
بنابراین در اینجا ما دیکشنری داریم، مجموعه
108
00:04:14,720 –> 00:04:17,120
هایی داریم که چند تایی داریم و سپس لیستی
109
00:04:17,120 –> 00:04:19,519
داریم، بنابراین دوباره این لیست را مورد بحث قرار دادیم.
110
00:04:19,519 –> 00:04:21,519
111
00:04:21,519 –> 00:04:23,759
112
00:04:23,759 –> 00:04:26,479
113
00:04:26,479 –> 00:04:29,440
جفت مقادیر کلیدی و آنها نیز قابل تغییر هستند،
114
00:04:29,440 –> 00:04:31,680
یعنی میتوانیم آنها را تغییر دهیم و بهروزرسانی کنیم
115
00:04:31,680 –> 00:04:33,919
تاپلها مانند این هستند، اما دوباره
116
00:04:33,919 –> 00:04:35,759
قابل تغییر نیستند، یعنی نمیتوانیم
117
00:04:35,759 –> 00:04:36,960
آن را تغییر دهیم
118
00:04:36,960 –> 00:04:39,680
و سپس باید آنها را تغییر دهیم. مجموعههای e و آنها
119
00:04:39,680 –> 00:04:42,080
مجموعهای نامرتب از عناصر منحصربهفرد
120
00:04:42,080 –> 00:04:43,440
هستند و قابل تغییر هستند، به
121
00:04:43,440 –> 00:04:46,720
این معنی که میتوانیم آنها را تغییر
122
00:04:46,720 –> 00:04:49,280
دهیم، سپس ساختار دادهای تعریفشده توسط کاربر
123
00:04:49,280 –> 00:04:51,199
داریم، ساختارهای دادهای تعریفشده توسط کاربر
124
00:04:51,199 –> 00:04:53,600
داریم، مانند
125
00:04:53,600 –> 00:04:56,720
فهرستهای پیوندی، نمودارها نقشههای هش درختان، صفها و
126
00:04:56,720 –> 00:04:57,680
پشتهای
127
00:04:57,680 –> 00:04:59,680
که در مورد آن بحث میکنیم. این مؤلفهها
128
00:04:59,680 –> 00:05:01,440
با جزئیات،
129
00:05:01,440 –> 00:05:04,639
بنابراین اکنون اجازه دهید در مورد الگوریتمها در پایتون بحث
130
00:05:04,639 –> 00:05:06,240
131
00:05:06,240 –> 00:05:08,479
کنیم، بنابراین الگوریتمها
132
00:05:08,479 –> 00:05:10,880
اساساً یک قانون یا مجموعهای از
133
00:05:10,880 –> 00:05:13,120
دستورالعملها هستند که
134
00:05:13,120 –> 00:05:15,360
برای تکمیل یک کار داده شده باید دنبال شوند، به عنوان مثال
135
00:05:15,360 –> 00:05:17,120
اگر چندین راه برای تکمیل
136
00:05:17,120 –> 00:05:19,759
یک کار وجود دارد، پس باید
137
00:05:19,759 –> 00:05:22,000
بهینه ترین مسیر باشد، در مقابل اگر یک
138
00:05:22,000 –> 00:05:24,560
شرط باشد، آن شرط چگونه
139
00:05:24,560 –> 00:05:25,360
140
00:05:25,360 –> 00:05:27,759
باید دوباره اعمال شود، همه این موارد
141
00:05:27,759 –> 00:05:29,919
به خوبی به عنوان بخشی از الگوریتم تعریف شده اند،
142
00:05:29,919 –> 00:05:31,680
143
00:05:31,680 –> 00:05:33,680
بنابراین برای یافتن کد شبه
144
00:05:33,680 –> 00:05:35,840
برای هر مسئله ای استفاده می شوند، به عنوان مثال
145
00:05:35,840 –> 00:05:37,759
اگر ما در حال نوشتن یک مسئله هستیم، برای
146
00:05:37,759 –> 00:05:39,840
مثال همان مفهومی که ممکن
147
00:05:39,840 –> 00:05:41,600
است در دوران مدرسه، زمانی که
148
00:05:41,600 –> 00:05:43,440
در مورد فلوچارت یاد میگرفتیم، یاد گرفته باشید.
149
00:05:43,440 –> 00:05:46,000
همچنین اگر در مورد ایجاد
150
00:05:46,000 –> 00:05:47,759
فلوچارت برای مثال تهیه چای صحبت
151
00:05:47,759 –> 00:05:49,840
می کنیم، باید آب را
152
00:05:49,840 –> 00:05:51,919
بجوشانیم اگر آب شروع به جوشیدن کند،
153
00:05:51,919 –> 00:05:53,680
باید برگ های چای را اضافه کنیم، اگر
154
00:05:53,680 –> 00:05:55,600
اینطور نیست، باید به جوشیدن ادامه دهیم.
155
00:05:55,600 –> 00:05:58,639
چند ثانیه
156
00:05:58,639 –> 00:06:00,800
پس منطقی که
157
00:06:00,800 –> 00:06:03,199
باید در چه مقطع زمانی بر اساس
158
00:06:03,199 –> 00:06:05,840
انتخاب های داده شده اعمال شود، پس این همان چیزی است که ما
159
00:06:05,840 –> 00:06:08,560
در اینجا به عنوان الگوریتم یاد می کنیم که
160
00:06:08,560 –> 00:06:11,440
به عنوان الگوریتم معرفی می شود
161
00:06:11,440 –> 00:06:13,280
و به کدام قسمت از آن اشاره می کنیم
162
00:06:13,280 –> 00:06:14,639
و
163
00:06:14,639 –> 00:06:16,720
اگر در مورد آن صحبت می کنیم
164
00:06:16,720 –> 00:06:18,720
ساختار الگوریتم باید
165
00:06:18,720 –> 00:06:21,600
کارآمدترین منطق باشد و
166
00:06:21,600 –> 00:06:23,360
اساساً کد شبه مشکلات را می دهند و
167
00:06:23,360 –> 00:06:25,120
سپس می توانند
168
00:06:25,120 –> 00:06:28,080
در چندین زبان پیاده سازی شوند زیرا آنها
169
00:06:28,080 –> 00:06:30,560
مختص زبان نیستند
170
00:06:30,560 –> 00:06:32,960
بنابراین در اینجا باید
171
00:06:32,960 –> 00:06:35,120
ابتدا مشکل را بفهمیم که دقیقاً
172
00:06:35,120 –> 00:06:37,520
مشکل ما چیست. الگوریتمها معمولاً
173
00:06:37,520 –> 00:06:40,080
به صورت ترکیبی از
174
00:06:40,080 –> 00:06:43,440
زبان قابل فهم توسط کاربر نوشته میشوند و برخی از
175
00:06:43,440 –> 00:06:45,440
زبانهای برنامهنویسی رایج اکنون
176
00:06:45,440 –> 00:06:48,319
معمولاً به صورت مرحلهای نوشته میشوند،
177
00:06:48,319 –> 00:06:51,280
اما همیشه انجام این کار ضروری نیست.
178
00:06:51,280 –> 00:06:53,520
هیچ قانون مشخصی برای فرمولبندی
179
00:06:53,520 –> 00:06:55,599
الگوریتمها وجود ندارد، اما باید
180
00:06:55,599 –> 00:06:57,680
نکات زیر را در ذهن داشته باشیم، همانطور که میتوانیم
181
00:06:57,680 –> 00:06:59,759
روی صفحه ببینیم، بنابراین ابتدا
182
00:06:59,759 –> 00:07:02,080
باید بفهمیم که
183
00:07:02,080 –> 00:07:03,360
دقیقاً مشکل چیست
184
00:07:03,360 –> 00:07:05,120
و سپس باید مشخص کنیم
185
00:07:05,120 –> 00:07:07,280
آیا ما نیاز داریم که دقیقاً از کجا باید
186
00:07:07,280 –> 00:07:08,240
شروع کنیم
187
00:07:08,240 –> 00:07:10,160
و سپس باید به این
188
00:07:10,160 –> 00:07:11,280
فکر
189
00:07:11,280 –> 00:07:13,360
کنیم که کجا باید متوقف شویم زیرا
190
00:07:13,360 –> 00:07:15,759
شروع و توقف هر دو مورد نیاز است
191
00:07:15,759 –> 00:07:18,560
و سپس باید مراحلی را
192
00:07:18,560 –> 00:07:20,720
که در آینده نزدیک به عنوان بخشی انجام می شود تدوین کنیم.
193
00:07:20,720 –> 00:07:22,960
از پاسخ
194
00:07:22,960 –> 00:07:24,560
و سپس ما باید
195
00:07:24,560 –> 00:07:26,880
مراحل خود را نیز مرور کنیم، به عنوان
196
00:07:26,880 –> 00:07:28,880
مثال فرض کنید ما یک الگوریتم پاپ و ساده فرمولنویس داشتیم
197
00:07:28,880 –> 00:07:31,599
تا بررسی
198
00:07:31,599 –> 00:07:33,919
کنیم که آیا دانشآموزی امتحان را پس داده است یا خیر،
199
00:07:33,919 –> 00:07:36,240
بنابراین در
200
00:07:36,240 –> 00:07:38,080
اینجا میتوانیم الگوریتم چند مرحلهای ایجاد کنیم تا از اینجا شروع کنیم.
201
00:07:38,080 –> 00:07:40,160
میتوانیم دو متغیر را اعلام کنیم و سپس
202
00:07:40,160 –> 00:07:43,039
میتوانیم نمرات را ذخیره کنیم و با x به دست آوریم
203
00:07:43,039 –> 00:07:44,479
و سپس میتوانیم حداقل
204
00:07:44,479 –> 00:07:46,160
نمره قبولی را در y ذخیره کنیم
205
00:07:46,160 –> 00:07:48,720
و سپس میتوانیم بررسی کنیم که آیا x بزرگتر از y است یا خیر،
206
00:07:48,720 –> 00:07:49,680
207
00:07:49,680 –> 00:07:52,000
دانشآموز از فاصله دیگری عبور کرده است.
208
00:07:52,000 –> 00:07:54,400
ributor به سادگی شکست خورد و اکنون باید
209
00:07:54,400 –> 00:07:55,919
210
00:07:55,919 –> 00:07:57,599
اجرا را نیز متوقف کنیم،
211
00:07:57,599 –> 00:07:59,680
بنابراین اگر بخواهید میتوانیم این
212
00:07:59,680 –> 00:08:01,840
مثال را نیز دستکاری کنیم، به عنوان مثال، فرض کنید
213
00:08:01,840 –> 00:08:04,160
میخواهیم مقادیر را به متغیرهای مرحله دوم اختصاص دهیم، به
214
00:08:04,160 –> 00:08:06,080
عنوان مثال، فرض کنید
215
00:08:06,080 –> 00:08:08,240
در اینجا باید چندین متغیر را پیدا کنیم.
216
00:08:08,240 –> 00:08:10,240
برای تجزیه و برای شکست، بنابراین شما می توانید
217
00:08:10,240 –> 00:08:12,639
چندین متغیر تعریف کنید و سپس ما
218
00:08:12,639 –> 00:08:14,879
نیز می توانیم منطق خود را اعمال کنیم،
219
00:08:14,879 –> 00:08:17,440
220
00:08:17,440 –> 00:08:20,720
بسته به نیاز می توانیم درصد و غیره را پیدا کنیم،
221
00:08:20,720 –> 00:08:23,440
بنابراین اگر در مورد الگوریتم های خوب صحبت کنیم،
222
00:08:23,440 –> 00:08:25,039
بنابراین اگر در مورد عناصر یک کالا صحبت کنیم.
223
00:08:25,039 –> 00:08:27,520
پس از آن الگوریتم چندگانه وجود دارد
224
00:08:27,520 –> 00:08:29,280
اول از همه
225
00:08:29,280 –> 00:08:32,159
مراحل باید متناهی باشد واضح و
226
00:08:32,159 –> 00:08:33,760
قابل درک باشد، به این معنی که
227
00:08:33,760 –> 00:08:35,839
نباید هیچ نوع ناامیدی وجود داشته باشد به علاوه
228
00:08:35,839 –> 00:08:38,159
نباید هیچ نوع سردرگمی وجود داشته باشد
229
00:08:38,159 –> 00:08:40,479
اما آنچه باید انجام شود و همچنین
230
00:08:40,479 –> 00:08:43,039
به چه روشی بنابراین کل
231
00:08:43,039 –> 00:08:44,800
ساختار
232
00:08:44,800 –> 00:08:46,000
233
00:08:46,000 –> 00:08:47,120
234
00:08:47,120 –> 00:08:49,760
الگوریتم باید واضح
235
00:08:49,760 –> 00:08:51,200
236
00:08:51,200 –> 00:08:53,440
237
00:08:53,440 –> 00:08:55,279
باشد. باید توصیف واضح و
238
00:08:55,279 –> 00:08:58,480
دقیقی از ورودی و خروجی ها
239
00:08:58,480 –> 00:09:00,560
وجود داشته باشد، بنابراین ورودی کاربران نهایی چه چیزی باید باشد
240
00:09:00,560 –> 00:09:02,959
و ما چه خروجی
241
00:09:02,959 –> 00:09:04,320
داریم که انتظار داریم
242
00:09:04,320 –> 00:09:06,320
و هر مرحله باید یک خروجی تعریف شده داشته
243
00:09:06,320 –> 00:09:08,720
باشد که فقط به ورودی بستگی دارد
244
00:09:08,720 –> 00:09:13,360
و در آن مرحله یا مراحل قبل
245
00:09:13,360 –> 00:09:14,959
و سپس الگوریتم باید به
246
00:09:14,959 –> 00:09:17,120
اندازه کافی منعطف باشد تا بتوان
247
00:09:17,120 –> 00:09:18,959
آن را قالب بندی کرد تا بتواند تعدادی
248
00:09:18,959 –> 00:09:20,880
راه حل را ارائه دهد و
249
00:09:20,880 –> 00:09:22,320
این مراحل باید از اصول کلی برنامه نویسی ساخته شده باشد
250
00:09:22,320 –> 00:09:24,640
و
251
00:09:24,640 –> 00:09:27,920
نباید هیچ نوع زبانی خاص باشد،
252
00:09:27,920 –> 00:09:29,680
بنابراین اگر در مورد کلاس های الگوریتم صحبت کنیم.
253
00:09:29,680 –> 00:09:32,640
سپس اول از همه ما تقسیم
254
00:09:32,640 –> 00:09:35,040
و غلبه می کنیم، سپس
255
00:09:35,040 –> 00:09:36,480
برنامه نویسی پویا
256
00:09:36,480 –> 00:09:39,200
داریم، سپس الگوریتم های حریص داریم، بنابراین
257
00:09:39,200 –> 00:09:40,959
همه اینها انواع مختلفی از
258
00:09:40,959 –> 00:09:43,519
کلاس های الگوریتم هستند، بنابراین اول از همه تقسیم
259
00:09:43,519 –> 00:09:45,600
و پیروز، بنابراین تقسیم
260
00:09:45,600 –> 00:09:47,440
در تقسیم و غلبه، به سادگی
261
00:09:47,440 –> 00:09:49,760
مسئله را به عبارات فرعی تقسیم می کنیم.
262
00:09:49,760 –> 00:09:51,839
به عنوان مثال ما یک مشکل بزرگ داریم بنابراین
263
00:09:51,839 –> 00:09:54,000
می توانیم آن را به جزء کوچکتر تقسیم کنیم
264
00:09:54,000 –> 00:09:55,920
و سپس می توانیم
265
00:09:55,920 –> 00:09:58,160
آن اجزای کوچکتر را یکی یکی حل کنیم و
266
00:09:58,160 –> 00:09:59,680
من اگر همه اجزای کوچکتر
267
00:09:59,680 –> 00:10:01,920
حل شوند، کل مشکل
268
00:10:01,920 –> 00:10:04,480
نیز درست حل می شود،
269
00:10:04,480 –> 00:10:07,120
بنابراین در اینجا می توانیم کل
270
00:10:07,120 –> 00:10:08,800
مشکل بزرگ را به عبارات کوچکتر بدهیم و سپس
271
00:10:08,800 –> 00:10:11,040
می توانیم روی آن کار کنیم
272
00:10:11,040 –> 00:10:13,200
و سپس برنامه نویسی پویا
273
00:10:13,200 –> 00:10:15,040
را داریم. در اینجا میتوانیم مسئله را
274
00:10:15,040 –> 00:10:16,160
275
00:10:16,160 –> 00:10:19,279
به بخشهای فرعی تقسیم کنیم، نتیجه زیربخشها را به خاطر بسپاریم و
276
00:10:19,279 –> 00:10:21,440
میخواهیم آن را به موارد مشابه اعمال کنیم،
277
00:10:21,440 –> 00:10:23,120
بنابراین در اینجا میتوانیم سعی کنیم یک
278
00:10:23,120 –> 00:10:24,480
الگو را نیز پیدا کنیم
279
00:10:24,480 –> 00:10:27,200
و سپس الگوریتم حریص را داریم تا
280
00:10:27,200 –> 00:10:30,480
سادهترین مراحل را فراخوانی کند.
281
00:10:30,480 –> 00:10:32,880
در حالی که یک مشکل را بدون نگرانی
282
00:10:32,880 –> 00:10:34,720
در مورد پیچیدگی مراحل بعدی حل
283
00:10:34,720 –> 00:10:37,200
می کنیم، بنابراین در اینجا هدف ما این است که
284
00:10:37,200 –> 00:10:38,800
کل
285
00:10:38,800 –> 00:10:41,360
بیانیه را آماده و اجرا کنیم و سپس می توانیم
286
00:10:41,360 –> 00:10:44,000
بیشتر روی اصلاح مسائل یا
287
00:10:44,000 –> 00:10:46,240
کار بیشتر روی هدایت
288
00:10:46,240 –> 00:10:50,079
داده های فعلی که قبلاً به آن دسترسی داریم کار کنیم.
289
00:10:50,240 –> 00:10:52,800
برای پیشبرد این ساختار داده
290
00:10:52,800 –> 00:10:54,880
و الگوریتمهای موجود در
291
00:10:54,880 –> 00:10:57,440
پایتون، اکنون در مورد
292
00:10:57,440 –> 00:11:00,320
پیمایش آزاد در الگوریتمهای جستجو و
293
00:11:00,320 –> 00:11:02,880
همچنین الگوریتمهای مرتبسازی
294
00:11:02,880 –> 00:11:05,120
مورد استفاده بحث خواهیم کرد.
295
00:11:05,760 –> 00:11:07,760
بنابراین اکنون میخواهیم در مورد
296
00:11:07,760 –> 00:11:09,920
الگوریتم سلول سفر درختی بحث کنیم،
297
00:11:09,920 –> 00:11:12,640
بنابراین اساساً درختها در پایتون
298
00:11:12,640 –> 00:11:15,040
ساختارهای دادهای غیر خطی هستند
299
00:11:15,040 –> 00:11:16,880
که دارای ریشه
300
00:11:16,880 –> 00:11:18,800
و گرهها هستند، همانطور
301
00:11:18,800 –> 00:11:20,079
که در
302
00:11:20,079 –> 00:11:22,399
اینجا دیدیم که در این نمودار فعلی به آن نگاه میکنیم،
303
00:11:22,399 –> 00:11:24,480
304
00:11:24,480 –> 00:11:25,279
305
00:11:25,279 –> 00:11:27,519
اساساً بر اساس ترتیبی که در آن وجود دارد.
306
00:11:27,519 –> 00:11:30,240
گره ها بازدید می شوند، آنها می توانند سه
307
00:11:30,240 –> 00:11:32,959
نوع پیمایش درخت
308
00:11:32,959 –> 00:11:34,560
باشند، بنابراین اساساً ما در اینجا سه نوع داریم همانطور که
309
00:11:34,560 –> 00:11:35,920
ی بینید ما سه نوع داریم که به ترتیب پی
310
00:11:35,920 –> 00:11:37,760
سفارش و سفارش پست داریم، بنابراین او
311
00:11:37,760 –> 00:11:39,040
از همه اجازه دهید یک کار را انجام دهیم، اجازه دهید با
312
00:11:39,040 –> 00:11:40,560
یمایش ترتیب شروع کن
313
00:11:40,560 –> 00:11:43,760
م. بنابراین غیرقابل شنیدن به
314
00:11:43,760 –> 00:11:46,240
پیمایش درخت اشاره دارد به این صورت که
315
00:11:46,240 –> 00:11:48,880
ابتدا از گره های سمت چپ به
316
00:11:48,880 –> 00:11:51,920
دنبال ریشه و سپس گره های راست بازدید می
317
00:11:51,920 –> 00:11:54,079
کنیم، بنابراین پیمایش خود را به شکل
318
00:11:54,079 –> 00:11:56,399
از تمام گره های ساختار سمت چپ شروع می کنیم
319
00:11:56,399 –> 00:11:58,480
و سپس به سمت گره حرکت می کنیم.
320
00:11:58,480 –> 00:12:00,399
ریشه و در نهایت به سمت e3 در
321
00:12:00,399 –> 00:12:01,600
مجموع، به
322
00:12:01,600 –> 00:12:03,360
این ترتیب است که از نظر ترتیب
323
00:12:03,360 –> 00:12:05,760
پیمایش، ابتدا از
324
00:12:05,760 –> 00:12:08,480
325
00:12:08,480 –> 00:12:10,320
گرههای چپ شروع میکنیم و سپس با
326
00:12:10,320 –> 00:12:12,399
ریشه در گرههای راست دنبال میکنیم و سپس
327
00:12:12,399 –> 00:12:14,240
g هستیم. ما میخواهیم دو راهاندازی خود را
328
00:12:14,240 –> 00:12:16,000
از گرههای زیردرخت سمت چپ برگردانیم و
329
00:12:16,000 –> 00:12:18,079
سپس به سمت جاده حرکت میکنیم و
330
00:12:18,079 –> 00:12:20,560
در نهایت زیردرخت سمت راست به طور کلی
331
00:12:20,560 –> 00:12:22,720
به این ترتیب کار میکند
332
00:12:22,720 –> 00:12:23,839
و
333
00:12:23,839 –> 00:12:26,320
اکنون اینجا میتوانیم اکنون در این اکنون ببینیم
334
00:12:26,320 –> 00:12:28,079
تا آن را به عنوان بخشی از مرجع داشته باشیم. می
335
00:12:28,079 –> 00:12:30,079
توانید از این نمودار مشاهده کنید
336
00:12:30,079 –> 00:12:31,200
که
337
00:12:31,200 –> 00:12:33,200
چهار بیشترین گره سمت چپ است، همانطور که در اینجا می توانید ببینید
338
00:12:33,200 –> 00:12:34,320
چهار چهار
339
00:12:34,320 –> 00:12:36,079
وجود ندارد، در اینجا چهار
340
00:12:36,079 –> 00:12:39,519
حالت سمت چپ است، و از
341
00:12:39,519 –> 00:12:41,279
این رو این اولین گره ای است که در
342
00:12:41,279 –> 00:12:43,680
مرحله بعدی بازدید می شود. به
343
00:12:43,680 –> 00:12:46,240
سمت ریشه ها حرکت می کنیم، یعنی
344
00:12:46,240 –> 00:12:47,680
وقتی به سمت ریشه در اینجا حرکت می کنیم، اکنون داریم،
345
00:12:47,680 –> 00:12:50,000
بنابراین ریشه no
346
00:12:50,000 –> 00:12:51,680
4 4 همان
347
00:12:51,680 –> 00:12:54,160
چیزی است که ریشه گره 4 در اینجا است بچه ها
348
00:12:54,160 –> 00:12:55,839
اجازه دهید فقط این را برجسته کنم
349
00:12:55,839 –> 00:12:58,800
که سمت چپ ترین گره در حال حاضر 2 4 است. درست است،
350
00:12:58,800 –> 00:13:01,760
بنابراین ریشه گره
351
00:13:01,760 –> 00:13:04,399
4 چیست، 2 درست است، بنابراین ابتدا به
352
00:13:04,399 –> 00:13:06,720
سمت گره ریشه حرکت می کند، بنابراین
353
00:13:06,720 –> 00:13:08,959
به سمت دو حرکت می کند و سپس به
354
00:13:08,959 –> 00:13:11,040
دنبال آن باید بررسی کنیم که
355
00:13:11,040 –> 00:13:13,279
آیا گرهی به سمت راست و درخت داریم.
356
00:13:13,279 –> 00:13:15,440
نشان می دهد که ما یک گره به عنوان داریم
357
00:13:15,440 –> 00:13:18,240
ریشه پنج پس از آن
358
00:13:18,240 –> 00:13:20,720
برای بازدید مجدد از جاده جدید پنج ارائه می شود و
359
00:13:20,720 –> 00:13:22,639
پس از انجام این کار، زیردرخت چپ
360
00:13:22,639 –> 00:13:24,880
کامل می شود و سپس
361
00:13:24,880 –> 00:13:27,920
دوباره همان قانون را از
362
00:13:27,920 –> 00:13:30,560
مسیر سمت چپ به سمت راست دنبال می کنیم تا
363
00:13:30,560 –> 00:13:32,839
کل را کامل کنیم.
364
00:13:32,839 –> 00:13:35,360
پیمایش کاملاً درست است، بنابراین
365
00:13:35,360 –> 00:13:37,519
دوباره به سمت چپ برمیگردد که
366
00:13:37,519 –> 00:13:39,279
چهارمین است و سپس به سمت راست موجود پیمایش میکند
367
00:13:39,279 –> 00:13:42,720
368
00:13:42,720 –> 00:13:44,480
تا احساس کنید که با ترتیب، بنابراین اکنون در اینجا
369
00:13:44,480 –> 00:13:46,480
میتوانیم با پیمایش پیشسفارش
370
00:13:46,480 –> 00:13:48,399
نیز کار کنیم. شرایط پیشسفارش
371
00:13:48,399 –> 00:13:50,639
ابتدا گره ریشه بازدید میشود و
372
00:13:50,639 –> 00:13:52,560
سپس زیردرخت سمت چپ و
373
00:13:52,560 –> 00:13:54,240
سپس زیردرخت سمت راست دنبال میشود،
374
00:13:54,240 –> 00:13:56,399
بنابراین در این مثال میتوانیم ببینیم اولین
375
00:13:56,399 –> 00:13:58,959
گره بازدید شده یکی است،
376
00:13:58,959 –> 00:14:00,480
بنابراین در اینجا میتوانیم اولین گرهای را
377
00:14:00,480 –> 00:14:02,800
که میخواهیم ببینیم. بازدید یک است
378
00:14:02,800 –> 00:14:05,920
و سپس گره دو
379
00:14:05,920 –> 00:14:07,920
که به سمت چپ گره
380
00:14:07,920 –> 00:14:10,800
یک است، پس سمت چپ گره دو
381
00:14:10,800 –> 00:14:12,639
است و به قسمت دوم می رود و
382
00:14:12,639 –> 00:14:14,639
383
00:14:14,639 –> 00:14:17,040
دوباره به سمت چپ حرکت می کند، چهارم می شود. و اکنون
384
00:14:17,040 –> 00:14:18,480
دیگر چیزی باقی
385
00:14:18,480 –> 00:14:20,560
نمانده است اکنون به
386
00:14:20,560 –> 00:14:22,800
بخش سمت راست تراورس می کنیم و دوباره از سمت راست
387
00:14:22,800 –> 00:14:24,880
دوباره به سمت بالا می رویم و
388
00:14:24,880 –> 00:14:27,279
سه فرض کنید
389
00:14:27,279 –> 00:14:29,040
عنصر دیگری در دسترس بود سپس
390
00:14:29,040 –> 00:14:31,040
به آن عنصر خاص
391
00:14:31,040 –> 00:14:33,199
و همچنین بخشی از پیش سفارش می رفت.
392
00:14:33,199 –> 00:14:35,040
پیمایش
393
00:14:35,040 –> 00:14:36,560
و سپس اگر در مورد سفارش پست صحبت می
394
00:14:36,560 –> 00:14:38,800
کنید، فرض کنید پیمایش ترتیب
395
00:14:38,800 –> 00:14:41,199
از چپ و سپس به راست
396
00:14:41,199 –> 00:14:44,160
و سپس در نهایت به ریشه
397
00:14:44,160 –> 00:14:46,240
شروع می شود، بنابراین در اینجا از چپ شروع می شود و سپس
398
00:14:46,240 –> 00:14:48,959
دوباره به سمت راست به سمت چپ و
399
00:14:48,959 –> 00:14:51,600
دوباره به سمت راست می رود. به سمت چپ
400
00:14:51,600 –> 00:14:54,399
و غیره، بنابراین مانند یک مسیر زیگزاگی کامل
401
00:14:54,399 –> 00:14:56,880
است که با استفاده از
402
00:14:56,880 –> 00:14:58,959
پیمایش سفارش پست که از چپ به راست از چپ به راست میرفت دنبال میشود،
403
00:14:58,959 –> 00:15:02,079
404
00:15:02,079 –> 00:15:05,279
بنابراین مرتبسازی دادهها در زمان واقعی
405
00:15:05,279 –> 00:15:06,800
میتوانیم مرتب کنیم و میتوانیم بگوییم چه زمانی کار میکنیم.
406
00:15:06,800 –> 00:15:09,040
در مرتبسازی هر داده، این
407
00:15:09,040 –> 00:15:10,959
کار باید در زمان واقعی انجام شود
408
00:15:10,959 –> 00:15:13,360
و
409
00:15:13,360 –> 00:15:15,839
باید تعدادی الگوریتم مرتبسازی را
410
00:15:15,839 –> 00:15:17,360
حل کرد،
411
00:15:17,360 –> 00:15:20,000
بنابراین با مفاهیم
412
00:15:20,000 –> 00:15:22,240
ساختار داده و الگوریتمها
413
00:15:22,240 –> 00:15:24,079
در پایتون به عنوان بخشی از یک بحث
414
00:15:24,079 –> 00:15:25,920
بیایید ابتدا بحث خود را در مورد
415
00:15:25,920 –> 00:15:28,959
الگوریتم های مرتب سازی در پایتون
416
00:15:28,959 –> 00:15:31,680
شروع کنیم، اجازه دهید
417
00:15:31,680 –> 00:15:34,639
ابتدا از نظر الگوریتم های مرتب سازی با آن شروع کنیم، بنابراین
418
00:15:34,639 –> 00:15:37,360
الگوریتم های مرتب سازی برای مرتب سازی داده ها
419
00:15:37,360 –> 00:15:40,560
به ترتیب معین
420
00:15:40,560 –> 00:15:42,880
استفاده می شوند و الگوریتم های مرتب سازی را می توان به پنج
421
00:15:42,880 –> 00:15:45,600
نوع طبقه بندی کرد. مرتبسازی پیام را
422
00:15:45,600 –> 00:15:48,000
داریم مرتبسازی ادغام کردهایم، سپس مرتبسازی حبابی
423
00:15:48,000 –> 00:15:50,880
و مرتبسازی انتخابی درج
424
00:15:50,880 –> 00:15:53,120
میکنیم و سپس مرتبسازی پوسته را داریم،
425
00:15:53,120 –> 00:15:55,759
بنابراین همه الگوریتمها دوباره اینجا هستند،
426
00:15:55,759 –> 00:15:58,560
427
00:15:58,560 –> 00:15:59,839
428
00:15:59,839 –> 00:16:01,680
اگر در مورد مرتبسازی ادغام صحبت کنیم، ابتدا همه آنها تعریف میشوند.
429
00:16:01,680 –> 00:16:03,440
در مورد این دسته بندی ها یک به
430
00:16:03,440 –> 00:16:04,240
یک،
431
00:16:04,240 –> 00:16:05,920
بنابراین اگر در مورد الگوریتم مرتب سازی ادغام و مرتب سازی صحبت کنیم،
432
00:16:05,920 –> 00:16:08,320
433
00:16:08,320 –> 00:16:10,399
ابتدا از قانون الهی و غلبه کن
434
00:16:10,399 –> 00:16:12,399
پیروی می کند،
435
00:16:12,399 –> 00:16:14,720
ب