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