All language subtitles for 2. Big-O Notation-ar

af Afrikaans
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 1 00:00:00,011 --> 00:00:02,463 (موسيقى خفيفة) 2 2 00:00:02,463 --> 00:00:05,270 (نقر لوحة المفاتيح) 3 3 00:00:05,270 --> 00:00:06,930 حسنًا ، في بعض مقاطع الفيديو 4 4 00:00:06,930 --> 00:00:10,610 سنبدأ في البحث في خوارزميات الفرز ، 5 5 00:00:10,610 --> 00:00:12,690 وسيكون من المفيد حقًا أن نكون كذلك 6 6 00:00:12,690 --> 00:00:16,490 قادرة على مقارنة أداء خوارزمية واحدة 7 7 00:00:16,490 --> 00:00:18,190 ضد خوارزمية أخرى. 8 8 00:00:18,190 --> 00:00:21,060 لذلك قد تعتقد أن طريقة واحدة يمكننا القيام بذلك 9 9 00:00:21,060 --> 00:00:25,430 هو تنفيذ خوارزمية واحدة ثم وضع سطر من التعليمات البرمجية 10 10 00:00:25,430 --> 00:00:29,820 يسجل وقت البدء ثم تشغيل التنفيذ 11 11 00:00:29,820 --> 00:00:32,670 وبعد ذلك يكون لديك سطر من التعليمات البرمجية يسجل وقت الانتهاء 12 12 00:00:32,670 --> 00:00:36,100 ويمكننا طرح وقت البدء من وقت الانتهاء 13 13 00:00:36,100 --> 00:00:38,910 ونحصل على وقت تشغيل التنفيذ 14 14 00:00:38,910 --> 00:00:40,280 من تلك الخوارزمية. 15 15 00:00:40,280 --> 00:00:42,560 ثم نفعل الشيء نفسه مع خوارزمية أخرى 16 16 00:00:42,560 --> 00:00:44,120 ونقارن بين الاثنين فقط. 17 17 00:00:44,120 --> 00:00:46,490 يبدو رائعا من الناحية النظرية ولكن لسوء الحظ 18 18 00:00:46,490 --> 00:00:49,540 هذه ليست طريقة جيدة للقيام بذلك بسبب الأجهزة. 19 19 00:00:49,540 --> 00:00:52,550 ستؤثر الأجهزة على وقت التشغيل 20 20 00:00:52,550 --> 00:00:53,540 من هذه الخوارزميات. 21 21 00:00:53,540 --> 00:00:54,710 . أعني، فكر في ذلك 22 22 00:00:54,710 --> 00:00:59,470 إذا أردنا تشغيل تنفيذ على كمبيوتر سطح المكتب 23 23 00:00:59,470 --> 00:01:02,900 التي تم بناؤها في عام 2017 وقارن ذلك 24 24 00:01:02,900 --> 00:01:06,650 إلى وقت تشغيل نفس التنفيذ بالضبط 25 25 00:01:06,650 --> 00:01:09,760 على جهاز كمبيوتر مكتبي تم إنشاؤه قبل 20 عامًا 26 26 00:01:09,760 --> 00:01:11,810 وربما كان كمبيوتر بنتيومًا قديمًا ، 27 27 00:01:11,810 --> 00:01:14,450 أو حتى نذهب أبعد من ذلك ونركض 28 28 00:01:14,450 --> 00:01:18,180 التنفيذ على Commodore 64 أو شيء من هذا القبيل ، 29 29 00:01:18,180 --> 00:01:21,350 من الواضح أن التطبيقات ستعمل بشكل أبطأ 30 30 00:01:21,350 --> 00:01:23,420 على الأجهزة القديمة. 31 31 00:01:23,420 --> 00:01:26,470 وإذا أردنا تنفيذ تنفيذ على جهاز كمبيوتر فائق ، 32 32 00:01:26,470 --> 00:01:28,810 ستعمل بسرعة كبيرة على الرغم من ذلك 33 33 00:01:28,810 --> 00:01:31,710 قد تكون خوارزمية غير فعالة حقًا. 34 34 00:01:31,710 --> 00:01:34,400 لذلك نحن بحاجة إلى مقياس أكثر موضوعية 35 35 00:01:34,400 --> 00:01:36,870 من مجرد وقت التشغيل المباشر. 36 36 00:01:36,870 --> 00:01:41,870 وما نفعله هو أن ننظر إلى عدد الخطوات 37 37 00:01:42,220 --> 00:01:45,740 التي يتطلبها تنفيذ الخوارزمية. 38 38 00:01:45,740 --> 00:01:49,200 ونسمي هذا تعقيد الوقت. 39 39 00:01:49,200 --> 00:01:50,850 هناك نوعان من التعقيد: 40 40 00:01:50,850 --> 00:01:52,900 هناك تعقيد زمني وهو العدد 41 41 00:01:52,900 --> 00:01:56,590 من الخطوات المتبعة لتشغيل الخوارزمية ؛ 42 42 00:01:56,590 --> 00:01:59,750 ثم هناك تعقيد الذاكرة وهو المقدار 43 43 00:01:59,750 --> 00:02:01,800 من الذاكرة اللازمة لتشغيل خوارزمية. 44 44 00:02:01,800 --> 00:02:04,590 الآن هذه الأيام ، لأن الذاكرة رخيصة جدًا ، 45 45 00:02:04,590 --> 00:02:07,270 تعقيد الذاكرة ليس مثل هذه المشكلة. 46 46 00:02:07,270 --> 00:02:09,850 لذلك نحن في هذه الأيام نهتم بأنفسنا بشكل رئيسي 47 47 00:02:09,850 --> 00:02:10,960 مع تعقيد الوقت. 48 48 00:02:10,960 --> 00:02:14,500 لذلك نحن مهتمون بعدد الخطوات التي يستغرقها ذلك 49 49 00:02:14,500 --> 00:02:15,890 لتشغيل خوارزمية؟ 50 50 00:02:15,890 --> 00:02:19,270 الآن عندما نفعل ذلك ، نود أن ننظر في أسوأ الحالات. 51 51 00:02:19,270 --> 00:02:21,760 إن النظر إلى أفضل حالة لا يساعدنا لأنه 52 52 00:02:21,760 --> 00:02:24,280 نادرًا ما تحصل على أفضل حالة. 53 53 00:02:24,280 --> 00:02:26,460 الآن يمكننا أن نأخذ متوسط ​​الحالة 54 54 00:02:26,460 --> 00:02:30,050 لكن هذا لن يخبرنا بالمطلق 55 55 00:02:30,050 --> 00:02:31,610 أسوأ تعقيد زمني. 56 56 00:02:31,610 --> 00:02:33,840 إذا أردنا معرفة الحد الأعلى ، 57 57 00:02:33,840 --> 00:02:36,990 مثل ما هو أسوأ ما يمكن أن نتوقعه 58 58 00:02:36,990 --> 00:02:39,380 من هذه الخوارزمية ، إنها مفيدة أكثر 59 59 00:02:39,380 --> 00:02:40,930 للنظر في أسوأ الحالات. 60 60 00:02:40,930 --> 00:02:44,580 لذلك من المفيد مقارنة السيناريو الأسوأ 61 61 00:02:44,580 --> 00:02:47,160 لخوارزمية واحدة ضد السيناريو الأسوأ 62 62 00:02:47,160 --> 00:02:48,240 للخوارزمية الأخرى. 63 63 00:02:48,240 --> 00:02:50,330 وهذه هي الطريقة التي نقوم بها. 64 64 00:02:50,330 --> 00:02:52,060 لذلك دعونا نلقي نظرة على الخوارزمية 65 65 00:02:52,060 --> 00:02:54,100 التي أعرضها على هذه الشاشة. 66 66 00:02:54,100 --> 00:02:56,650 لقد بحثنا بالفعل في خوارزمية لصنع الشاي 67 67 00:02:56,650 --> 00:02:59,850 لذا سننظر الآن في خطوة واحدة صغيرة. 68 68 00:02:59,850 --> 00:03:03,120 ولدينا خوارزمية لإضافة السكر إلى الشاي. 69 69 00:03:03,120 --> 00:03:07,060 لذا في هذه الخوارزمية ، الخطوة الأولى هي الحصول على الوعاء 70 70 00:03:07,060 --> 00:03:08,450 تحتوي على السكر. 71 71 00:03:08,450 --> 00:03:10,730 الخطوة الثانية هي الحصول على ملعقة. 72 72 00:03:10,730 --> 00:03:13,360 لذلك نفترض أن لدينا سكرًا سائبًا هنا. 73 73 00:03:13,360 --> 00:03:16,540 الخطوة الثالثة هي استخلاص السكر باستخدام الملعقة ، 74 74 00:03:16,540 --> 00:03:19,070 والخطوة الرابعة هي صب السكر 75 75 00:03:19,070 --> 00:03:21,190 من الملعقة إلى الشاي. 76 76 00:03:21,190 --> 00:03:24,880 وطبعا إذا كنت تريد أكثر من ملعقة شاي 77 77 00:03:24,880 --> 00:03:27,690 ثم عليك أن تكرر الخطوتين الثالثة والرابعة 78 78 00:03:27,690 --> 00:03:30,330 حتى تضيف الكمية المرغوبة من السكر. 79 79 00:03:30,330 --> 00:03:33,460 يمكننا الآن أن نرى من هذا أن عدد الخطوات 80 80 00:03:33,460 --> 00:03:35,800 أنه سيتطلب إضافة السكر إلى الشاي الخاص بك 81 81 00:03:35,800 --> 00:03:38,920 ستعتمد على عدد السكريات التي تريدها. 82 82 00:03:38,920 --> 00:03:41,000 إذا كنت تريد سكرًا واحدًا فقط ، 83 83 00:03:41,000 --> 00:03:44,410 ثم ستعمل هذه الخوارزمية بأربع خطوات. 84 84 00:03:44,410 --> 00:03:45,840 ولكن إذا كنت تريد سكرين ، 85 85 00:03:45,840 --> 00:03:47,760 سوف يستغرق ست خطوات لأن 86 86 00:03:47,760 --> 00:03:50,510 سيتعين عليك تكرار الخطوتين الثالثة والرابعة. 87 87 00:03:50,510 --> 00:03:52,910 لذلك دعونا نلقي نظرة على ما يحدث 88 88 00:03:52,910 --> 00:03:54,620 لعدد السكريات. 89 89 00:03:54,620 --> 00:03:58,330 لذلك إذا كان لديك سكر واحد ، ما عليك سوى القيام بأربع خطوات. 90 90 00:03:58,330 --> 00:04:02,350 إذا كان لديك نوعان من السكر ، فستحتاج إلى ست خطوات. 91 91 00:04:02,350 --> 00:04:04,080 إذا كنت تريد ثلاثة أنواع من السكريات في الشاي 92 92 00:04:04,080 --> 00:04:06,270 ستحتاج إلى ثماني خطوات لأنك ستفعل 93 93 00:04:06,270 --> 00:04:09,830 يجب أن تكرر الخطوتين الثالثة والرابعة ثلاث مرات. 94 94 00:04:09,830 --> 00:04:11,930 وإذا كنت تريد أربعة سكريات في الشاي الخاص بك ، 95 95 00:04:11,930 --> 00:04:14,230 أنا متأكد من أن معظمنا كان سيخرج بكفالة الآن ، 96 96 00:04:14,230 --> 00:04:16,770 لكن لدي صديق أقول أنه يأخذ 97 97 00:04:16,770 --> 00:04:19,360 الشاي مع السكر لها وليس العكس. 98 98 00:04:19,360 --> 00:04:22,230 لذلك قد تصل إلى الصف الرابع. 99 99 00:04:22,230 --> 00:04:24,640 إذا كنت تريد أربعة سكريات في الشاي الخاص بك ، 100 100 00:04:24,640 --> 00:04:25,770 ثم سيتعين عليك التكرار 101 101 00:04:25,770 --> 00:04:28,430 الخطوتين الثالثة والرابعة أربع مرات. 102 102 00:04:28,430 --> 00:04:30,380 ولذا سوف تتخذ 10 خطوات 103 103 00:04:30,380 --> 00:04:31,810 لوضع السكر في الشاي الخاص بك. 104 104 00:04:31,810 --> 00:04:33,990 هكذا يمكننا أن نرى عدد الخطوات 105 105 00:04:33,990 --> 00:04:36,920 أو التعقيد الزمني لخوارزمية السكر لدينا 106 106 00:04:36,920 --> 00:04:40,540 يعتمد على عدد السكريات التي يريدها شخص ما في الشاي. 107 107 00:04:40,540 --> 00:04:42,470 إذا كانوا يريدون سكرًا واحدًا فقط ، 108 108 00:04:42,470 --> 00:04:44,060 يستغرق الأمر منهم أربع خطوات فقط. 109 109 00:04:44,060 --> 00:04:47,920 لكن إذا أرادوا أربعة أنواع من السكريات ، فسيتخذون 10 خطوات. 110 110 00:04:47,920 --> 00:04:50,440 لذا فإن تعقيد الوقت يعطينا فكرة 111 111 00:04:50,440 --> 00:04:54,110 حول كيفية أداء الخوارزمية كعدد العناصر 112 112 00:04:54,110 --> 00:04:57,080 عليه أن يتعامل مع النمو كما نرى 113 113 00:04:57,080 --> 00:04:59,730 كعدد السكريات التي يجب أن تضيفها هذه الخوارزمية 114 114 00:04:59,730 --> 00:05:04,120 إلى الشاي ، يزداد عدد الخطوات المطلوبة. 115 115 00:05:04,120 --> 00:05:06,270 طريقة أخرى لقول هذا هو أنه يخبرنا 116 116 00:05:06,270 --> 00:05:08,890 مدى جودة الخوارزمية. 117 117 00:05:08,890 --> 00:05:11,060 إذن ما مدى نجاحها عندما يتعين عليها التعامل 118 118 00:05:11,060 --> 00:05:15,590 مع 100 عنصر مقابل 1،00 عنصر مقابل مليون عنصر؟ 119 119 00:05:15,590 --> 00:05:18,840 وسنرى أن بعض الخوارزميات ستتوسع بشكل جيد حقًا 120 120 00:05:18,840 --> 00:05:20,720 والبعض الآخر ليس جيدًا. 121 121 00:05:20,720 --> 00:05:22,130 كلما زاد عدد العناصر ، 122 122 00:05:22,130 --> 00:05:25,240 كلما انخفض أداء الخوارزمية. 123 123 00:05:25,240 --> 00:05:28,710 الآن تدوين O الكبير هو وسيلة للتعبير 124 124 00:05:28,710 --> 00:05:31,733 التعقيد المرتبط بعدد العناصر 125 125 00:05:31,733 --> 00:05:33,900 أن الخوارزمية يجب أن تتعامل معها. 126 126 00:05:33,900 --> 00:05:36,060 وهي مكتوبة برأس مال O 127 127 00:05:36,060 --> 00:05:38,680 متبوعًا بتعبير بين قوسين. 128 128 00:05:38,680 --> 00:05:43,680 لذلك دعونا نحسب قيمة O الكبيرة لخوارزمية السكر لدينا. 129 129 00:05:44,570 --> 00:05:49,570 لذلك من المعتاد تحديد عدد العناصر بواسطة N. 130 130 00:05:50,730 --> 00:05:54,910 لذلك في حالتنا ، فإن عدد السكريات المرغوبة سوف يساوي N. 131 131 00:05:54,910 --> 00:05:58,370 وكما نرى من طاولتنا 132 132 00:05:58,370 --> 00:06:00,733 ومن خوارزميتنا هنا ، 133 133 00:06:01,760 --> 00:06:06,760 عدد الخطوات سيكون مرتين في N زائد اثنين. 134 134 00:06:07,880 --> 00:06:10,950 والسبب في ذلك هو أن عليك التكرار 135 135 00:06:10,950 --> 00:06:14,390 الخطوتين الثالثة والرابعة لعدد السكريات التي لديك ، 136 136 00:06:14,390 --> 00:06:15,980 لذلك هذا هو اثنان N. 137 137 00:06:15,980 --> 00:06:19,190 ثم زائد اثنين هو الخطوتين واحد واثنين. 138 138 00:06:19,190 --> 00:06:23,140 الآن كما رأينا عندما ينمو N ، يزداد عدد الخطوات. 139 139 00:06:23,140 --> 00:06:25,170 الآن لاحظ أن الاثنين ، 140 140 00:06:25,170 --> 00:06:26,530 سيكون من الصعب علي أن أقول ، 141 141 00:06:26,530 --> 00:06:30,220 لكن الاثنين في اثنين N زائد اثنين ، 142 142 00:06:30,220 --> 00:06:32,000 تظل ثابتة. 143 143 00:06:32,000 --> 00:06:34,930 لا تتغير مع تغير عدد السكريات. 144 144 00:06:34,930 --> 00:06:38,100 وبسبب ذلك فإننا لا نعتبرهم 145 145 00:06:38,100 --> 00:06:40,980 عندما نتوصل إلى قيمة O الكبيرة. 146 146 00:06:40,980 --> 00:06:44,090 إن N هو الذي يؤثر على عدد الخطوات. 147 147 00:06:44,090 --> 00:06:47,050 ولذا في هذه الحالة نقول أن الوقت معقد 148 148 00:06:47,050 --> 00:06:50,410 لهذه الخوارزمية هي O لـ N. 149 149 00:06:50,410 --> 00:06:53,110 ولأن التعقيد الزمني لهذه الخوارزمية 150 150 00:06:53,110 --> 00:06:55,340 يزيد بشكل خطي ، 151 151 00:06:55,340 --> 00:06:58,614 نحن نعتبر هذا تعقيدًا زمنيًا خطيًا. 152 152 00:06:58,614 --> 00:07:03,614 لذا فإن التعقيد الزمني لـ O لـ N هو تعقيد زمني خطي. 153 153 00:07:03,640 --> 00:07:06,340 وإذا عدنا إلى طاولتنا ، 154 154 00:07:06,340 --> 00:07:09,580 سنرى أننا نذهب أربعة ، ستة ، ثمانية ، 10 155 155 00:07:09,580 --> 00:07:13,350 وبالطبع سنستمر ، 12 ، 14 ، 16 ، 18. 156 156 00:07:13,350 --> 00:07:16,570 هذا تسلسل خطي ، إنه تسلسل خطي. 157 157 00:07:16,570 --> 00:07:21,120 وبالتالي التعقيد الزمني للسكريات المضافة 158 158 00:07:21,120 --> 00:07:23,920 إلى خوارزمية الشاي هي O من N. 159 159 00:07:23,920 --> 00:07:25,820 هذه هي قيم O الكبيرة 160 160 00:07:25,820 --> 00:07:28,627 سنرى بشكل أساسي في هذه الدورة. 161 161 00:07:28,627 --> 00:07:33,440 لديك O من واحد وهو تعقيد زمني مستمر ، 162 162 00:07:33,440 --> 00:07:36,930 O من لوغاريتم N أي تعقيد زمني لوغاريتمي ، 163 163 00:07:36,930 --> 00:07:41,460 وهذا هو log للأساس اثنين وليس للأساس 10. 164 164 00:07:41,460 --> 00:07:44,080 إذن فهو لوغاريتم ن للأساس اثنين. 165 165 00:07:44,080 --> 00:07:47,030 O لـ N وهو تعقيد زمني خطي. 166 166 00:07:47,030 --> 00:07:49,540 ثم لدينا O لـ N log N 167 167 00:07:49,540 --> 00:07:52,820 وهو N مرات لوغاريتم القاعدة اثنين N ، 168 168 00:07:52,820 --> 00:07:56,710 وهذا التعقيد الزمني لنجوم تسجيل نون ن. 169 169 00:07:56,710 --> 00:07:58,970 ولدينا O لـ N تربيع 170 170 00:07:58,970 --> 00:08:01,210 وهو تعقيد زمني من الدرجة الثانية. 171 171 00:08:01,210 --> 00:08:04,000 ستلاحظ أنه عندما ننظر إلى خوارزميات الفرز ، 172 172 00:08:04,000 --> 00:08:06,930 في الواقع ، ستكون المراتب القليلة الأولى التي ننظر إليها تربيعية. 173 173 00:08:06,930 --> 00:08:11,320 والترتيب في الجدول من الأفضل إلى الأسوأ. 174 174 00:08:11,320 --> 00:08:15,110 لذلك إذا كان بإمكانك استخدام خوارزمية وقت ثابت 175 175 00:08:15,110 --> 00:08:19,190 هذه طريقة أفضل من خوارزمية الوقت التربيعية. 176 176 00:08:19,190 --> 00:08:24,190 الآن كما قلت ، سمعتني أقول: O of one and O of N، 177 177 00:08:24,230 --> 00:08:25,620 هكذا تقولها. 178 178 00:08:25,620 --> 00:08:28,570 O ثم القيمة الموجودة بين قوسين. 179 179 00:08:28,570 --> 00:08:31,700 الآن عندما تعلمت عن تدوينات O الكبيرة ، 180 180 00:08:31,700 --> 00:08:36,170 لسبب ما الشخص الذي يقوم بتدريس المعلومات 181 181 00:08:36,170 --> 00:08:40,770 بدلاً من ذلك قال O للواحد ، O لـ N. 182 182 00:08:40,770 --> 00:08:42,880 وهكذا تم حفر ذلك في رأسي 183 183 00:08:42,880 --> 00:08:44,430 وهي عادة يصعب التخلص منها. 184 184 00:08:44,430 --> 00:08:46,550 تدوين O الكبير ، إنه نوع من الأشياء 185 185 00:08:46,550 --> 00:08:48,800 ليس عليك قولها معظم الوقت 186 186 00:08:48,800 --> 00:08:50,870 أنت تقرأه أو تكتبه. 187 187 00:08:50,870 --> 00:08:54,770 لذا فإن الطريقة الصحيحة لقولها هي O of one، O of N، 188 188 00:08:54,770 --> 00:08:56,570 O من السجل N ، وما إلى ذلك. 189 189 00:08:56,570 --> 00:08:59,040 لكنني سأخطئ في بعض الأحيان 190 190 00:08:59,040 --> 00:09:01,790 ونقول يا لأن هذا ما كان 191 191 00:09:01,790 --> 00:09:04,370 حفرت في رأسي عندما تعلمت هذه المادة. 192 192 00:09:04,370 --> 00:09:05,900 ولذا إذا سمعتني أقول ذلك ، 193 193 00:09:05,900 --> 00:09:07,730 إذا سمعتني أقول O للواحد ، 194 194 00:09:07,730 --> 00:09:09,490 O إلى مربع N ، وما إلى ذلك ، 195 195 00:09:09,490 --> 00:09:13,140 فقط قم بتحويل ذلك إلى O في عقلك. 196 196 00:09:13,140 --> 00:09:15,090 هناك احتمالات أنك لن تحصل عليه أبدًا في الواقع 197 197 00:09:15,090 --> 00:09:16,700 لقول هذا من أي وقت مضى. 198 198 00:09:16,700 --> 00:09:21,700 طوال مسيرتي المهنية بالكامل لم أضطر أبدًا إلى قول "O" من أي شيء. 199 199 00:09:21,860 --> 00:09:25,220 في الواقع ، لم نناقش مرة واحدة في حياتي المهنية بأكملها 200 200 00:09:25,220 --> 00:09:26,800 تدوين كبير يا. 201 201 00:09:26,800 --> 00:09:28,800 أنا متأكد من أن اعتمادًا على نوع ملفات 202 202 00:09:28,800 --> 00:09:30,360 التطبيق الذي تعمل عليه ، 203 203 00:09:30,360 --> 00:09:31,690 قد يكون ذلك مختلفًا بالنسبة لك. 204 204 00:09:31,690 --> 00:09:35,450 لكن في مسيرتي المهنية ، كانت تدوينات O الكبيرة نوعًا ما ليست مشكلة. 205 205 00:09:35,450 --> 00:09:38,860 لم يكن أبدًا شيئًا نحتاج إلى القلق بشأنه. 206 206 00:09:38,860 --> 00:09:41,500 ولذا إذا كنت تتحدث إلى شخص ما 207 207 00:09:41,500 --> 00:09:43,690 ويسألونك عن تدوين O الكبير 208 208 00:09:43,690 --> 00:09:46,420 أو قيم O الكبيرة تقول O من. 209 209 00:09:46,420 --> 00:09:49,670 وإذا سمعتني أقول "أوه" في هذه الدورة ، 210 210 00:09:49,670 --> 00:09:51,790 فقط قم بتحويل ذلك إلى O لـ. 211 211 00:09:51,790 --> 00:09:54,100 فلننتقل الآن إلى ويكيبيديا 212 212 00:09:54,100 --> 00:09:57,500 حتى نتمكن بالفعل من رؤية قيم O الكبيرة 213 213 00:09:57,500 --> 00:10:00,810 على رسم بياني حتى نتمكن من الحصول على فكرة بصرية 214 214 00:10:00,810 --> 00:10:04,713 الاختلافات بين قيم O الكبيرة المختلفة. 215 215 00:10:08,500 --> 00:10:12,820 أنا هنا في ويكيبيديا وستجد هذه الصورة 216 216 00:10:12,820 --> 00:10:15,560 في مقالة ويكيبيديا حول تدوين O الكبير 217 217 00:10:15,560 --> 00:10:19,380 وقمت أيضًا بتضمين رابط مباشر لهذه الصورة 218 218 00:10:19,380 --> 00:10:20,850 في قسم الموارد. 219 219 00:10:20,850 --> 00:10:25,180 تم إنشاء هذه الصورة بواسطة المستخدم Cmglee. 220 220 00:10:25,180 --> 00:10:30,180 وهذا رسم بياني لبعض قيم O الكبيرة ، 221 221 00:10:30,680 --> 00:10:34,230 وهذا يمثل كيفية تدهور الخوارزمية. 222 222 00:10:34,230 --> 00:10:38,470 على طول المحور X لدينا حجم الإدخال ، 223 223 00:10:38,470 --> 00:10:39,990 وبالتالي فإن عدد العناصر ؛ 224 224 00:10:39,990 --> 00:10:43,950 وعلى طول المحور ص لدينا عدد الخطوات. 225 225 00:10:43,950 --> 00:10:46,770 لذلك يمكنك أن ترى خوارزمية ثابتة ، 226 226 00:10:46,770 --> 00:10:51,050 يا من واحد في هذا اللون البنفسجي ، 227 227 00:10:51,050 --> 00:10:53,550 مع زيادة عدد العناصر 228 228 00:10:53,550 --> 00:10:55,770 عدد الخطوات يبقى كما هو. 229 229 00:10:55,770 --> 00:10:58,220 هذا مجرد خط أفقي مستقيم. 230 230 00:10:58,220 --> 00:10:59,800 إذن هذا هو عدد الخطوات. 231 231 00:10:59,800 --> 00:11:02,000 وهذا الخط لا يتسلق على الإطلاق 232 232 00:11:02,000 --> 00:11:04,210 مع زيادة عدد العناصر. 233 233 00:11:04,210 --> 00:11:05,590 هذا هو أفضل حال. 234 234 00:11:05,590 --> 00:11:08,150 إذا كان بإمكانك الحصول على خوارزمية ثابتة ، 235 235 00:11:08,150 --> 00:11:10,320 هذا إلى حد كبير أفضل ما يمكنك القيام به. 236 236 00:11:10,320 --> 00:11:12,800 ثاني أفضل شيء هو اللوغاريتمي. 237 237 00:11:12,800 --> 00:11:15,800 ولاحظ أنه لوغاريتم للأساس اثنين. 238 238 00:11:15,800 --> 00:11:18,370 وسنرى بعض الخوارزميات 239 239 00:11:18,370 --> 00:11:20,530 التي لديها تعقيد هذا الوقت. 240 240 00:11:20,530 --> 00:11:22,840 هذا باللون الأزرق الغامق. 241 241 00:11:22,840 --> 00:11:26,220 وكما نرى ، يبدأ نوع من التسلق. 242 242 00:11:26,220 --> 00:11:28,250 لذلك كلما زاد عدد العناصر ، 243 243 00:11:28,250 --> 00:11:29,490 عدد الخطوات يرتفع. 244 244 00:11:29,490 --> 00:11:32,440 ولكن بعد ذلك يتم إيقافه وهو إلى حد كبير 245 245 00:11:32,440 --> 00:11:34,160 تقريبا وقت ثابت. 246 246 00:11:34,160 --> 00:11:36,070 إذا كنت تستطيع تحقيق السجل 247 247 00:11:36,070 --> 00:11:39,410 إلى التعقيد الزمني الأساسي اثنين N ، هذا رائع. 248 248 00:11:39,410 --> 00:11:41,800 لن نرى أي شيء مع 249 249 00:11:41,800 --> 00:11:43,850 أعتقد أن هذا هو الجذر التربيعي ، الجذر التربيعي لـ N 250 250 00:11:43,850 --> 00:11:46,340 لكننا سنرى بعض الخوارزميات الخطية. 251 251 00:11:46,340 --> 00:11:49,280 لقد ناقشنا بالفعل الوقت الخطي. 252 252 00:11:49,280 --> 00:11:51,860 وهذا هو الرسم البياني باللون الأخضر. 253 253 00:11:51,860 --> 00:11:55,210 لذلك إذا كان لديك 10 عناصر ، فستتخذ 10 خطوات ، 254 254 00:11:55,210 --> 00:11:57,120 20 عنصرًا ، 20 خطوة. 255 255 00:11:57,120 --> 00:11:59,690 لا يجب أن تكون مطابقة تامة كهذه. 256 256 00:11:59,690 --> 00:12:01,630 إنه نمط أكثر للنمو. 257 257 00:12:01,630 --> 00:12:04,430 لذلك إذا كان نمط النمو خطيًا ، 258 258 00:12:04,430 --> 00:12:06,500 إنه تسلسل خطي ، ثم الرسم البياني 259 259 00:12:06,500 --> 00:12:07,470 سيبدو هكذا. 260 260 00:12:07,470 --> 00:12:09,320 وهذا ما بدا عليه بالنسبة لنا 261 261 00:12:09,320 --> 00:12:11,330 إضافة السكر إلى خوارزمية الشاي. 262 262 00:12:11,330 --> 00:12:13,440 لم نبدأ من الصفر. 263 263 00:12:13,440 --> 00:12:16,680 إذا كنت لا تريد السكريات ، فمن الواضح أنه لا توجد خطوات ، 264 264 00:12:16,680 --> 00:12:19,420 لكن خوارزميتنا هي إضافة السكر إلى الشاي الخاص بك ، 265 265 00:12:19,420 --> 00:12:22,380 بحيث يفترض أنه سيكون هناك سكر مضاف. 266 266 00:12:22,380 --> 00:12:26,340 وبالتالي ، فإن الحد الأدنى لعدد الخطوات لسكر واحد هو أربعة. 267 267 00:12:26,340 --> 00:12:27,900 لذلك سنبدأ في الواقع من أربعة 268 268 00:12:27,900 --> 00:12:30,640 ولكن بعد ذلك نذهب ستة ، ثمانية ، 10 ، وما إلى ذلك. 269 269 00:12:30,640 --> 00:12:32,490 ولذا فهو تقدم خطي. 270 270 00:12:32,490 --> 00:12:36,550 هذا الخط البرتقالي الآن هو N log للأساس اثنين N. 271 271 00:12:36,550 --> 00:12:40,190 إذن نضرب هنا اللوغاريتمات في القاعدة اثنين N 272 272 00:12:40,190 --> 00:12:41,890 بعدد العناصر. 273 273 00:12:41,890 --> 00:12:43,360 وسنرى بعض الخوارزميات 274 274 00:12:43,360 --> 00:12:45,070 التي لديها تعقيد هذا الوقت. 275 275 00:12:45,070 --> 00:12:49,140 هذا أسوأ من الخطي لأنه كما ترون 276 276 00:12:49,140 --> 00:12:52,610 عدد الخطوات المطلوبة يرتفع بشكل أكثر حدة. 277 277 00:12:52,610 --> 00:12:55,870 ومن ثم بالطبع أسوأ من ذلك هو التربيعي 278 278 00:12:55,870 --> 00:12:58,330 وسنبدأ في البحث عن خوارزميات الفرز 279 279 00:12:58,330 --> 00:13:02,710 التي تحتوي في الواقع على تعقيد زمني للوقت التربيعي. 280 280 00:13:02,710 --> 00:13:04,690 وهذا تسلق أكثر حدة. 281 281 00:13:04,690 --> 00:13:06,820 هذا هو الخط الأحمر المتقطع. 282 282 00:13:06,820 --> 00:13:10,640 وبالتالي ، إذا كان لديك 10 عناصر ، فسيستغرق الأمر 100 خطوة 283 283 00:13:10,640 --> 00:13:12,530 لأن هذا سيكون 10 تربيع. 284 284 00:13:12,530 --> 00:13:15,020 وبالتالي ، إذا كانت لديك خوارزمية تربيعية ، 285 285 00:13:15,020 --> 00:13:16,360 هذا يتحلل بسرعة. 286 286 00:13:16,360 --> 00:13:19,100 1000 عنصر هو بالفعل مليون خطوة. 287 287 00:13:19,100 --> 00:13:21,910 لذا ضع هذا الرسم البياني في الاعتبار عندما ننظر 288 288 00:13:21,910 --> 00:13:23,150 في الخوارزميات المختلفة. 289 289 00:13:23,150 --> 00:13:26,040 الأفضل المطلق هو الوقت الثابت. 290 290 00:13:26,040 --> 00:13:28,780 إذا لم تتمكن من الحصول على ذلك ، فأنت تريد وقتًا لوغاريتميًا ، 291 291 00:13:28,780 --> 00:13:30,480 سجل إلى الأساس الثاني N. 292 292 00:13:30,480 --> 00:13:32,670 لا يزال الوقت الخطي جيدًا 293 293 00:13:32,670 --> 00:13:37,250 بمجرد أن تبدأ في الصعود إلى N log N و N تربيع. 294 294 00:13:37,250 --> 00:13:39,490 يمكنك أن ترى أن عدد الخطوات المطلوبة 295 295 00:13:39,490 --> 00:13:43,233 يرتفع بشكل حاد مع زيادة عدد العناصر. 296 296 00:13:46,490 --> 00:13:49,010 في الختام ، هذا ما يجب أن تتذكره حقًا ، 297 297 00:13:49,010 --> 00:13:51,580 تعطينا علامة O الكبيرة طريقة للمقارنة 298 298 00:13:51,580 --> 00:13:54,140 التعقيد الزمني للخوارزميات المختلفة 299 299 00:13:54,140 --> 00:13:57,940 بطريقة موضوعية ، بطريقة مستقلة عن الأجهزة. 300 300 00:13:57,940 --> 00:14:00,848 حسنًا ، هذا كل شيء الآن بالنسبة لتدوين O الكبير. 301 301 00:14:00,848 --> 00:14:05,060 سنعيد النظر في هذا أثناء مرورنا بالدورة. 302 302 00:14:05,060 --> 00:14:06,710 لذلك سأراك في الفيديو التالي. 32820

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.