در این مطلب، ویدئو ماژول Heapq و صف اولویت | هیپ باینری | آموزش پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:56
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,080
سلام بچه ها و به کانال یوتیوب آکادمی amulya خوش آمدید
2
00:00:02,080 –> 00:00:03,760
3
00:00:03,760 –> 00:00:05,839
ما در مورد ساختار داده های هیپ باینری بحث می کردیم
4
00:00:05,839 –> 00:00:07,120
5
00:00:07,120 –> 00:00:09,120
و امروز در این آموزش در
6
00:00:09,120 –> 00:00:11,200
مورد ماژول صف هیپ صحبت خواهیم کرد.
7
00:00:11,200 –> 00:00:13,440
8
00:00:13,440 –> 00:00:15,759
9
00:00:15,759 –> 00:00:16,400
10
00:00:16,400 –> 00:00:19,199
11
00:00:19,199 –> 00:00:20,240
ساختار داده heap
12
00:00:20,240 –> 00:00:22,880
و این مدل توابع زیادی را ارائه می دهد
13
00:00:22,880 –> 00:00:25,039
که برای پیاده سازی
14
00:00:25,039 –> 00:00:25,599
صف های اولویت
15
00:00:25,599 –> 00:00:28,720
یا یافتن بزرگترین یا کوچکترین
16
00:00:28,720 –> 00:00:31,840
تعداد در تکرارهای داده شده مفید هستند، بنابراین بیایید ببینیم
17
00:00:31,840 –> 00:00:34,079
که چگونه از این ماژول نشانه هیپ استفاده کنیم
18
00:00:34,079 –> 00:00:36,160
و عملکرد این ماژول
19
00:00:36,160 –> 00:00:37,440
20
00:00:37,440 –> 00:00:39,920
برای استفاده از ماژول صف هیپ چگونه کار می کند. در پایتون
21
00:00:39,920 –> 00:00:41,600
نیازی به نصب چیزی نیست
22
00:00:41,600 –> 00:00:45,280
فقط فایل پایتون را به این شکل باز کنید
23
00:00:45,280 –> 00:00:48,480
و می توانید ماژول هیپ صف را
24
00:00:48,480 –> 00:00:50,960
مانند این ایمپورت هیپ صف که
25
00:00:50,960 –> 00:00:52,160
نام ماژول است
26
00:00:52,160 –> 00:00:55,120
وارد کنید و وارد کنید بنابراین استفاده از ماژول صف هیپ
27
00:00:55,120 –> 00:00:56,480
در پایتون راحت تر است
28
00:00:56,480 –> 00:00:58,559
فقط باید از import استفاده کنیم. کلمه کلیدی به
29
00:00:58,559 –> 00:01:00,480
دنبال نام ماژول در
30
00:01:00,480 –> 00:01:02,800
ادامه بیایید عملکرد ماژول هیپ کیو
31
00:01:02,800 –> 00:01:05,199
و نحوه کارکرد آن را ببینیم
32
00:01:05,199 –> 00:01:07,600
اولین عملکرد ماژول صف
33
00:01:07,600 –> 00:01:08,799
هیپ، چرک پشته است.
34
00:01:08,799 –> 00:01:12,400
h بیایید نحو آن را ببینیم اولین
35
00:01:12,400 –> 00:01:15,439
صف هیپ این تابع فشار هیپ
36
00:01:15,439 –> 00:01:17,200
متعلق به ماژول صف هیپ است، بنابراین ما باید
37
00:01:17,200 –> 00:01:18,720
فشار نقطه هیپ صف
38
00:01:18,720 –> 00:01:21,680
هیپ را
39
00:01:21,840 –> 00:01:24,560
مانند این انجام دهیم و در اینجا باید
40
00:01:24,560 –> 00:01:25,280
نام هیپ
41
00:01:25,280 –> 00:01:28,159
را خوب یا نام لیست را ذکر کنید که در اینجا
42
00:01:28,159 –> 00:01:28,560
از
43
00:01:28,560 –> 00:01:32,560
لیست استفاده می کنیم و در اینجا باید
44
00:01:32,560 –> 00:01:33,119
موردی را
45
00:01:33,119 –> 00:01:36,400
که میخواهید وارد کنید این
46
00:01:36,400 –> 00:01:37,520
تابع چه کاری انجام
47
00:01:37,520 –> 00:01:40,000
48
00:01:40,000 –> 00:01:41,200
49
00:01:41,200 –> 00:01:44,240
50
00:01:44,240 –> 00:01:46,399
51
00:01:46,399 –> 00:01:48,560
52
00:01:48,560 –> 00:01:49,759
میدهد را ذکر کنید. heap
53
00:01:49,759 –> 00:01:53,280
با حفظ خاصیت min heap
54
00:01:53,280 –> 00:01:56,479
خوب است، بنابراین بیایید یک مثال را ببینیم ابتدا اجازه دهید
55
00:01:56,479 –> 00:01:58,000
من یک لیست ایجاد کنم
56
00:01:58,000 –> 00:02:01,360
یا می توانید بگویید heap، بنابراین اکنون
57
00:02:01,360 –> 00:02:04,799
در اینجا پشته خالی داریم،
58
00:02:04,799 –> 00:02:06,960
بیایید تابع فشار heap را فراخوانی کنیم، بیایید یک
59
00:02:06,960 –> 00:02:08,000
عنصر را به این
60
00:02:08,000 –> 00:02:11,760
پشته وارد کنیم تا heap q نام مدل به
61
00:02:11,760 –> 00:02:15,440
دنبال نام تابع heap push
62
00:02:15,440 –> 00:02:18,480
next در اینجا است، اولین پارامتر نام
63
00:02:18,480 –> 00:02:18,959
پشته
64
00:02:18,959 –> 00:02:21,440
یا نام لیست به دنبال
65
00:02:21,440 –> 00:02:23,840
آیتم است که میخواهم
66
00:02:23,840 –> 00:02:27,840
بعداً درج کنم اگر اکنون heap را بررسی کنم
67
00:02:27,840 –> 00:02:31,040
10 اکنون درج شده است.
68
00:02:31,040 –> 00:02:35,280
فشار p اگر من یکی را وارد کنم
69
00:02:35,280 –> 00:02:37,760
در هیپ یک ابتدا وجود خواهد داشت
70
00:02:37,760 –> 00:02:38,400
و سپس
71
00:02:38,400 –> 00:02:41,040
10 می آید، زیرا در اینجا یک کوچکتر
72
00:02:41,040 –> 00:02:42,160
از 10 است
73
00:02:42,160 –> 00:02:44,720
و این ماژول نشانه هیپ از
74
00:02:44,720 –> 00:02:46,480
حداقل ویژگی هیپ به سمت راست پیروی می کند،
75
00:02:46,480 –> 00:02:48,879
بنابراین با
76
00:02:48,879 –> 00:02:51,360
پیروی از ویژگی min hip عنصر را وارد می کند.
77
00:02:51,360 –> 00:02:55,519
حالا اگر از 5
78
00:02:59,040 –> 00:03:03,840
10 5 در اینجا استفاده کنم، می توانید درخت را درست ببینید،
79
00:03:03,840 –> 00:03:05,200
بنابراین این
80
00:03:05,200 –> 00:03:08,080
مربوط به تابع فشار هیپ است.
81
00:03:08,080 –> 00:03:10,800
82
00:03:10,800 –> 00:03:12,800
83
00:03:12,800 –> 00:03:14,560
84
00:03:14,560 –> 00:03:15,920
heap cue dot
85
00:03:15,920 –> 00:03:19,280
heap pop و در اینجا باید
86
00:03:19,280 –> 00:03:22,720
نام heap را ذکر کنید که پارامتر Heap name است
87
00:03:22,720 –> 00:03:24,959
یا نام لیست که این تابع چه
88
00:03:24,959 –> 00:03:26,879
کاری انجام می دهد این تابع
89
00:03:26,879 –> 00:03:27,920
کوچکترین مقدار
90
00:03:27,920 –> 00:03:29,920
را برمی گرداند و همچنین آن را از پشته حذف می
91
00:03:29,920 –> 00:03:32,080
کند که خاصیت heap باینری را پس از آن حفظ می
92
00:03:32,080 –> 00:03:32,959
کند.
93
00:03:32,959 –> 00:03:34,879
حذف گره ریشه
94
00:03:34,879 –> 00:03:36,000
، خاصیت heap را حفظ می کند،
95
00:03:36,000 –> 00:03:38,640
بنابراین بیایید یک مثال
96
00:03:38,640 –> 00:03:39,840
برای آن
97
00:03:39,840 –> 00:03:43,120
ببینیم در اینجا ما 110 فی داریم، بنابراین اجازه دهید از heap
98
00:03:43,120 –> 00:03:44,080
queue
99
00:03:44,080 –> 00:03:47,680
dot heap pop استفاده کنم و در اینجا من از heap استفاده می کنم
100
00:03:47,680 –> 00:03:49,920
101
00:03:50,879 –> 00:03:54,239
تا یکی حذف شود، حداقل مقدار را برمی گرداند.
102
00:03:54,239 –> 00:03:56,720
مقدار و همچنین حذف می کند
103
00:03:56,720 –> 00:03:59,120
که از لیستی که در اینجا مشاهده
104
00:03:59,120 –> 00:04:00,560
می کنید حذف می شود که از
105
00:04:00,560 –> 00:04:03,280
پشته این مقدار حداقل یا
106
00:04:03,280 –> 00:04:04,959
حداکثر را از پشته استخراج می
107
00:04:04,959 –> 00:04:07,280
کند در اینجا حداقل heap است به همین دلیل است که
108
00:04:07,280 –> 00:04:08,400
109
00:04:08,400 –> 00:04:11,840
اگر من استفاده کنم حداقل مقدار گره ریشه را استخراج می کنیم.
110
00:04:11,840 –> 00:04:13,760
که دوباره
111
00:04:13,760 –> 00:04:15,920
phi حذف خواهد شد که
112
00:04:15,920 –> 00:04:16,959
گره ریشه درخت است حالا
113
00:04:16,959 –> 00:04:20,238
که حذف شده است، مقدار کوچکترین گره را برمی گرداند
114
00:04:20,238 –> 00:04:20,720
115
00:04:20,720 –> 00:04:22,720
و آن را
116
00:04:22,720 –> 00:04:24,720
از پشته باینری حذف می کند،
117
00:04:24,720 –> 00:04:27,680
بنابراین این مربوط به تابع heap pop
118
00:04:27,680 –> 00:04:28,720
است.
119
00:04:28,720 –> 00:04:30,960
تابع بعدی
120
00:04:30,960 –> 00:04:33,199
که
121
00:04:33,199 –> 00:04:36,560
syntax heapify است مانند این heapq dot heapify است
122
00:04:36,560 –> 00:04:39,199
و پارامتر heap است که این
123
00:04:39,199 –> 00:04:40,479
تابع چه کاری انجام می دهد
124
00:04:40,479 –> 00:04:43,040
این تابع لیست داده شده را
125
00:04:43,040 –> 00:04:43,759
به
126
00:04:43,759 –> 00:04:46,880
heap heap باینری تبدیل می کند تا زمانی که لیست
127
00:04:46,880 –> 00:04:47,520
اعداد داده می شود
128
00:04:47,520 –> 00:04:49,919
و اگر اعداد دنبال
129
00:04:49,919 –> 00:04:52,240
پشته نباشند ویژگی پس از آن می توانید از heapify استفاده
130
00:04:52,240 –> 00:04:54,880
کنید، آن لیست را به پشته تبدیل می کند،
131
00:04:54,880 –> 00:04:56,080
132
00:04:56,080 –> 00:04:58,960
بیایید در اینجا مثالی بزنیم، من مقدار کمی
133
00:04:58,960 –> 00:04:59,840
134
00:04:59,840 –> 00:05:03,120
مانند این یک سه پنج دو چهار
135
00:05:03,120 –> 00:05:06,560
شش را می گیرم، در اینجا ما لیستی داریم
136
00:05:06,560 –> 00:05:08,160
که fol نیست
137
00:05:08,160 –> 00:05:10,560
اگر میخواهم این لیست را به heap تبدیل کنم، ویژگی min hip را کم
138
00:05:10,560 –> 00:05:11,600
139
00:05:11,600 –> 00:05:16,160
140
00:05:16,160 –> 00:05:18,240
میکنم، پس کاری که میتوانم انجام دهم این است که q he p5 را به این شکل نگه دارم و در اینجا فقط باید
141
00:05:18,240 –> 00:05:20,080
لیست یکی را ذکر کنید،
142
00:05:20,080 –> 00:05:22,800
اگر لیست یک را اینجا چک کنم، میتوانیم
143
00:05:22,800 –> 00:05:24,720
عناصر را ببینیم زیر گرههای ویژگی min heap
144
00:05:24,720 –> 00:05:25,280
145
00:05:25,280 –> 00:05:27,039
بهگونهای مرتب شدهاند که
146
00:05:27,039 –> 00:05:29,520
اکنون از ویژگی هیپ میانگین پیروی میکند،
147
00:05:29,520 –> 00:05:32,560
بنابراین این مربوط به تابع heapify است، بنابراین
148
00:05:32,560 –> 00:05:33,199
تابع بعدی
149
00:05:33,199 –> 00:05:36,720
heap push pop heap q
150
00:05:36,720 –> 00:05:40,400
dot heap push
151
00:05:40,400 –> 00:05:43,680
pop و در اینجا نام هیپ،
152
00:05:43,680 –> 00:05:47,280
نام لیست و مورد است. کاری که این
153
00:05:47,280 –> 00:05:48,720
تابع انجام می دهد این است که
154
00:05:48,720 –> 00:05:52,240
ابتدا با حفظ خاصیت heap مورد ذکر شده را به پشته فشار داده یا
155
00:05:52,240 –> 00:05:52,880
156
00:05:52,880 –> 00:05:54,880
15