در این مطلب، ویدئو مقدمه ای بر الگوریتم های مرتب سازی در پایتون – مرتب سازی حباب با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:08:59
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,480 –> 00:00:02,399
بنابراین بیایید در مورد یک الگوریتم مرتبسازی واقعاً ابتدایی صحبت کنیم
2
00:00:02,399 –> 00:00:03,520
3
00:00:03,520 –> 00:00:06,960
مرتبسازی حبابی به خوبی شناخته شده است
4
00:00:06,960 –> 00:00:07,759
زیرا
5
00:00:07,759 –> 00:00:09,599
پیادهسازی آن واقعاً اساسی است و یک
6
00:00:09,599 –> 00:00:11,920
الگوریتم واقعاً اساسی برای فکر کردن است،
7
00:00:11,920 –> 00:00:14,160
اما بسیار کند است و بنابراین چیزی نیست
8
00:00:14,160 –> 00:00:16,160
که معمولاً در
9
00:00:16,160 –> 00:00:16,800
عمل
10
00:00:16,800 –> 00:00:19,279
استفاده میشود. الگوریتم مرتبسازی سریع
11
00:00:19,279 –> 00:00:20,160
که
12
00:00:20,160 –> 00:00:22,080
اگر واقعاً به آن نیاز دارید میتوانید بنویسید، اگر
13
00:00:22,080 –> 00:00:23,600
الگوریتم مرتبسازی در کتابخانه استاندارد خود ندارید،
14
00:00:23,600 –> 00:00:26,080
15
00:00:26,080 –> 00:00:28,480
بنابراین ایده اولیه مرتبسازی حبابی
16
00:00:28,480 –> 00:00:30,240
احتمالاً همان چیزی است که
17
00:00:30,240 –> 00:00:31,840
اگر کسی از شما بخواهد لیستی را بدون هیچوقت مرتبسازی کنید، به آن فکر میکنید.
18
00:00:31,840 –> 00:00:33,760
پس از انجام
19
00:00:33,760 –> 00:00:35,680
هر کار الگوریتم مرتب سازی قبل از
20
00:00:35,680 –> 00:00:37,760
ایده اصلی این است که بزرگترین
21
00:00:37,760 –> 00:00:39,040
آیتم لیست را به انتها منتقل کنید،
22
00:00:39,040 –> 00:00:40,719
سپس دومین مورد بزرگ را به جایگاه دوم تا
23
00:00:40,719 –> 00:00:42,320
آخرین لیست و سپس سومین
24
00:00:42,320 –> 00:00:43,680
بزرگ ترین مورد را منتقل کنید و به همین ترتیب
25
00:00:43,680 –> 00:00:46,320
تا زمانی که کل لیست مرتب شود، اکنون
26
00:00:46,320 –> 00:00:48,160
مرتب سازی حبابی به طور خاص به این دلیل نامگذاری شده است
27
00:00:48,160 –> 00:00:49,760
که عنصر
28
00:00:49,760 –> 00:00:52,000
مورد نظر در یک سری از مبادله با عناصر مجاور به بالای لیست حباب می شود،
29
00:00:52,000 –> 00:00:54,640
30
00:00:54,640 –> 00:00:56,879
بنابراین به این نمودار در اینجا در
31
00:00:56,879 –> 00:00:58,239
سمت راست نگاه کنید. e از
32
00:00:58,239 –> 00:00:58,800
ابتدا شروع می شود
33
00:00:58,800 –> 00:01:01,840
و شما می خواهید بگویید 8 بیشتر از 2 است
34
00:01:01,840 –> 00:01:04,720
بنابراین من باید 8 و 2 را عوض کنم زیرا 8
35
00:01:04,720 –> 00:01:06,320
بزرگتر است بنابراین باید در لیست دورتر باشد
36
00:01:06,320 –> 00:01:07,200
37
00:01:07,200 –> 00:01:08,720
البته با این فرض که ما در حال
38
00:01:08,720 –> 00:01:10,479
مرتب سازی هستیم به ترتیب صعودی
39
00:01:10,479 –> 00:01:12,720
می توانید یک مقایسه کننده برای مرتب کردن به
40
00:01:12,720 –> 00:01:14,560
ترتیب نزولی در صورت تمایل تعریف کنید،
41
00:01:14,560 –> 00:01:15,840
اما فقط برای لحظه ای فرض کنید
42
00:01:15,840 –> 00:01:17,840
داریم به ترتیب صعودی مرتب می کنیم، بنابراین شما
43
00:01:17,840 –> 00:01:19,360
هشت و دو را عوض
44
00:01:19,360 –> 00:01:21,439
می کنید، سپس به سمت بالا حرکت می کنید و هشت همچنان
45
00:01:21,439 –> 00:01:23,840
بزرگتر از شش است، بنابراین شما دوباره آن را عوض کنید
46
00:01:23,840 –> 00:01:25,920
، بزرگتر از چهار است، دوباره آن را عوض کنید
47
00:01:25,920 –> 00:01:27,520
، بزرگتر از پنج است، دوباره آن را عوض کنید
48
00:01:27,520 –> 00:01:28,880
و در نهایت هشت در انتهای
49
00:01:28,880 –> 00:01:30,400
لیست است، چیزی برای تعویض آن باقی نمانده است،
50
00:01:30,400 –> 00:01:30,880
51
00:01:30,880 –> 00:01:33,600
بنابراین می دانید که آخرین عنصر در
52
00:01:33,600 –> 00:01:34,159
53
00:01:34,159 –> 00:01:36,159
لیست، بزرگترین عنصر است. در لیست، بنابراین
54
00:01:36,159 –> 00:01:37,840
اکنون می خواهید دوباره از اینجا شروع کنید
55
00:01:37,840 –> 00:01:39,840
و دو و شش نیازی به تعویض
56
00:01:39,840 –> 00:01:41,360
ندارند، بنابراین به عدد شش بروید،
57
00:01:41,360 –> 00:01:43,439
اکنون شش و چهار قابل تعویض هستند و شش
58
00:01:43,439 –> 00:01:45,119
و پنج قابل تعویض هستند
59
00:01:45,119 –> 00:01:48,560
و سپس در واقع به این
60
00:01:48,560 –> 00:01:50,479
پنج و شما خواهید دید که در
61
00:01:50,479 –> 00:01:52,240
o صحیح است هرگاه مشاهده کردید که
62
00:01:52,240 –> 00:01:53,280
ترتیب درستی دارد
63
00:01:53,280 –> 00:01:54,960
و بنابراین شما در واقع با آن
64
00:01:54,960 –> 00:01:56,799
عناصر تمام شدهاید، بنابراین ایده اصلی
65
00:01:56,799 –> 00:01:58,079
مرتبسازی حبابی این است که فقط
66
00:01:58,079 –> 00:02:00,560
به جابجایی تا بزرگترین عناصر
67
00:02:00,560 –> 00:02:01,439
در پایان ادامه دهید
68
00:02:01,439 –> 00:02:03,520
و سپس به نوعی دیگر
69
00:02:03,520 –> 00:02:05,040
عنصر آخر را در نظر نگیرید زیرا ما می دانیم که این
70
00:02:05,040 –> 00:02:05,920
در جای درست است
71
00:02:05,920 –> 00:02:07,680
و شما فقط به
72
00:02:07,680 –> 00:02:09,520
بخش های کوچکتر و کوچکتر این لیست
73
00:02:09,520 –> 00:02:12,239
ادامه می دهید تا زمانی که همه چیز مرتب شود، بنابراین بیایید
74
00:02:12,239 –> 00:02:12,879
نگاهی
75
00:02:12,879 –> 00:02:16,879
به نحوه نشان دادن این در کد
76
00:02:16,879 –> 00:02:19,599
77
00:02:19,599 –> 00:02:20,400
بیندازیم.
78
00:02:20,400 –> 00:02:22,400
یک تابع مرتبسازی حبابی
79
00:02:22,400 –> 00:02:25,280
در یک لیست یا مجموعهای از آیتمها قرار میگیرد
80
00:02:25,280 –> 00:02:27,280
و اگر از اسلایدی
81
00:02:27,280 –> 00:02:28,720
که یک ثانیه پیش به شما نشان
82
00:02:28,720 –> 00:02:30,480
دادم به خاطر بیاورید، کل
83
00:02:30,480 –> 00:02:31,840
لیست را درست مرور میکنید، بنابراین
84
00:02:31,840 –> 00:02:33,680
بزرگترین مورد را به
85
00:02:33,680 –> 00:02:35,440
انتهای لیست و سپس دومین
86
00:02:35,440 –> 00:02:37,200
مورد بزرگ به دومین جایگاه آخر در
87
00:02:37,200 –> 00:02:38,400
لیست و به همین ترتیب به
88
00:02:38,400 –> 00:02:39,760
سمت راست، به این معنی که
89
00:02:39,760 –> 00:02:41,440
شما باید تمام موارد
90
00:02:41,440 –> 00:02:42,160
موجود در لیست را حلقه بزنید،
91
00:02:42,160 –> 00:02:46,080
بنابراین برای i در طول محدوده آیتم ها
92
00:02:46,080 –> 00:02:48,080
درست است. این s شاخص یا
93
00:02:48,080 –> 00:02:50,319
شاخص های هر آیتم در لیست است
94
00:02:50,319 –> 00:02:52,879
و سپس در هر نقطه در طول آن
95
00:02:52,879 –> 00:02:53,680
تکرار
96
00:02:53,680 –> 00:02:55,200
، باید از آن عبور کنید و
97
00:02:55,200 –> 00:02:57,360
بزرگترین مورد را
98
00:02:57,360 –> 00:02:58,959
تا انتهای لیست حباب کنید تا به لیست دیگری اشاره شود.
99
00:02:58,959 –> 00:03:00,879
100
00:03:00,879 –> 00:03:02,879
و نیازی نیست که محدوده آن لیست
101
00:03:02,879 –> 00:03:04,959
کل لیست باشد، بلکه فقط باید
102
00:03:04,959 –> 00:03:06,879
همه مواردی باشد که هنوز به آنها نگاه
103
00:03:06,879 –> 00:03:08,000
نکرده اید،
104
00:03:08,000 –> 00:03:11,360
بنابراین طول موارد منهای من
105
00:03:11,360 –> 00:03:13,920
درست است زیرا i تعداد مواردی است
106
00:03:13,920 –> 00:03:16,080
که من دارم در واقع قبلاً در نظر گرفته شده است
107
00:03:16,080 –> 00:03:17,519
و یک چیز کوچک در اینجا این است که شما
108
00:03:17,519 –> 00:03:19,280
در واقع باید یکی از آن را کم کنید
109
00:03:19,280 –> 00:03:21,840
زیرا از آنجایی که ما قرار است با هم تعویض
110
00:03:21,840 –> 00:03:23,760
کنیم، نمی خواهید آخرین عنصر را عوض کنید
111
00:03:23,760 –> 00:03:24,879
زیرا
112
00:03:24,879 –> 00:03:26,239
وقتی به آخرین عنصر
113
00:03:26,239 –> 00:03:28,159
رسیدید، این کار را انجام نمی دهید. نیازی نیست بیشتر از این انجام دهید، بنابراین
114
00:03:28,159 –> 00:03:29,680
باید یک عدد کمتر
115
00:03:29,680 –> 00:03:31,440
از طول لیست منهای
116
00:03:31,440 –> 00:03:32,879
تعداد مواردی که قبلاً درست در نظر گرفته شده است
117
00:03:32,879 –> 00:03:35,280
بروید، بنابراین اجازه دهید به این موضوع بپردازیم و سپس در اینجا چه
118
00:03:35,280 –> 00:03:36,640
کاری باید انجام دهید، باید
119
00:03:36,640 –> 00:03:37,120
120
00:03:37,120 –> 00:03:38,959
مقداری تعویض درست انجام دهید. برای بررسی
121
00:03:38,959 –> 00:03:40,159
اینکه آیا موردی
122
00:03:40,159 –> 00:03:44,959
که در آن هستید، بنابراین اگر موارد
123
00:03:44,959 –> 00:03:48,080
در j if قرار دارند یا خیر این بیشتر
124
00:03:48,080 –> 00:03:50,080
از آیتم های j بعلاوه یک است، شما می دانید که
125
00:03:50,080 –> 00:03:51,680
آنها در ترتیب اشتباهی هستند، بنابراین
126
00:03:51,680 –> 00:03:52,720
باید به درستی تعویض شوند،
127
00:03:52,720 –> 00:03:56,720
بنابراین من می گویم موارد در j
128
00:03:56,720 –> 00:04:00,000
آیتم ها در j بعلاوه یک، دو مورد
129
00:04:00,000 –> 00:04:02,319
از این موارد قرار است جای خود را عوض کنند.
130
00:04:02,319 –> 00:04:04,239
بنابراین من فقط می خواهم اینجا را کپی پیست کنم
131
00:04:04,239 –> 00:04:07,840
به دلیل صدای عالی پایتون،
132
00:04:07,840 –> 00:04:09,760
در واقع کپی و پیست می کنم،
133
00:04:09,760 –> 00:04:12,239
اما به دلیل ویژگی شگفت انگیز تخصیص چندگانه پایتون،
134
00:04:12,239 –> 00:04:14,400
بنابراین می توانم به اینجا بروم
135
00:04:14,400 –> 00:04:16,560
و می توانم این دو شاخص را عوض کنم
136
00:04:16,560 –> 00:04:19,680
و اکنون این دو مورد با هم عوض می شوند. مکانها
137
00:04:19,680 –> 00:04:22,800
و سپس این باید واقعاً تمام چیزی باشد که
138
00:04:22,800 –> 00:04:24,479
من در اینجا واقعاً به آن نیاز دارم،
139
00:04:24,479 –> 00:04:26,000
زیرا کاری که شما میخواهید انجام دهید این است
140
00:04:26,000 –> 00:04:27,280
که فقط میروید بالا و به جابجای