1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> HOPARLÖR 1: Hey everyone! 3 00:00:12,300 --> 00:00:13,890 Bölümüne hoş geldiniz. 4 00:00:13,890 --> 00:00:17,480 Burada hem çok görmek sevindim, ve çevrimiçi izliyor herkes. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Yani, her zamanki karşılama arkası gibi. 7 00:00:20,920 --> 00:00:24,360 Hepinize güzel olduğunu umuyoruz geri kalanı tam haftasonu, gevşeme. 8 00:00:24,360 --> 00:00:26,026 Dün dışarı güzeldi. 9 00:00:26,026 --> 00:00:27,525 Yani, ben dışarıda zevk umuyoruz. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Duyurular yüzden ilk bir çift. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Puanlama. 14 00:00:32,700 --> 00:00:37,350 Yani, sizin en kazanılmış olması gereken bir Kazı Kazan PSET hakkında benden e-posta, 15 00:00:37,350 --> 00:00:39,920 yanı sıra Pset 1 notlandırma. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Yani, sadece bir kaç şey. 18 00:00:42,220 --> 00:00:45,150 Style50 içinde check50 kullandığınızdan emin olun. 19 00:00:45,150 --> 00:00:47,250 Bunlar olması gerekiyordu Sizin için kaynaklar, 20 00:00:47,250 --> 00:00:50,660 Eğer alıyorsanız emin olmak için Mümkün olduğunca çok puan 21 00:00:50,660 --> 00:00:52,390 gereksiz onları kaybetmeden. 22 00:00:52,390 --> 00:00:54,407 Yani, tarzı gibi şeyler çok önemlidir. 23 00:00:54,407 --> 00:00:55,740 Biz bunun için kapalı almaya gidiyoruz. 24 00:00:55,740 --> 00:00:58,115 Bazılarınız zaten olabilir senin PSET o fark ettim. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 Ve check50 bir olduğunu emin olmak için gerçekten kolay yolu 27 00:01:01,450 --> 00:01:05,050 biz aslında dönen konum ne kullanıcıya iade edilmeleri gerekiyor, 28 00:01:05,050 --> 00:01:06,690 ve her şeyin düzgün çalışıyor. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> İkinci not, emin olun sizin Doğru klasöre şeyler yükleyerek. 31 00:01:12,040 --> 00:01:14,470 Bu benim hayatımı sadece bir yapar biraz daha zor 32 00:01:14,470 --> 00:01:18,836 Eğer PSET 1 içine Pset 2 yüklerseniz Ben şeyler indirmek zaman çünkü, 33 00:01:18,836 --> 00:01:20,085 onlar doğru indirmek yok. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 Ve ben biraz sakat olduğunu biliyorum Bir sistemde alışmak için, 36 00:01:24,560 --> 00:01:26,950 ama sadece süper Dikkatli, sadece benim için eğer, 37 00:01:26,950 --> 00:01:30,080 böylece e-posta alıyoruz zaman gibi 02:00 de ve ben sınıflandırma değilim. 38 00:01:30,080 --> 00:01:33,710 Eğer ben bakmak zorunda neden tüm etrafında Pset için. 39 00:01:33,710 --> 00:01:34,440 Serin. 40 00:01:34,440 --> 00:01:37,270 >> Ben erken olduğunu biliyorum, ama ben tamamen gafil çekilen 41 00:01:37,270 --> 00:01:40,800 Bu Cuma nedeniyle olduğunu bir deneme, bu kadar Benim profesör oh yeah, tıpkı edildi. 42 00:01:40,800 --> 00:01:42,550 Unutmayın, bir var Cuma günü nedeniyle deneme. 43 00:01:42,550 --> 00:01:45,780 Yani, ben kimsenin seviyor biliyorum ara sınav hakkında düşünmek, 44 00:01:45,780 --> 00:01:50,620 ancak ilk yarışması, 15 Ekim'de ise hangi Ekim Bu hafta başlıyor. 45 00:01:50,620 --> 00:01:53,290 Yani, er olabilir Eğer beklenenden daha hepsi. 46 00:01:53,290 --> 00:01:57,510 Böylece nöbet sırasında atılır değil Ben, ah önümüzdeki haftaki bölümü söz 47 00:01:57,510 --> 00:02:00,560 senin yarışması önümüzdeki hafta, ben düşündüm Ben daha sana biraz verirdim 48 00:02:00,560 --> 00:02:01,500 Şimdi bir kafaları. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Peki, senin sorunun set, üç numara. 51 00:02:04,660 --> 00:02:07,070 İnsanlar okudum nasıl meraktan spec? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 TAMAM MI. 54 00:02:09,199 --> 00:02:10,229 Biz bir çift var. 55 00:02:10,229 --> 00:02:12,320 Tür aşağı son gelen Bu ancak bir hafta Tamam. 56 00:02:12,320 --> 00:02:13,650 Ben güzel oldu biliyorum. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Yani Break Out. 59 00:02:16,660 --> 00:02:21,010 Kesinlikle halletmek sonra Bugün en azından senin spec okumak 60 00:02:21,010 --> 00:02:25,240 indirme gibi deneyin Dağıtım kodu ve koşu 61 00:02:25,240 --> 00:02:27,430 ilk ilk gibi onlar sizden bir şey. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Kullandığımız Çünkü Dağıtım kodu ve bir kütüphane 64 00:02:32,590 --> 00:02:36,790 biz sadece --O sadece bu using-- oldum Bu PSET yaptık ikinci kez, 65 00:02:36,790 --> 00:02:38,650 çılgın şeyler olabilir Cihazla birlikte, 66 00:02:38,650 --> 00:02:41,370 ve bunu bulmak istiyorum dışarı şimdi daha sonra karşı. 67 00:02:41,370 --> 00:02:45,570 >> Perşembe gecesi ya da eğer Çünkü Çarşamba gecesi ve nedense 68 00:02:45,570 --> 00:02:48,912 Cihazınız sadece değil kütüphane ile çalıştırmak istiyorum 69 00:02:48,912 --> 00:02:50,620 veya dağıtımda Kod, araçlar olduğunu 70 00:02:50,620 --> 00:02:52,309 hatta kodlama yapmaya başlayabilirsiniz olamaz. 71 00:02:52,309 --> 00:02:54,100 Eğer kontrol edemez çünkü çalışıp çalışmadığını görmek için. 72 00:02:54,100 --> 00:02:55,975 Sizin değil muktedir olacak derler olmadığını görmek için. 73 00:02:55,975 --> 00:03:00,500 Erken olanlar dikkat çekmek istiyorum hafta, hala bana e-posta ne zaman 74 00:03:00,500 --> 00:03:03,100 ya da diğer TF'lerin on, ve biz sabit olanlar alabilirsiniz. 75 00:03:03,100 --> 00:03:05,410 Bu nedenle konular sizi durdurmak için gidiyoruz 76 00:03:05,410 --> 00:03:07,120 Herhangi bir gerçek ilerleme yapmaktan. 77 00:03:07,120 --> 00:03:10,055 O, bir hata gibi değil Eğer sadece tür üzerinde atlayabilirsiniz. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Eğer sorunları yaşıyorsanız sizin Cihaz veya dağıtım kodu, 80 00:03:13,420 --> 00:03:16,211 Eğer gerçekten dikkat almak istiyorum er ya da geç bakımı. 81 00:03:16,211 --> 00:03:20,410 Bu yüzden bile aslında gitmeyecek eğer kodlama başlar, dağıtım indir 82 00:03:20,410 --> 00:03:24,040 Kod, spec okumak, emin olun her şey çalışıyor. 83 00:03:24,040 --> 00:03:25,134 TAMAM MI? 84 00:03:25,134 --> 00:03:27,675 Eğer sadece bunu yapabilirsiniz, ben kolay olacak hayatlarını söz veriyorum. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 Ve böylece muhtemelen gidiyoruz Şu anda doğru yapmak? 87 00:03:31,410 --> 00:03:32,100 TAMAM MI. 88 00:03:32,100 --> 00:03:33,950 Yani, orada herhangi bir sorunuz var mı? 89 00:03:33,950 --> 00:03:35,850 Herhangi bir lojistik şeyler? 90 00:03:35,850 --> 00:03:36,910 Herkes iyi? 91 00:03:36,910 --> 00:03:38,270 TAMAM MI. 92 00:03:38,270 --> 00:03:41,700 >> Olanlar için Feragat Odaya ve çevrimiçi. 93 00:03:41,700 --> 00:03:45,437 Ben geçmek için çalışıyor gidiyorum Cihazda PowerPoint arasında 94 00:03:45,437 --> 00:03:47,270 gidiyoruz, çünkü Bazı kodlama yapıyor olmak 95 00:03:47,270 --> 00:03:53,630 anonim popüler talebi bugün öneri anket Geçen hafta dışarı gönderdi. 96 00:03:53,630 --> 00:03:55,480 Yani, bazı kodlama yapıyor olacak. 97 00:03:55,480 --> 00:03:57,800 Yani, siz de isterseniz senin aletleri ateşlemek için, 98 00:03:57,800 --> 00:04:02,910 ve bir e-posta var olmalıdır Bir örnek dosya ile, benden. 99 00:04:02,910 --> 00:04:04,310 Bunu yapmak için çekinmeyin. 100 00:04:04,310 --> 00:04:07,340 >> Peki, biz hakkında konuşmak için gidiyoruz Bir hata ayıklayıcı GDB. 101 00:04:07,340 --> 00:04:09,970 Size yardım edecek tür durumlarda anlamaya 102 00:04:09,970 --> 00:04:11,860 şeyler kodunuzda yanlış gidiyor. 103 00:04:11,860 --> 00:04:15,370 Gerçekten adıma sadece bir yolu var kodunuzu bu oluyor gibi, 104 00:04:15,370 --> 00:04:19,100 ve değişkenleri yazdırmak mümkün ya da aslında neler olduğunu görmek 105 00:04:19,100 --> 00:04:22,980 kaput programı ayetler altında Sadece çalışan, bu faylanma gibi, 106 00:04:22,980 --> 00:04:25,030 ve sen hiçbir fikri gibisin ne sadece burada oldu. 107 00:04:25,030 --> 00:04:26,730 Ben başarısız hangi satır bilmiyorum. 108 00:04:26,730 --> 00:04:29,040 Yanlış nereye gitti bilmiyorum. 109 00:04:29,040 --> 00:04:31,280 Yani, GDB bu konuda size yardımcı oluyor. 110 00:04:31,280 --> 00:04:35,240 Ayrıca, karar verirseniz evet devam ve 61 almak, 111 00:04:35,240 --> 00:04:38,430 Gerçekten, gerçekten olacak senin En iyi arkadaşım, sana söyleyebilirim çünkü 112 00:04:38,430 --> 00:04:40,840 Ben bu sınıfın içinden gidiyorum çünkü. 113 00:04:40,840 --> 00:04:43,620 >> Biz ikili bakmak için gidiyoruz arama, siz hatırlarsanız 114 00:04:43,620 --> 00:04:47,540 harika bir telefon defteri örneği sınıf gözlük. 115 00:04:47,540 --> 00:04:50,620 Biz uygulama ve olacak biraz daha o yürürken, 116 00:04:50,620 --> 00:04:54,650 ve sonra dört ile gidiyoruz Kabarcık farklı sıralar, 117 00:04:54,650 --> 00:04:56,285 Seçim, Ekleme ve Birleştirme. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Serin. 120 00:04:58,330 --> 00:05:00,390 Yani, bahsettiğim GDB gibi, bir ayıklama aracıdır. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 Ve bu büyük türüdür şeyler, büyük fonksiyonlar ve komutlar 123 00:05:09,370 --> 00:05:13,240 Eğer GDB içinde kullanmak ve ben yürüyeceğim ki Bir saniye içinde bunun bir demo ile. 124 00:05:13,240 --> 00:05:15,360 >> Peki, bu sadece değil, soyut kalmak olacak. 125 00:05:15,360 --> 00:05:18,000 Ben denemek ve beton gibi yapacağız Sizin için mümkün olduğunca. 126 00:05:18,000 --> 00:05:19,870 Yani, kırmak. 127 00:05:19,870 --> 00:05:22,200 Ya sonu olacak gibi, bazı sayı, hangi 128 00:05:22,200 --> 00:05:26,900 , programınızda bir çizgi temsil ya da bir işlev adlandırabilirsiniz. 129 00:05:26,900 --> 00:05:30,150 Yani, ana kırmak derseniz, o ana duracak 130 00:05:30,150 --> 00:05:32,400 ve bu işlevi üzerinden geçelim. 131 00:05:32,400 --> 00:05:36,350 >> Aynı şekilde, bazı dış varsa Swap veya Cube gibi işlev, 132 00:05:36,350 --> 00:05:38,450 Geçen hafta baktı ki. 133 00:05:38,450 --> 00:05:41,780 Eğer onlardan biri kırmak derseniz, Program vurur zaman, o 134 00:05:41,780 --> 00:05:44,290 o sizin için bekleyeceğim ne yapacağını söyle. 135 00:05:44,290 --> 00:05:47,860 Sadece bu kadar çalıştırır önce Aslında fonksiyonu içinde adım olabilir 136 00:05:47,860 --> 00:05:49,020 ve neler bakın. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Yani, Sonraki, biraz üzerinde atlar Bir sonraki satır, fonksiyonları üzerinde gider. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Adım. 141 00:05:55,560 --> 00:05:56,810 Bunların hepsi küçük soyut. 142 00:05:56,810 --> 00:06:00,530 Yani, ben sadece içlerinden çalıştırmak için gidiyorum, ama bir saniye içinde kullanıma bunları görürsünüz. 143 00:06:00,530 --> 00:06:01,810 >> Bir işlev adım. 144 00:06:01,810 --> 00:06:04,170 Yani ben diyordum, Takas ile, it would gibi 145 00:06:04,170 --> 00:06:07,110 aslında sen sanki izin gibi fiziksel içinde adım, 146 00:06:07,110 --> 00:06:10,990 Bu değişkenler ile yapabilirsiniz karmaşa, baskı onlar ne, neler oluyor bakın. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Liste anlamıyla sadece basacaktır Çevredeki kod dışarı. 149 00:06:14,830 --> 00:06:17,570 Yani, ne tür unutursanız Eğer programda nerede, 150 00:06:17,570 --> 00:06:19,880 ya merak ediyorsanız ne etrafında oluyor 151 00:06:19,880 --> 00:06:23,790 Bu sadece bir segment yazdırılır ve çevresinde beş veya altı hatları gibi. 152 00:06:23,790 --> 00:06:26,080 Yani, odaklı alabilirsiniz nerede hakkında. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Bazı değişken yazdırın. 155 00:06:28,650 --> 00:06:34,590 Yani, anahtar gibi varsa Sezar, biz bakacağız ki. 156 00:06:34,590 --> 00:06:36,220 Sen herhangi bir noktada Yazdır Anahtarını söyleyebiliriz. 157 00:06:36,220 --> 00:06:40,070 Değeri öylesine ne söyleyeceğim Bu, belki bir yerde yol boyunca, 158 00:06:40,070 --> 00:06:42,070 Eğer anahtar overwrote. 159 00:06:42,070 --> 00:06:45,495 Aslında çünkü söyleyebilirim aslında bu değeri gözlemleyebiliriz. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Halk olarak, sadece baskılar Yerel değişkenler dışarı. 162 00:06:48,780 --> 00:06:53,120 Yani, her bir döngü içinde olduğunu, ve sadece, oh gibi görmek istiyorum. 163 00:06:53,120 --> 00:06:54,270 Benim ben nedir? 164 00:06:54,270 --> 00:06:57,020 Bu anahtar değeri nedir Ben burada başlatmak mı? 165 00:06:57,020 --> 00:06:58,537 Bu noktada mesajı nedir? 166 00:06:58,537 --> 00:07:00,370 Bu sadece tüm basacaktır Bunların, bu yüzden size o 167 00:07:00,370 --> 00:07:04,330 tek gerekmez Baskı I. Baskı Mesaj, söylüyorlar. 168 00:07:04,330 --> 00:07:04,970 Baskı Anahtarı. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 Ve sonra görüntüler. 171 00:07:07,700 --> 00:07:10,370 Ne o yapar senin gibidir Programın adım adım, 172 00:07:10,370 --> 00:07:13,980 sadece bu kadar emin olacağım belli değişken görüntüleme 173 00:07:13,980 --> 00:07:14,780 Her noktada. 174 00:07:14,780 --> 00:07:17,160 Böylece siz --O var also-- Bir kısayol nerede tür 175 00:07:17,160 --> 00:07:19,530 oh gibi devam etmek zorunda değilsiniz. 176 00:07:19,530 --> 00:07:23,150 Baskı Anahtarı veya Baskı I. Sadece Senin için bunu otomatik olarak olur. 177 00:07:23,150 --> 00:07:25,959 >> Peki, bu, biz gidiyoruz Bu nasıl gider görmek için. 178 00:07:25,959 --> 00:07:28,000 Ben denemek ve anahtar gidiyorum Benim cihazın üzerinde. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Ben bunu görün. 181 00:07:31,271 --> 00:07:31,770 Tüm. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Biz sadece bunu yansıtmak için gidiyoruz. 184 00:07:42,370 --> 00:07:44,530 Çılgın bir şey yok Benim laptop durumda. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 TAMAM MI. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Bu, tek olmalıdır. 189 00:08:01,054 --> 00:08:01,795 Çok küçük. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Bunu yapabilirim görelim. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> Tamam. 194 00:08:10,940 --> 00:08:15,305 Alice açıkça mücadele Burada biraz, 195 00:08:15,305 --> 00:08:17,995 ama biz bir momento onu alırsınız. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 TAMAM MI. 198 00:08:22,020 --> 00:08:25,900 Biz sadece bu artırmak için gidiyoruz. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 TAMAM MI. 201 00:08:29,380 --> 00:08:31,679 Herkes tür olduğunu görebilir miyim? 202 00:08:31,679 --> 00:08:32,470 Belki biraz? 203 00:08:32,470 --> 00:08:33,594 Ben biraz küçük olduğunu biliyorum. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Oldukça bilemiyorum Bu büyük yapmak nasıl. 206 00:08:37,530 --> 00:08:38,350 Herkes bilir. 207 00:08:38,350 --> 00:08:40,309 Herkes büyük yapmak nasıl biliyor mu? 208 00:08:40,309 --> 00:08:40,932 TAMAM MI. 209 00:08:40,932 --> 00:08:42,140 Biz onunla rulo gidiyoruz. 210 00:08:42,140 --> 00:08:45,801 Sadece çünkü zaten Farketmez o çocuklar gerektiğini kodu 211 00:08:45,801 --> 00:08:46,300 vardır. 212 00:08:46,300 --> 00:08:48,310 >> Daha da önemlisi Burada terminal. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 Ve biz neden bu kadar küçük burada var? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Ayarlar. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Ah. 219 00:09:08,420 --> 00:09:09,500 Gerçek Ike. 220 00:09:09,500 --> 00:09:10,880 Bu nasıl? 221 00:09:10,880 --> 00:09:11,770 Oradan. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Bu herkes için daha iyi mi? 224 00:09:21,810 --> 00:09:22,525 TAMAM MI ,. 225 00:09:22,525 --> 00:09:23,025 Serin. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Eğer bir CS olduğunuzda biliyorum sınıf teknik zorluklar 228 00:09:28,220 --> 00:09:32,971 Şeyin tür bir parçasıdır Yani, en bu temizleyin edelim. 229 00:09:32,971 --> 00:09:33,470 TAMAM MI. 230 00:09:33,470 --> 00:09:38,060 Yani, burada bölümünde, hangi biz burada vardı. 231 00:09:38,060 --> 00:09:40,830 Sezar, bir yürütülebilir dosyadır. 232 00:09:40,830 --> 00:09:41,800 Yani ben yaptım. 233 00:09:41,800 --> 00:09:46,370 Yani, GDB ile gerçekleştirmek için bir şey o sadece yürütülebilir dosyalarda çalışır. 234 00:09:46,370 --> 00:09:48,040 Yani, bir dotsy çalıştırmak edemez. 235 00:09:48,040 --> 00:09:50,532 Aslında yapmak zorunda senin kodu derler emin olun, 236 00:09:50,532 --> 00:09:51,865 ve aslında çalıştırılabilir. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Peki, eğer bu olmuyorsa emin olun derlemek, derlemek için olsun, 239 00:09:56,186 --> 00:09:57,810 böylece tür içinden çalıştırabilirsiniz. 240 00:09:57,810 --> 00:10:04,590 Yani, GDB başlatmak için, tüm yapmanız, Gloria tipi GDB, ve sonra sadece 241 00:10:04,590 --> 00:10:06,250 İstediğiniz dosya. 242 00:10:06,250 --> 00:10:08,240 Ben her zaman Sezar yanlış yazılan. 243 00:10:08,240 --> 00:10:11,730 Ama emin olmak bir çalıştırılabilir beri, 244 00:10:11,730 --> 00:10:14,210 ti en nokta flaş böylece Eğer gidiyoruz demektir 245 00:10:14,210 --> 00:10:19,240 CSI yürütmek için gidiyoruz çalıştırmak için Bu hata ayıklayıcı ile ya dosyaları. 246 00:10:19,240 --> 00:10:19,910 TAMAM MI. 247 00:10:19,910 --> 00:10:22,885 Yani, o, sen alırım anlamsız bu tür. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Bu hata ayıklayıcı hakkında sadece her şeyi var. 250 00:10:25,750 --> 00:10:28,200 Gerçekten gerek yok Şu anda bu konuda endişe. 251 00:10:28,200 --> 00:10:31,460 Gördüğünüz gibi, biz bu var Açık Pars, GSYİH, yakın Pars, 252 00:10:31,460 --> 00:10:34,690 ve sadece tür gibi görünüyor Bizim komut satırı, değil mi? 253 00:10:34,690 --> 00:10:37,010 >> Peki, biz sanıyor- ne istiyor --Yani, Ilk şey 254 00:10:37,010 --> 00:10:39,570 biz seçmek istiyoruz olduğunu Bir yerde bunu kırmak için. 255 00:10:39,570 --> 00:10:42,332 Yani, bir hata var Bu Sezar programında 256 00:10:42,332 --> 00:10:44,290 Ben, o tanıtmak biz öğrenmek için gidiyoruz. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 O girdi sürer o neyi Tüm kapaklar Barfoo ve nedense 259 00:10:56,350 --> 00:11:01,950 o sadece yaprakları A. değişmez tek başına, doğru her şey var 260 00:11:01,950 --> 00:11:03,980 ancak ikinci mektup Bir değişmeden kalır. 261 00:11:03,980 --> 00:11:07,120 Yani, biz denemek için gidiyoruz ve olduğunu anlamaya. 262 00:11:07,120 --> 00:11:10,440 Yani, ilk şey genellikle Eğer GDB günü başlayacak her yapmak istiyorum 263 00:11:10,440 --> 00:11:12,010 Bunu kırmak için nereye anlamaya olduğunu. 264 00:11:12,010 --> 00:11:14,956 >> Peki Sezar oldukça kısa bir programdır. 265 00:11:14,956 --> 00:11:16,330 Biz sadece doğru bir işlevi var? 266 00:11:16,330 --> 00:11:18,520 Sezar bizim işlevi neydi? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Sadece bir fonksiyon, Ana hakkı var? 269 00:11:24,350 --> 00:11:26,490 Ana bir fonksiyonudur Tüm programlar için. 270 00:11:26,490 --> 00:11:29,230 Eğer Main yoktu, ben belki Bir endişeli biraz şimdi olacak, 271 00:11:29,230 --> 00:11:31,000 ama hepsi orada Main vardı umuyoruz. 272 00:11:31,000 --> 00:11:34,150 Peki, ne yapabiliriz biz yapabilirsiniz olduğunu Sadece bunun gibi, Main kırmak. 273 00:11:34,150 --> 00:11:35,190 Yani, tamam, diyor. 274 00:11:35,190 --> 00:11:37,430 Biz orada bizim kesme bir set. 275 00:11:37,430 --> 00:11:42,870 >> Peki, hatırlamak şimdi bir şey Caesar tek bir komut satırı argümanı hakkını alır 276 00:11:42,870 --> 00:11:45,150 ve biz her yerde henüz o yapmadım. 277 00:11:45,150 --> 00:11:47,560 Yani, ne zaman olduğunu aslında çalıştırmak gitmek 278 00:11:47,560 --> 00:11:51,540 Program, sen herhangi bir program GDB çalışan bu komut satırı ihtiyacı 279 00:11:51,540 --> 00:11:55,010 argümanlar, girmek için gidiyoruz zaman ilk çalıştırmaya başlamak. 280 00:11:55,010 --> 00:11:59,280 Yani, bu durumda, var Üç anahtar ile çalıştırın. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 Ve aslında başlayacak. 283 00:12:02,040 --> 00:12:08,480 Burada gördüğünüz takdirde >> Yani, biz var RC 2 eşit değilse. 284 00:12:08,480 --> 00:12:12,210 Yani hepiniz varsa Ben dışarı gönderdi bu dosya 285 00:12:12,210 --> 00:12:15,100 Eğer böyle olduğunu göreceksiniz İlk satır ana işlevi, değil mi? 286 00:12:15,100 --> 00:12:17,890 Biz olup olmadığını görmek için kontrol ediyor argüman doğru sayısı. 287 00:12:17,890 --> 00:12:20,620 Yani, merak ediyorsanız RC doğru olup olmadığını, 288 00:12:20,620 --> 00:12:23,250 Sadece Baskı RC gibi bir şey yapabilirsiniz. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC olan iki Biz doğru ne bekleniyor? 291 00:12:28,640 --> 00:12:32,010 >> Peki, biz, ileri gidebilirsiniz ve içinden devam edin. 292 00:12:32,010 --> 00:12:33,200 Yani, orada bazı anahtar var. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 Ve bizim anahtar yazdırabilirsiniz Doğru olduğundan emin olmak için. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 İlginç. 297 00:12:39,500 --> 00:12:41,210 Değil tamamen ne bekleniyor. 298 00:12:41,210 --> 00:12:44,810 Yani, bir şey fark Ayrıca GDB ile, bir 299 00:12:44,810 --> 00:12:49,000 Aslında vurmak kadar olmadığını Sonraki, o sadece gördüm çizgi 300 00:12:49,000 --> 00:12:50,720 Aslında yürütülür. 301 00:12:50,720 --> 00:12:53,870 Yani, bu durumda Key Henüz atanmamış. 302 00:12:53,870 --> 00:12:57,050 Yani, Key bazı çöp değeri Orada altta gördüğünüz. 303 00:12:57,050 --> 00:13:03,680 Negatif $ 120-- --O en bir milyar ve bir şey garip şeyler değil mi? 304 00:13:03,680 --> 00:13:05,340 Biz bekleniyor Anahtar değil. 305 00:13:05,340 --> 00:13:10,720 Ama biz İleri'yi vurdu, ve eğer biz deneyin ve Yazdır tuşuna, bu üç var. 306 00:13:10,720 --> 00:13:11,710 >> Herkes görüyoruz? 307 00:13:11,710 --> 00:13:13,780 Yani, bir şey alırsanız Eğer gibi olduğunu, bekle. 308 00:13:13,780 --> 00:13:15,540 Bu tamamen Yanlış, ben bilmiyorum 309 00:13:15,540 --> 00:13:20,150 Ben hepsini istiyorum çünkü bu olacağını nasıl Bir numara atamak yapmak için, değişken, 310 00:13:20,150 --> 00:13:22,900 yazdırmayı deneyin, ileri vurmak deneyin İşe yarayıp yaramadığını tekrar, ve bakın. 311 00:13:22,900 --> 00:13:27,830 Sadece çalıştırmak için gidiyor çünkü aslında sonra bir şey atamak 312 00:13:27,830 --> 00:13:29,340 İleri çarptı. 313 00:13:29,340 --> 00:13:30,336 Herkese mantıklı? 314 00:13:30,336 --> 00:13:30,836 Ha? 315 00:13:30,836 --> 00:13:33,220 >> HOPARLÖR 2: Ne zaman rastgele sayılar ne demek? 316 00:13:33,220 --> 00:13:34,790 >> HOPARLÖR 1: Sadece rastgele değil. 317 00:13:34,790 --> 00:13:35,710 Sadece çöp var. 318 00:13:35,710 --> 00:13:38,320 Sadece bir şey olduğunu, sizin Bilgisayar rastgele atar. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Serin. 321 00:13:40,220 --> 00:13:45,760 Yani, şimdi biz aracılığıyla hareket, ve böylece edebilirsiniz Şimdi biz bu düz metin GetString var. 322 00:13:45,760 --> 00:13:48,600 Yani, bana sadece tanıştırayım ne biz burada İleri vurduğunuzda olacak. 323 00:13:48,600 --> 00:13:51,320 Bizim GDB tür sağ, kaybolur? 324 00:13:51,320 --> 00:13:55,720 Bu getString çünkü var Şimdi yürütülüyor, değil mi? 325 00:13:55,720 --> 00:14:01,460 Gördüğümüz Yani, düz metin eşittir GetString, açık Pars ve Pars, 326 00:14:01,460 --> 00:14:04,380 ve biz ileri vurmak, o vardır Aslında şimdi idam. 327 00:14:04,380 --> 00:14:06,580 Yani, o bekliyor Giriş şey bizi. 328 00:14:06,580 --> 00:14:13,560 >> Peki, biz girişine bizim gıda gidiyoruz hangi Sana söylediğim gibi o başarısız ne olduğunu 329 00:14:13,560 --> 00:14:18,020 ve bu sadece olduğunu söylüyor kapalı olduğu, yürütme bitmiş 330 00:14:18,020 --> 00:14:19,980 braket bu demektir Bu döngünün dışına çıkmadan. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Ben Yani, biz, şimdi ileri vurmak, ve olabilir emin Sezar tanıdık tüm konum, 333 00:14:25,420 --> 00:14:27,260 Bu yapacağımız bu çizgi ne olduğunu. 334 00:14:27,260 --> 00:14:32,030 Int I 0 eşittir için It, N eşittir Strlen, düz metin, ve sonra 335 00:14:32,030 --> 00:14:33,960 I, n, I, ayrıca, ayrıca daha azdır. 336 00:14:33,960 --> 00:14:35,210 Yapacaksın bu döngü nedir? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Mesajınızı açın. 339 00:14:39,160 --> 00:14:39,770 Serin. 340 00:14:39,770 --> 00:14:41,330 Yani, bunu yaparken başlayalım. 341 00:14:41,330 --> 00:14:47,210 >> Peki, bu durum gerekir Bizim ilki için, maç? 342 00:14:47,210 --> 00:14:52,250 Bir B ise, bu düz metin I. Biz bulunuyor Bizim halk hakkında bilgi alabilirsiniz. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Yani, ben sıfır ve, altı ise hangi Beklediğimiz, ve bizim anahtar üçtür. 345 00:14:57,970 --> 00:14:59,227 Mantıklı Bütün, değil mi? 346 00:14:59,227 --> 00:15:01,310 Bu numaralar hepsi tam olarak ne olması gerektiği. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Yani, mırıldanır? 349 00:15:03,870 --> 00:15:05,620 HOPARLÖR 3: Ben var maden için rastgele sayılar. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 HOPARLÖR 1: Peki, biz --we check-- olabilir Bir saniyede bu konuda sohbet edebilirsiniz. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Ama bu almak olmalıdır. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Yani, biz bir sermaye varsa İlk bir B, 356 00:15:20,130 --> 00:15:22,080 Bu durum doğru, onu yakalamak gerekir? 357 00:15:22,080 --> 00:15:27,120 Biz İleri vurmak Yani, biz görmek Bu ise aslında yürütür söyledi. 358 00:15:27,120 --> 00:15:29,220 Eğer takip ediyorsanız Çünkü kodunuzda birlikte, 359 00:15:29,220 --> 00:15:33,460 Burada bu hat, nerede düz metin I Bu aritmetik ile değiştirilir, 360 00:15:33,460 --> 00:15:35,720 Sadece If eğer yürütür durum doğru hakkı nedir? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB sadece size göstermek için gidiyor aslında yürütme şeyler. 363 00:15:40,240 --> 00:15:45,140 Bu ise koşul yerine değildi eğer öyleyse, bu kadar Sadece bir sonraki satıra atlamak için gidiyoruz. 364 00:15:45,140 --> 00:15:46,540 TAMAM MI? 365 00:15:46,540 --> 00:15:48,510 Yani, biz var. 366 00:15:48,510 --> 00:15:51,171 Bu braket bu demektir Şimdi bu döngünün dışında kapalı. 367 00:15:51,171 --> 00:15:52,420 Yani, tekrar başlatmak için gidiyor. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Sadece böyle. 370 00:15:56,280 --> 00:15:59,120 Yani, biz bilgi alabilirsiniz Burada bizim yerliler hakkında, 371 00:15:59,120 --> 00:16:02,575 ve bizim ilk görüyoruz mektup, sağ değişti? 372 00:16:02,575 --> 00:16:05,150 Olması gerektiği gibi, şimdi bir e var. 373 00:16:05,150 --> 00:16:07,360 Yani, biz devam edebilirsiniz. 374 00:16:07,360 --> 00:16:08,500 >> Ve biz bu onay var. 375 00:16:08,500 --> 00:16:09,916 Ve bu onay sağ, çalışması gerekir? 376 00:16:09,916 --> 00:16:12,570 It değiştirilmesi gerekir A. bulunuyor ileri üç harf. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Ama, biz fark ederseniz Farklı bir şey olsun. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Burada bu durumda yukarı Yani, o yakaladı o, ve böylece bu hat, idam 381 00:16:22,860 --> 00:16:28,620 Bizim B. modifiye hangi Ancak burada, bu durumda, 382 00:16:28,620 --> 00:16:32,860 biz sadece atlanır ki var, ve [gitti? L SIFF. ?] 383 00:16:32,860 --> 00:16:34,660 Yani bir şey var oluyor. 384 00:16:34,660 --> 00:16:37,780 Ne olduğunu söylüyor olduğunu, Biz burada yakalamak gerektiğini biliyorum 385 00:16:37,780 --> 00:16:39,200 ama değil. 386 00:16:39,200 --> 00:16:42,210 Herkes ne görebiliyor bizim Sorun bu hat var? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Çok dakikalık bir şey. 389 00:16:46,969 --> 00:16:48,510 Ve ayrıca kod bakmak olabilir. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Ayrıca ne çizgi unutmak line-- var orada-- ama o [Inaudible] öyle. 392 00:16:54,940 --> 00:16:55,480 Evet? 393 00:16:55,480 --> 00:16:58,639 >> HOPARLÖR 4: Bu daha büyük üzerinde bulunuyor Sayfayı kitapta okursanız. 394 00:16:58,639 --> 00:16:59,430 HOPARLÖR 1: Kesinlikle. 395 00:16:59,430 --> 00:17:02,620 Yani, hata ayıklayıcı anlayamadı Bunu, ancak hata ayıklayıcı 396 00:17:02,620 --> 00:17:05,880 Bir çizgiye aşağı alabilir Eğer çalışmıyor biliyorum. 397 00:17:05,880 --> 00:17:09,319 Ve bazen, özellikle Daha sonra dönem içinde 398 00:17:09,319 --> 00:17:12,910 Eğer yüz bir ile uğraşıyoruz birkaç yüz kod satırları, ve 399 00:17:12,910 --> 00:17:16,190 o başarısız nerede bilmiyorum, bunu yapmak için harika bir yoldur. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Yani, bizim hata buldum. 402 00:17:18,989 --> 00:17:21,530 Sen, senin dosyasında çözebilirsiniz ve sonra, tekrar çalıştırabilir 403 00:17:21,530 --> 00:17:23,029 ve her şey mükemmel çalışacak. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 Ve en büyük şey Bu tamam gibi görünebilir. 406 00:17:30,590 --> 00:17:31,090 Evet. 407 00:17:31,090 --> 00:17:31,370 Serin. 408 00:17:31,370 --> 00:17:32,744 Sizin için ne arıyorsanız biliyordu. 409 00:17:32,744 --> 00:17:34,910 Yani, ne yapacağını biliyordu. 410 00:17:34,910 --> 00:17:39,021 >> GDB çünkü sen süper yararlı olabilir Bütün bunları yazdırabilirsiniz ki sen 411 00:17:39,021 --> 00:17:39,520 olmaz. 412 00:17:39,520 --> 00:17:41,160 Bu çok daha kullanışlı printf daha var. 413 00:17:41,160 --> 00:17:43,440 Kaç kullandığınız bir printf tablolar gibi 414 00:17:43,440 --> 00:17:46,200 Bir hata, haklıydı nerede olduğunu anlamaya? 415 00:17:46,200 --> 00:17:48,450 Yani, bu, sen yok geri devam etmek zorunda, 416 00:17:48,450 --> 00:17:51,139 ve yorumlama gibi Printf, ya da dışarı yorumlama 417 00:17:51,139 --> 00:17:52,930 ve anlamaya ne Eğer baskı olmalıdır. 418 00:17:52,930 --> 00:17:55,670 Bu aslında sadece size izin verir , adım adım şeyler yazdırmak 419 00:17:55,670 --> 00:18:00,000 Eğer üzerinden gidiyoruz gibi, yani, sen yapabilirsiniz gerçek zamanlı olarak nasıl değiştiğini gözlemlemek, 420 00:18:00,000 --> 00:18:02,190 Programınızın olarak çalışıyor. 421 00:18:02,190 --> 00:18:04,390 >> Ve biraz sürer alışmak biraz. 422 00:18:04,390 --> 00:18:07,850 Ben çok sadece tür tavsiye ederim onunla birlikte biraz sinirli olmak 423 00:18:07,850 --> 00:18:08,930 şimdi için. 424 00:18:08,930 --> 00:18:13,450 Eğer üzerinden bir saat harcamak Gelecek hafta nasıl GDB kullanmayı öğrenme, 425 00:18:13,450 --> 00:18:16,140 kendinizi kurtaracak Daha sonra bu kadar zaman. 426 00:18:16,140 --> 00:18:18,750 Ve tam anlamıyla. Biz haber Bu insanlar her yıl, 427 00:18:18,750 --> 00:18:23,890 Ben aldı ve ben hatırlıyorum Sınıf, ben iyi olacak gibi oldu. 428 00:18:23,890 --> 00:18:24,700 Hayır. 429 00:18:24,700 --> 00:18:27,030 Pset 6 geldi ve ben gibi, ben öğreneceksin ediyorum 430 00:18:27,030 --> 00:18:29,500 I do not çünkü GDB nasıl kullanılacağı Burada neler oluyor biliyor. 431 00:18:29,500 --> 00:18:32,940 >> Bunu zaman alır Yani eğer küçük programlar üzerinde kullanabilirsiniz 432 00:18:32,940 --> 00:18:35,697 olmak için gidiyoruz çalışma gibi, çalışan 433 00:18:35,697 --> 00:18:37,530 gibi bir şey aracılığıyla Böyle Visionare. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Ekstra uygulama istiyorsanız Veya, eminim Ben, adamcağız programları ile gelebilir 436 00:18:42,850 --> 00:18:45,300 Eğer isterseniz sizin için debug. 437 00:18:45,300 --> 00:18:49,300 >> Ama sadece biraz zaman ayırın almak için Bunun için kullanılan, sadece onunla oynamak, 438 00:18:49,300 --> 00:18:50,550 Gerçekten de size hizmet edecektir. 439 00:18:50,550 --> 00:18:52,591 Ve bu gerçekten biri Bu işler o sadece 440 00:18:52,591 --> 00:18:57,340 denemek zorunda, ve ellerinizi kirli olsun Eğer gerçekten anlamak önce, ile. 441 00:18:57,340 --> 00:19:02,090 Ben gerçekten sadece bir kez anladım Ben, onunla hata ayıklama şeyler vardı 442 00:19:02,090 --> 00:19:08,170 ve bunun bir fikrim yok çok daha güzel nasıl er geç ayıklamak için. 443 00:19:08,170 --> 00:19:08,850 TAMAM MI. 444 00:19:08,850 --> 00:19:09,625 Serin. 445 00:19:09,625 --> 00:19:12,960 Ben bu tür benzeri biliyorum GDB bir kurs, 446 00:19:12,960 --> 00:19:16,400 ve ben kesinlikle alma çalışacak Bu büyük bir dahaki sefere bakmak için. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Serin. 449 00:19:18,280 --> 00:19:20,390 >> Peki, biz geri PowerPoint giderseniz. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Bu işe gidiyor? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 Awh. 454 00:19:30,210 --> 00:19:31,101 Evet. 455 00:19:31,101 --> 00:19:31,600 TAMAM MI. 456 00:19:31,600 --> 00:19:35,480 Yani, hiç herhangi bir ihtiyacınız olursa Bu tekrar, liste var. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Yani İkili Arama, hangi herkesin David büyük gözlük hatırlar 459 00:19:40,830 --> 00:19:42,259 yarısında telefon rehberlerini müthiş. 460 00:19:42,259 --> 00:19:44,050 Ben gerçekten alamadım Artık telefon kitaplar, 461 00:19:44,050 --> 00:19:46,530 do you nerede gibi çünkü bu gün telefon kitapları olsun? 462 00:19:46,530 --> 00:19:48,220 Ben gerçekten bilmiyorum. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 İkili Arama. 465 00:19:50,590 --> 00:19:52,464 Herkes hatırlıyor mu nasıl İkili Arama çalışmaları? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Herkes hiç? 468 00:19:55,220 --> 00:19:56,325 Evet? 469 00:19:56,325 --> 00:19:58,283 HOPARLÖR 5: zaman bilmek hangi yarısı bakmak 470 00:19:58,283 --> 00:20:01,146 o dayanarak, olurdu, ve diğer yarısı kurtulmak. 471 00:20:01,146 --> 00:20:01,896 >> HOPARLÖR 1 Kesinlikle. 472 00:20:01,896 --> 00:20:06,290 Yani, İkili Arama, bunun bir-- tür --we bölmek ve fethetmek diyoruz. 473 00:20:06,290 --> 00:20:09,170 Yani, yapacağım ne Eğer ortada bakarız 474 00:20:09,170 --> 00:20:11,990 Eğer maç ve göreceksiniz ne için arıyoruz. 475 00:20:11,990 --> 00:20:15,420 Eğer bu olmuyorsa, o zaman deneyin anlamaya, sola olacak 476 00:20:15,420 --> 00:20:16,450 yarım veya sağ yarısı. 477 00:20:16,450 --> 00:20:19,325 Eğer arıyorsanız Yani, bu olabilir alfabetik oluyor şeye, 478 00:20:19,325 --> 00:20:20,720 oh, bakın. 479 00:20:20,720 --> 00:20:22,750 Allison M önce mi geliyor? 480 00:20:22,750 --> 00:20:23,250 Evet. 481 00:20:23,250 --> 00:20:25,030 Yani, biz gidiyoruz İlk yarıda bak. 482 00:20:25,030 --> 00:20:26,450 >> Yoksa numaraları ile benzeri olabilir. 483 00:20:26,450 --> 00:20:28,830 Her şey o yapabilirsiniz karşılaştırmak, bu sıralanabilir. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Üzerinde ikili arama kullanabilirsiniz. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Yani, herkes bu hatırlamak grafiği ya da bu ne? 488 00:20:37,455 --> 00:20:39,520 Bu asimptotik Karmaşıklık var. 489 00:20:39,520 --> 00:20:42,830 Yani, bu grafik sadece ne kadar açıklar o 490 00:20:42,830 --> 00:20:46,230 gibi bir sorunu çözmek için alır Eğer şeylerin sayısını artırmak 491 00:20:46,230 --> 00:20:47,090 Bu kullandığınız. 492 00:20:47,090 --> 00:20:51,260 >> Peki, biz doğrusal zaman N, var. 493 00:20:51,260 --> 00:20:54,560 Hafifçe üzerinde iki N, varsa Daha iyi, hala süper hızlı büyür. 494 00:20:54,560 --> 00:20:58,360 Ve sonra olan Girişi var ne İkili Arama düşünün. 495 00:20:58,360 --> 00:21:03,630 Biz fark ederseniz, sizin sorun olarak çok ve çok daha fazla olur 496 00:21:03,630 --> 00:21:06,600 o sizi zaman bunu çözmek için Gerçekten bu kadar artmaz. 497 00:21:06,600 --> 00:21:09,010 Bu karşılaştırılabilir gibi Burada başında. 498 00:21:09,010 --> 00:21:10,060 Tamam, gibisin. 499 00:21:10,060 --> 00:21:13,000 Her şey burada gerçekten yok madde hangi kullandığımız bir, 500 00:21:13,000 --> 00:21:16,220 ancak, bir milyon bir milyar çıkmak. 501 00:21:16,220 --> 00:21:20,010 Sen some-- --you're bulmaya çalışıyoruz samanlıkta iğne bulmaya çalışıyor. 502 00:21:20,010 --> 00:21:21,550 >> Ben bu sorunu istiyorum düşünüyorum. 503 00:21:21,550 --> 00:21:25,850 Bu karmaşıklık, değil istiyorum lineer nedeniyle tüm sizin için 504 00:21:25,850 --> 00:21:30,049 senin olacak aracılığıyla arıyor olması biliyorum her iğne, saman şey, 505 00:21:30,049 --> 00:21:31,340 senin iğne aramaya çalışıyor. 506 00:21:31,340 --> 00:21:34,730 Ve bu bence çok eğlenceli değil. 507 00:21:34,730 --> 00:21:35,500 Ben hızlı seviyorum. 508 00:21:35,500 --> 00:21:36,620 Ben verimli seviyorum. 509 00:21:36,620 --> 00:21:40,450 Ve çalışkan öğrenciler size çocuklar, akıllıca çalışmak biliyorum, vardır 510 00:21:40,450 --> 00:21:43,010 zor değil türü bir şey, nasıl Bu algoritmalar kadar yapabilirsiniz. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Peki, biz yürümeye gidiyoruz sadece hızlı bir örnek üzerinden. 513 00:21:47,910 --> 00:21:51,090 Sizlerin olması gerektiğini düşünüyorum İkili Search bir el, 514 00:21:51,090 --> 00:21:54,352 ancak durumda herkes biraz bulanık, bunu güçlendirmek istiyoruz, 515 00:21:54,352 --> 00:21:56,310 biz sadece gitmek için gidiyoruz Burada bir örnek üzerinden. 516 00:21:56,310 --> 00:21:59,490 Eğer Yani, biz arıyoruz Dizi yedi içerir. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Peki, biz ne ilk şey Doğru, ortada bak? 519 00:22:06,010 --> 00:22:09,340 Ve ayrıca kodlama için gidiyoruz Sadece bir saniye İkili Arama. 520 00:22:09,340 --> 00:22:11,310 Yani, eğlenceli olacak. 521 00:22:11,310 --> 00:22:13,710 Yani biz bakmak Orta küçük diziler 3. 522 00:22:13,710 --> 00:22:15,501 3 7 ile aynı mı? 523 00:22:15,501 --> 00:22:16,000 Değil mi. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Altı var. 526 00:22:19,550 --> 00:22:21,480 Bu yüzden, daha az olduğu veya yedi daha büyük? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Daha az. 529 00:22:23,960 --> 00:22:24,570 Evet. 530 00:22:24,570 --> 00:22:25,170 Güzel iş adamlar. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Ben gerektiğini gibi hissediyorum şeker var, çünkü ben 533 00:22:27,360 --> 00:22:29,460 metre içine atmak istiyorum. 534 00:22:29,460 --> 00:22:30,270 Ben önümüzdeki hafta yapacağım budur. 535 00:22:30,270 --> 00:22:31,436 Bu keskin Sizi devam edecektir. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Peki, biz atmak İlk yarı, değil mi? 538 00:22:34,690 --> 00:22:35,670 o daha az oldu. 539 00:22:35,670 --> 00:22:39,325 biz her şeyi biliyoruz O sol tarafta 540 00:22:39,325 --> 00:22:41,700 daha az olacak ne biz aslında arıyoruz. 541 00:22:41,700 --> 00:22:43,491 Yani, gerek orada var buna dikkat. 542 00:22:43,491 --> 00:22:45,120 Sadece unutun. 543 00:22:45,120 --> 00:22:48,720 Yani, şimdi bizim sağ tarafına bakarsanız, ve biz, oraya orta bakmak 544 00:22:48,720 --> 00:22:50,510 ve şimdi dokuz bulunuyor. 545 00:22:50,510 --> 00:22:55,510 Böylece, 9 o-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Biz ne konum Büyüktür Doğru, arıyor? 547 00:22:57,470 --> 00:22:59,860 Yani, biz atmak için gidiyoruz sağa uzakta her şeyi. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Bu gibi. 550 00:23:01,940 --> 00:23:03,700 Şimdi, hepimiz biridir kalacaksın. 551 00:23:03,700 --> 00:23:07,760 Yani biz kontrol bu ne biz arıyoruz? öyle. 552 00:23:07,760 --> 00:23:08,970 Biz ne istediğini bulundu. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Bu yüzden bitti. 555 00:23:11,690 --> 00:23:12,550 Bilineer arayın. 556 00:23:12,550 --> 00:23:15,740 >> Ve dikkat ederseniz, biz Orada yedi girişleri vardı. 557 00:23:15,740 --> 00:23:24,320 Sadece, üç kez gibi götürdüler ama bir milyar gibi yapıyoruz, 558 00:23:24,320 --> 00:23:28,190 Siz kaç adım it would biliyorum Biz dört milyar şeyler olsaydı almak? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Herhangi bir tahmin? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Bu 32 var. 563 00:23:33,960 --> 00:23:37,110 Bir şey bulmak için 32 adım bir four milyar 564 00:23:37,110 --> 00:23:39,650 Çünkü iki güçlerin unsuru dizisi. 565 00:23:39,650 --> 00:23:43,550 Yani iki 32 dört milyar olduğunu. 566 00:23:43,550 --> 00:23:50,430 >> Hala içinde olduğunu nasıl Yani oldukça çılgın adımlar oldukça küçük bir rakam gibi 567 00:23:50,430 --> 00:23:52,650 bir şey bulmak için dört milyar elemanları. 568 00:23:52,650 --> 00:23:55,730 Bu notu Yani, biz konum Bu kod gidiyor 569 00:23:55,730 --> 00:23:58,950 böylece siz aslında can tür, bu nasıl çalıştığını görmek. 570 00:23:58,950 --> 00:24:01,520 Pekala, siz kod böylece. 571 00:24:01,520 --> 00:24:04,100 Size bir izin gidiyorum biraz konuşmak. 572 00:24:04,100 --> 00:24:07,970 Olan çevrenizdeki insanları tanıyın ne kimse son bölümde istedik. 573 00:24:07,970 --> 00:24:10,280 >> Yani çevrenizdeki insanları tanımak. 574 00:24:10,280 --> 00:24:11,305 Biraz konuşmak. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 Ve tüm Senden istiyorum adamlar şu anda sadece bir 577 00:24:15,730 --> 00:24:17,575 pseudocode bir taslağını oluşturmaya çalışın. 578 00:24:17,575 --> 00:24:18,075 TAMAM MI? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Vay. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Sizlerle istediğiniz tüm sen olduğunu Sadece bu süre durumda doldurmak için gidiyoruz. 583 00:24:29,520 --> 00:24:32,170 Yani bu üst belirledik ve alt sınır olan 584 00:24:32,170 --> 00:24:35,250 başlangıcını temsil Bizim dizinin ve bitiş. 585 00:24:35,250 --> 00:24:40,440 Ve aslında olacak döngü yoluyla ve anlamaya 586 00:24:40,440 --> 00:24:42,470 ne bu süre döngü içinde yapıyoruz. 587 00:24:42,470 --> 00:24:45,810 Eğer bir konrtol anlamaya Yani eğer >> Ben var durumlar ne orada-- bir ipucu 588 00:24:45,810 --> 00:24:46,640 biz burada var? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Eğer anlamaya istiyorsanız durumlarda, biz o yalancı kod olacak 591 00:24:51,560 --> 00:24:53,350 ve sonra biz aslında onları kod olacak. 592 00:24:53,350 --> 00:24:55,330 Ve o olacak, ben umarım olacak, düşünmek 593 00:24:55,330 --> 00:24:56,788 beklediğinizden daha biraz daha kolay olacak. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 , O kadar kod değil, çünkü Aslında, bu gerçekten iyidir. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Hı-hm? 598 00:25:35,018 --> 00:25:35,893 >> ÖĞRENCİ: [duyulamaz]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 EĞİTMEN: Evet. 601 00:25:37,650 --> 00:25:38,595 Bir şey vardı ortasında bulmak için. 602 00:25:38,595 --> 00:25:39,552 >> ÖĞRENCİ: Yani bunu kullanabilirsiniz. 603 00:25:39,552 --> 00:25:39,770 TAMAM MI. 604 00:25:39,770 --> 00:25:40,603 >> ÖĞRETİM: Mükemmel. 605 00:25:40,603 --> 00:25:42,950 Yani yapmamız gereken ilk şey. 606 00:25:42,950 --> 00:25:44,330 Yani orta bulmak. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Büyük. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Yani bir fikrin var mı nasıl olabilir Aslında kodu ile orta bulmak? 611 00:25:55,010 --> 00:25:55,980 >> ÖĞRENCİ: Evet. 612 00:25:55,980 --> 00:25:57,000 2 üzerinde n? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 EĞİTMEN: Yani n üzerinde 2. 615 00:25:59,500 --> 00:26:05,170 Yani hatırlamak için bir şey olduğunu üst ve alt sınırları değiştirmek. 616 00:26:05,170 --> 00:26:08,110 Biz kısmını daraltıcı devam Dizinin biz arıyoruz. 617 00:26:08,110 --> 00:26:11,970 Yani n üzerinde 2 sadece çalışacak ilk şey için yapıyoruz. 618 00:26:11,970 --> 00:26:17,810 Yani hesaba üst ve alt alarak, nasıl ki orta elemanı alabilirsiniz? 619 00:26:17,810 --> 00:26:20,640 Biz orta istiyorum çünkü Üst ve alt, sağ arasında? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 Mm-hm? 622 00:26:22,494 --> 00:26:23,369 >> ÖĞRENCİ: [duyulamaz]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> EĞİTMEN: Bu yüzden bazı orta var. 625 00:26:28,080 --> 00:26:32,730 Ve üst artı 2 üzerinde düşük olacak. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Korku. 628 00:26:35,690 --> 00:26:36,570 Biz oraya gitmek. 629 00:26:36,570 --> 00:26:37,280 Bir satır aşağı. 630 00:26:37,280 --> 00:26:38,560 Siz yolda. 631 00:26:38,560 --> 00:26:41,400 Yani şimdi bizim var Orta, ne yapmak istiyorsun? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Sadece genel olarak. 634 00:26:45,900 --> 00:26:47,734 Bunu kod gerekmez. 635 00:26:47,734 --> 00:26:48,335 Evet. 636 00:26:48,335 --> 00:26:49,210 ÖĞRENCİ: [duyulamaz]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 EĞİTMEN: Yani var artı çünkü İki arasındaki ortalama bulma 639 00:27:10,310 --> 00:27:10,810 Bunların. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Yani siz bir tür onları düşünüyorsanız taraftan artan bir, 642 00:27:17,370 --> 00:27:21,640 Eğer yaklaşım olarak düşünmek orta, böyle istiyorum. 643 00:27:21,640 --> 00:27:27,150 Yani eğer siz iki tarafında vardı orta ve 5 ve 7 gibi şeyler göstermeleridir. 644 00:27:27,150 --> 00:27:31,440 Size bunları birlikte eklediğinizde 12 olsun, sen 2 ile bölmek, 6. 645 00:27:31,440 --> 00:27:33,726 >> Bazen zor çalıştığını açıklamak, 646 00:27:33,726 --> 00:27:35,600 ama içinden çalışıyorsanız Bir örnek olarak, bazen 647 00:27:35,600 --> 00:27:37,962 Eğer olmadığını anlamaya yardımcı olacak Bu artı ya da eksi olmalıdır. 648 00:27:37,962 --> 00:27:38,846 Evet. 649 00:27:38,846 --> 00:27:40,830 >> ÖĞRENCİ: [Duyulmaz] tam ortasında 650 00:27:40,830 --> 00:27:43,950 nerede bir olgu olsaydı küçük sayılar çok şey var 651 00:27:43,950 --> 00:27:45,860 ve büyük bir numarası gibi? 652 00:27:45,860 --> 00:27:49,750 >> EĞİTMEN: Yani tüm ihtiyacınız Dizinin ortasıdır. 653 00:27:49,750 --> 00:27:53,010 Yani küçük sayılar bir grup vardı ve sonra bir çok sayıda 654 00:27:53,010 --> 00:27:54,799 sonunda, o önemli değil. 655 00:27:54,799 --> 00:27:56,840 Bütün mesele olduğunu onlar, sadece sıralanır konum 656 00:27:56,840 --> 00:27:59,339 ortasında bakmak istiyorum Dizi hala çünkü 657 00:27:59,339 --> 00:28:00,700 yarısında sorununuzu dilimleme. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Serin. 660 00:28:03,680 --> 00:28:06,430 Yani şimdi biz var Orta, biz şimdi ne yapacağız? 661 00:28:06,430 --> 00:28:07,150 >> ÖĞRENCİ: öneririz. 662 00:28:07,150 --> 00:28:08,150 EĞİTMEN: karşılaştırın. 663 00:28:08,150 --> 00:28:11,670 Value_wanted Yani orta karşılaştırın. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Serin. 666 00:28:15,160 --> 00:28:17,950 Yani biz burada görmek biz buraya istiyoruz bu değer. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Bu bir dizi olduğunu unutmayın. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Yani orta indeksi ifade eder. 671 00:28:26,970 --> 00:28:29,785 Bu yüzden orta değerlerini yapmak istiyorum. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Eğer isterseniz unutmayın , çift eşittir karşılaştırmak için. 674 00:28:35,650 --> 00:28:38,250 Sen tek sen eşittir yapmak sadece yeniden atamak olacak, 675 00:28:38,250 --> 00:28:41,090 ve, tabii ki, bu kadar İstediğiniz değeri olacak. 676 00:28:41,090 --> 00:28:42,300 Yani yapmayın. 677 00:28:42,300 --> 00:28:44,350 >> Yani biz eğer görmek için gidiyoruz ortada değerler 678 00:28:44,350 --> 00:28:46,460 İstediğimiz değerine eşittir. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Senin parantez unutma. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox gitmek gerekir. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Yani biz bu durumda ne yapmalıyım? 685 00:28:56,200 --> 00:28:59,360 Biz dönmek istiyoruz buysa? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Biz söylemeye çalışıyoruz. 688 00:29:02,626 --> 00:29:03,440 >> ÖĞRENCİ: off yazdırın. 689 00:29:03,440 --> 00:29:05,314 >> ÖĞRETİM: Peki, biz kapalı baskı istemiyorum. 690 00:29:05,314 --> 00:29:08,220 Yani bu burada bir bool, biz böylece doğru ya da yanlış dönmek istiyorum. 691 00:29:08,220 --> 00:29:12,280 Biz bu sayı, söylüyorsun Bir [? RRA? ?] O yüzden eğer, 692 00:29:12,280 --> 00:29:13,788 Biz sadece doğru döndürür. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Ben gerçek büyü edebilirsiniz. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> ÖĞRENCİ: Neden sıfır dönmek olmaz? 697 00:29:20,805 --> 00:29:22,930 EĞİTMEN: yapabildin Yani İsterseniz sıfır döndürür. 698 00:29:22,930 --> 00:29:26,780 Ama bu durumda çünkü Fonksiyonumuzu bir bool döndürür 699 00:29:26,780 --> 00:29:28,962 Biz doğru veya yanlış dönmek gerekiyor. 700 00:29:28,962 --> 00:29:30,920 ÖĞRENCİ: Ne zaman sen boolean ifade söyleyerek 701 00:29:30,920 --> 00:29:33,450 Eğer yanlış eşit ayarlayabilirsiniz? 702 00:29:33,450 --> 00:29:39,860 Ben söylemek istiyorum, eğer bu durum böyle üst false eşittir gibi, bir araya geldi değil. 703 00:29:39,860 --> 00:29:42,332 Sadece eğer anlayacaksınız diğer tarafta yanlış koymak? 704 00:29:42,332 --> 00:29:43,040 EĞİTMEN: Evet. 705 00:29:43,040 --> 00:29:44,820 Yani aslında sen eğer Hiç bir şey yapıyor 706 00:29:44,820 --> 00:29:49,600 gibi üst ya da daha düşüktür, Bu doğru veya yanlış döndürür 707 00:29:49,600 --> 00:29:53,850 ve aslında kötü tarzı diyelim eşit gerçek veya eşittir eşittir 708 00:29:53,850 --> 00:29:54,840 Yanlış eşittir. 709 00:29:54,840 --> 00:30:00,210 O sonuç kullanmak istiyorum senin çek olarak kendisi. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Ben istediğim gibi değil. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Ben istediğim buydu. 714 00:30:09,240 --> 00:30:13,205 Soruyorsun sana durumunda Yani bir şey hakkında gibi c bu kaydedin. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Bu yüzden int main (void) varsa ve böyle bir şey. 717 00:30:25,150 --> 00:30:31,922 Üst Ve eğer var sen ve bazı giriş 718 00:30:31,922 --> 00:30:33,630 Yapabileceğiniz soran böyle bir şey? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Doğru? 721 00:30:35,679 --> 00:30:37,470 ÖĞRENCİ: Ben çalışıyordum o [duyulamaz] yapmak. 722 00:30:37,470 --> 00:30:38,450 Bu-- Çünkü eğer 723 00:30:38,450 --> 00:30:39,200 EĞİTMEN: Sağ. 724 00:30:39,200 --> 00:30:41,197 Yani bu doğru, yanlış olmak istiyorum? 725 00:30:41,197 --> 00:30:41,780 ÖĞRENCİ: Evet. 726 00:30:41,780 --> 00:30:45,960 EĞİTMEN: Bu durumda Yani bu doğru değil eğer çalıştırmak istiyorum. 727 00:30:45,960 --> 00:30:50,510 Yani orada yapmak serin bir şey bu. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Yani ünlem hatırlıyorum nokta şeyleri olumsuzlar? 730 00:30:55,650 --> 00:30:58,270 Bu [duyulamaz] anlamına gelir diyor. 731 00:30:58,270 --> 00:31:03,590 Biz sadece bakmak Yani eğer Burada bu bölüm, şimdi etsen 732 00:31:03,590 --> 00:31:05,740 Buna değerlendirir demek Yanlış siz istediğiniz gibi. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Yanlış değil doğru olduğu Bu yürütmek demektir. 735 00:31:09,880 --> 00:31:11,037 Mantıklı mı? 736 00:31:11,037 --> 00:31:11,620 ÖĞRENCİ: Evet. 737 00:31:11,620 --> 00:31:12,453 EĞİTMEN: Korku. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 TAMAM MI. 740 00:31:14,300 --> 00:31:16,330 Yani biz sadece geri dönebilirler Bu durumda gerçek. 741 00:31:16,330 --> 00:31:20,357 Yani şimdi diğer iki var Bu durumda olgu. 742 00:31:20,357 --> 00:31:21,565 Bizim diğer iki olgu nedir? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Sadece bu şekilde yapalım. 745 00:31:32,900 --> 00:31:40,660 Yani başka ile başlayalım eğer ortada değerler 746 00:31:40,660 --> 00:31:43,230 İstediğimiz değerden daha azdır. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Yani ortada bizim değer az Aradığımız değerinden daha. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Yani bağlı olan do you Biz güncellemek istiyor düşünüyorsun? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Üst veya alt? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Üst? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Dizinin Yani hangi tarafı baktığımız olacak? 757 00:32:06,470 --> 00:32:07,500 >> ÖĞRENCİ: düşük. 758 00:32:07,500 --> 00:32:09,750 >> EĞİTMEN: Biz gidiyoruz vardır Soldaki bakıyor olması. 759 00:32:09,750 --> 00:32:11,120 Az değer küçükse Yani başka. 760 00:32:11,120 --> 00:32:14,730 Burada orta değer Yani bizim istediğimiz daha azdır. 761 00:32:14,730 --> 00:32:17,202 Yani biz almak istiyoruz Bizim dizinin sağ tarafında. 762 00:32:17,202 --> 00:32:18,910 Yani biz gidiyoruz Bizim alt sınır güncelleyin. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Bu yüzden bizim alt yeniden atamak olacak. 765 00:32:23,020 --> 00:32:25,221 Ve daha düşük olmalı ne düşünüyorsunuz? 766 00:32:25,221 --> 00:32:26,304 ÖĞRENCİ: Orta değeri var mı? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 EĞİTMEN: Yani orta value-- 769 00:32:28,820 --> 00:32:30,136 ÖĞRENCİ: Artı 1. 770 00:32:30,136 --> 00:32:31,010 EĞİTMEN: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Herkes bana neden söyleyebilir biz artı 1 var? 773 00:32:34,380 --> 00:32:35,730 >> ÖĞRENCİ: [? Hiçbir değeri var mı?] ona daha eşittir. 774 00:32:35,730 --> 00:32:36,120 >> ÖĞRETİM: Doğru. 775 00:32:36,120 --> 00:32:38,661 Biz zaten biliyoruz çünkü Bizim orta değer eşit değil 776 00:32:38,661 --> 00:32:42,750 o ve biz bunu dışlamak istiyorum sonraki tüm aramalardan. 777 00:32:42,750 --> 00:32:46,360 Eğer bu artı 1, bu unutursanız süresiz döngü gibi olacak. 778 00:32:46,360 --> 00:32:49,620 Ve sadece bir yakalanmış olacak sonsuz döngü ve sonra segfault edeceğiz 779 00:32:49,620 --> 00:32:50,370 ve kötü şeyler gidin. 780 00:32:50,370 --> 00:32:54,780 Yani her zaman değil emin olun değeri de dahil olmak üzere sadece 781 00:32:54,780 --> 00:32:55,380 baktı. 782 00:32:55,380 --> 00:32:58,530 Yani biz bir artı 1 ile dikkat çekmek. 783 00:32:58,530 --> 00:33:04,840 >> Peki şimdi bizim son durum var Emniyet uğruna hangi hep 784 00:33:04,840 --> 00:33:12,664 En değer else if, burada kontrol edebilirsiniz orta değerden büyüktür 785 00:33:12,664 --> 00:33:13,163 İstediğimiz. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Yani istediğiniz anlamına gelir sol yarısı. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Yani hangisinin biz güncellemek için gidiyoruz? 790 00:33:23,260 --> 00:33:23,760 Üst. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 Ve eşit olacak bu nedir? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Orta eksi 1, çünkü Tabii, biz istiyoruz 795 00:33:33,690 --> 00:33:38,370 Biz değiliz emin olmak için Yine o orta değerine bakarak. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 Ve sonra biz buna sahip. 798 00:33:45,110 --> 00:33:45,610 Işte bu. 799 00:33:45,610 --> 00:33:46,820 Hepsi ikili arama konumdur. 800 00:33:46,820 --> 00:33:48,190 Bu doğru, bu kötü değil mi? 801 00:33:48,190 --> 00:33:51,590 Bu 10 çizgiler gibi Beyaz boşluk ile kodu. 802 00:33:51,590 --> 00:33:57,510 Yani çok güçlü, çok kullanışlı, olacak senin sonraki psets biri bunu kullanıyor. 803 00:33:57,510 --> 00:33:59,360 Belki bu bir, ama daha sonra. 804 00:33:59,360 --> 00:34:00,670 Yani bunu öğrenmek. 805 00:34:00,670 --> 00:34:01,510 Onu seviyorum. 806 00:34:01,510 --> 00:34:02,980 Bu da koyacağız. 807 00:34:02,980 --> 00:34:05,370 Yani herkes herhangi var mı İkili arama sorular? 808 00:34:05,370 --> 00:34:06,196 Evet. 809 00:34:06,196 --> 00:34:09,840 >> ÖĞRENCİ: önemli mi sizin n, tek veya çift olup olmadığını? 810 00:34:09,840 --> 00:34:10,750 >> EĞİTMEN: Hayır 811 00:34:10,750 --> 00:34:18,150 Biz orta döküm Çünkü bir int, sadece onu keser. 812 00:34:18,150 --> 00:34:21,600 Bir tamsayı kalmak ve olacaktır bu yüzden olacak Sonunda her şeyi ile sıralamak. 813 00:34:21,600 --> 00:34:23,909 Yani bu konuda endişelenmenize gerek yok. 814 00:34:23,909 --> 00:34:24,580 Herkes iyi? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Korku. 817 00:34:26,850 --> 00:34:27,919 Serin. 818 00:34:27,919 --> 00:34:30,836 Yani, siz bu var. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Slayt gösterisi. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Bahsettiğimiz gibi Yani, ben biliyorum David karmaşıklık runtimes bahsetti. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 En iyi durumda Yani >>, sadece var Biz sürekli zaman diyoruz biri. 825 00:34:50,340 --> 00:34:51,909 Bu olabilir, neden kimse bana söyleyebilir? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Bu senaryoda ne tür gerektirecektir ki? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Mm-hm. 830 00:34:58,760 --> 00:34:59,926 >> ÖĞRENCİ: [duyulamaz] birinci-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 EĞİTMEN: Orta olmanın Yani biz gelen ilk unsur, değil mi? 833 00:35:03,830 --> 00:35:08,167 Yani birinin bir dizi ya da ne olursa olsun biz sadece arıyoruz 834 00:35:08,167 --> 00:35:09,750 ortasında şaplak dab olur. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Yani bizim en iyi durumda olduğunu. 837 00:35:13,380 --> 00:35:17,540 Muhtemelen, gerçek sorunlar değil almak sık sık [duyulamaz] ulaşacak. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Ne bizim kötü durumda olacak? 840 00:35:19,750 --> 00:35:21,270 Bizim en kötü durum günlük n. 841 00:35:21,270 --> 00:35:25,360 Ve bu bütün ile ilgisi yoktur Ben hakkında konuştuk iki şey güçler. 842 00:35:25,360 --> 00:35:30,930 >> Yani kötü durumda o anlamına gelecektir Biz aşağı dizi doğrayın zorunda 843 00:35:30,930 --> 00:35:33,270 bu birinin bir unsuru kadar. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Bu yüzden ikiye devirmek zorunda biz belki olabilir gibi birçok kez. 846 00:35:38,930 --> 00:35:41,430 Bu günlük n nedeni var bu yüzden Eğer sadece iki bölünerek tutun. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Yani varsayımlar, işler size Hiç iseniz bilmeniz gerekir 849 00:35:45,830 --> 00:35:48,050 Bir ikili arama kullanmak için gidiyoruz. 850 00:35:48,050 --> 00:35:50,680 Sizin elemanları sıralanması gerekir. 851 00:35:50,680 --> 00:35:53,890 Onlar yüzünden sıralanmış olması tek yolu var 852 00:35:53,890 --> 00:35:57,060 Eğer mümkün ise biliyorsunuz bunun yarısını dışarı atmak için. 853 00:35:57,060 --> 00:36:00,260 >> Bu karışık bir çanta olsaydı ve numaraları size, söylüyorsun 854 00:36:00,260 --> 00:36:05,380 Tamam, ben orta kontrol edeceğim numarası ve ben arıyorum numara 855 00:36:05,380 --> 00:36:08,510 daha az olduğu, sadece gidiyorum keyfi yarısını dışarı atmak için. 856 00:36:08,510 --> 00:36:11,130 Sen eğer bilemeyiz senin diğer yarısında numaralar. 857 00:36:11,130 --> 00:36:12,655 Sizin liste sıralanır vardır. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Yanı sıra, bu olabilir Önümüzde biraz gidiyor, 860 00:36:16,560 --> 00:36:18,360 ama rastgele erişim olması gerekir. 861 00:36:18,360 --> 00:36:21,940 Sen edebilmek için gereken sadece Bu orta eleman gidin. 862 00:36:21,940 --> 00:36:25,110 Eğer çapraz varsa bir şey aracılığıyla 863 00:36:25,110 --> 00:36:28,630 ya da ekstra adımlar atıyor Bu orta elemana ulaşmak için, 864 00:36:28,630 --> 00:36:31,750 log n artık çünkü değil bunu içine daha fazla iş ekliyoruz. 865 00:36:31,750 --> 00:36:34,800 Ve bu biraz yapacak İki hafta içinde daha mantıklı, 866 00:36:34,800 --> 00:36:37,950 ama ben sadece tür, önsöz istedi Size adamlar ne bir fikir vermek 867 00:36:37,950 --> 00:36:38,999 gelmek. 868 00:36:38,999 --> 00:36:40,790 Ama bu ikisi Önemli varsayımlar 869 00:36:40,790 --> 00:36:44,804 Eğer bir ikili listesi için gereken. 870 00:36:44,804 --> 00:36:45,720 Bu sıralama var emin olun. 871 00:36:45,720 --> 00:36:47,920 Bunun için büyük biri Şu anda çocuklar. 872 00:36:47,920 --> 00:36:52,170 Ve bu biz geçebiliriz Bizim türlü geri kalanı. 873 00:36:52,170 --> 00:36:56,444 Yani dört sorts-- kabarcık, ekleme, seçme ve birleştirme. 874 00:36:56,444 --> 00:36:57,485 Serin her türlü sensin. 875 00:36:57,485 --> 00:37:02,860 Siz CS 124 almaya karar verirseniz, Eğer türlü her türlü öğreneceksiniz. 876 00:37:02,860 --> 00:37:07,575 Ve bir XKCD hayranı iseniz, orada gerçekten harika bir çizgi hakkında 877 00:37:07,575 --> 00:37:11,530 Gerçekten etkisiz türlü gibi hangi ben son derece bakmak için gidiş tavsiye. 878 00:37:11,530 --> 00:37:16,170 Bunlardan biri panik tür gibi olan gibi, oh hayır, rastgele dizi dönüş olduğunu. 879 00:37:16,170 --> 00:37:16,991 Kapatma sistemi. 880 00:37:16,991 --> 00:37:17,490 Bırakın. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Yani geeky mizah her zaman iyidir. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Yani herkes tür hatırlıyor mu sadece genel bir fikir gibi 885 00:37:25,750 --> 00:37:27,810 kabarcık sıralama nasıl çalıştığını. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Sen hatırlıyor musun? 888 00:37:32,155 --> 00:37:32,755 >> ÖĞRENCİ: Evet. 889 00:37:32,755 --> 00:37:33,970 >> EĞİTMEN: Go for it. 890 00:37:33,970 --> 00:37:38,980 >> ÖĞRENCİ: Eğer üzerinden gidiyoruz Yani ve daha büyük ise, o zaman iki takas. 891 00:37:38,980 --> 00:37:39,820 >> EĞİTMEN: Mm-hm. 892 00:37:39,820 --> 00:37:40,564 Kesinlikle. 893 00:37:40,564 --> 00:37:41,730 Yani sadece yineleme. 894 00:37:41,730 --> 00:37:43,050 İki numaralarını kontrol. 895 00:37:43,050 --> 00:37:46,510 Bir önceki büyükse daha sonra bir daha, 896 00:37:46,510 --> 00:37:50,230 sadece o yüzden onları takas Bu şekilde daha yüksek sayılar tüm 897 00:37:50,230 --> 00:37:54,990 Listenin sonuna doğru kabarcık ve tüm alt numaralar kabarcık aşağı. 898 00:37:54,990 --> 00:37:59,355 >> Sana adamlar serin göstermek mi Videoyu sıralama ses efekti? 899 00:37:59,355 --> 00:38:00,480 Bu serin tür. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Robert Az önce söylediğim gibi, algoritma Yani Sadece listede adım adım olduğu, 902 00:38:05,200 --> 00:38:07,930 Bitişik değerleri takas onlar sırayla değilseniz. 903 00:38:07,930 --> 00:38:10,975 Ve sonra sadece yinelenen tutmak kadar herhangi bir swapları yapmazlar. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Çok kötü değil, değil mi? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Yani biz sadece burada hızlı bir örnek var. 908 00:38:16,319 --> 00:38:18,360 Yani bu sıralamak için gidiyor artan düzende onları. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Bu yüzden ilk gittiğinizde zaman, biz sekiz bakmak 911 00:38:23,470 --> 00:38:26,880 ve altı besbelli değil sırayla, biz onları takas. 912 00:38:26,880 --> 00:38:27,985 >> Yani bir sonraki bak. 913 00:38:27,985 --> 00:38:29,430 Sekiz ve sırayla dört değil. 914 00:38:29,430 --> 00:38:30,450 Onları değiştirin. 915 00:38:30,450 --> 00:38:32,530 Ve sonra sekiz ve iki, onları takas. 916 00:38:32,530 --> 00:38:33,470 Biz oraya gitmek. 917 00:38:33,470 --> 00:38:39,519 Yani ilk geçişten sonra, sen Biliyorum ki senin büyük sayı 918 00:38:39,519 --> 00:38:41,810 tüm yol olacak Sadece çünkü üstündeki 919 00:38:41,810 --> 00:38:44,210 sürekli olacak her şeyin daha büyük 920 00:38:44,210 --> 00:38:46,810 ve sadece kabarcık gidiyor Orada sonuna kadar tüm yol kadar. 921 00:38:46,810 --> 00:38:48,226 Bu herkes için mantıklı mı? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Serin. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Öyleyse bizim ikinci geçişte bak. 926 00:38:53,920 --> 00:38:54,980 Altı ve dört anahtar. 927 00:38:54,980 --> 00:38:55,920 Altı ve iki anahtar. 928 00:38:55,920 --> 00:38:58,700 Ve şimdi sırayla bir kaç şey var. 929 00:38:58,700 --> 00:39:02,240 Her geçişte Yani biz bizim tüm liste üzerinden yapmak, 930 00:39:02,240 --> 00:39:06,320 biz biliyoruz ki birçok sayılar gibi sonunda sıralanır olacaktır. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Bu yüzden üçüncü bir geçiş yapmak, hangisi takas olduğunu. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 Ve sonra bizim dördüncü sıfır yuvası var, geçmek. 935 00:39:15,910 --> 00:39:18,570 Ve böylece biz biliyoruz bizim Dizi sıralanır olmuştur. 936 00:39:18,570 --> 00:39:20,900 >> Ve bu büyük kabarcık sıralama ile bir şey. 937 00:39:20,900 --> 00:39:23,720 Biz biliyoruz ne zaman biz o , sıfır swap var 938 00:39:23,720 --> 00:39:26,497 her şeyin anlamı tam sırası olduğunu. 939 00:39:26,497 --> 00:39:27,580 Biz kontrol nasıl tür. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Bu yüzden de balonu kod gidiyoruz sıralama hangi da kötü değil. 942 00:39:36,480 --> 00:39:38,120 Bunların hiçbiri o kötü. 943 00:39:38,120 --> 00:39:40,210 Ben onlar biraz korkutucu görünebilir biliyorum. 944 00:39:40,210 --> 00:39:42,124 Ben çekerken ben biliyorum sınıf, hatta zaman 945 00:39:42,124 --> 00:39:44,290 için sınıf öğretiyordu İlk kez geçen yıl, 946 00:39:44,290 --> 00:39:46,165 Ben gibi ben bunu nasıl yapabilirim ki? 947 00:39:46,165 --> 00:39:48,540 Bu teoride mantıklı, ama biz aslında bu nasıl yaparsınız? 948 00:39:48,540 --> 00:39:51,420 Hangi ben de yürümek istiyorum neden Burada sizinle kodu ile. 949 00:39:51,420 --> 00:39:54,915 Yani bir pseudocode var Siz bu kez. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Yani sadece bunu aklınızdan çıkarmayın biz üzerinden geçiş üzereyiz. 952 00:39:58,970 --> 00:40:04,210 Bu yüzden bazı sayaç var Bizim swap izler 953 00:40:04,210 --> 00:40:08,370 Biz emin olmanız gerekir, çünkü biz kontrol ediyoruz ki. 954 00:40:08,370 --> 00:40:11,830 Ve biz tüm dizi yineleme biz sadece bu örnek ile yaptığımız gibi. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Eleman önce daha büyükse biz olduğun yerde sonra eleman, 957 00:40:17,325 --> 00:40:20,760 biz onları takas ve biz bizim, artırmak sayaç, biz takas kısa sürede çünkü 958 00:40:20,760 --> 00:40:23,850 bizim sayaç bildirmek istiyorum. 959 00:40:23,850 --> 00:40:26,247 Orada Herhangi bir sorunuz? 960 00:40:26,247 --> 00:40:27,580 Bir şey buraya komik görünüyor. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 ÖĞRENCİ: Eğer sıfıra sayacını musunuz Eğer döngü içinde gitmek her zaman? 963 00:40:32,350 --> 00:40:34,339 Eğer devam etmeyin geri her zaman sıfıra? 964 00:40:34,339 --> 00:40:35,505 EĞİTMEN: İlle. 965 00:40:35,505 --> 00:40:39,710 Peki ne olur biz burada geçmesi olduğunu. 966 00:40:39,710 --> 00:40:43,830 Yani olurken, bu hatırlıyorum kesintisi olmadan bir kez yürütülür. 967 00:40:43,830 --> 00:40:46,480 Yani ayarlamak için gidiyor sıfıra eşit sayaç, 968 00:40:46,480 --> 00:40:48,070 o zaman yineleme olacak. 969 00:40:48,070 --> 00:40:50,590 Içinden dolaşır gibi, bu sayacı güncelleyecektir. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Bu sayacı güncellemeleri gibi, bu bitince, bu dizinin sonuna ulaşıldığında ne zaman, 972 00:40:56,900 --> 00:41:00,830 Bizim liste sıralanır değil ise, sayaç güncellendi olacaktır. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Peki o zaman durumu kontrol eder ve Tamam, sıfırdan karşı büyüktür, diyor. 975 00:41:07,150 --> 00:41:09,290 Eğer öyleyse, bunu tekrar. 976 00:41:09,290 --> 00:41:14,340 Çok zaman sizi o sıfırlamak istiyorum geçmesi, sayaç sıfıra eşittir. 977 00:41:14,340 --> 00:41:18,240 Eğer bir Sıralanmış geçmesi durumunda dizi, hiçbir şey değiştirir 978 00:41:18,240 --> 00:41:21,355 Bu başarısız olur ve sıralanır listesini döndürür. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Bu mantıklı mı? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 ÖĞRENCİ: biraz Ölebilirim Bu. 983 00:41:26,356 --> 00:41:27,147 EĞİTMEN: Tamam. 984 00:41:27,147 --> 00:41:28,980 Başka varsa çıkageldi soru. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Evet. 987 00:41:30,680 --> 00:41:33,760 >> ÖĞRENCİ: Ne olur fonksiyonu elemanları takas için olabilir mi? 988 00:41:33,760 --> 00:41:36,900 >> EĞİTMEN: Yani biz aslında yazabilirsiniz Şimdi sağa gidiyoruz eğer. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Serin. 991 00:41:38,300 --> 00:41:42,155 Bu notu Yani, Alison gidiyor geri cihaza geçmek için. 992 00:41:42,155 --> 00:41:43,080 Çok eğlenceli olacak. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 Ve bizim hoş var Burada kabarcık sıralama şey. 995 00:41:47,390 --> 00:41:50,800 Yani zaten bisiklet yaptım dizi üzerinden. 996 00:41:50,800 --> 00:41:53,030 Bizim swapları var sıfıra eşittir. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Bu yüzden komşu takas etmek istiyorum elementler için dışarı iseniz. 999 00:41:58,440 --> 00:42:03,020 Yani ilk şey gerekiyor Bizim dizi yineleyemezsiniz yoktur. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Peki biz olabilir sizce Bizim dizi boyunca yineleme? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Biz var ve ben 0 eşittir. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Biz ben daha az olmak istiyorum n eksi 1 eksi k'dan. 1006 00:42:22,454 --> 00:42:23,870 Ve ben bir saniye o anlatacağım. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Yani bu bir optimizasyon burada olduğu, Ben her geçişten sonra dedi nasıl hatırlıyor 1009 00:42:32,830 --> 00:42:36,655 Dizi biz yoluyla ne olursa olsun on-- olduğunu biliyorum 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Yani bir geçişte sonra Bu sıralanır olduğunu biliyoruz. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 İki paso sonra bildiğimiz Bütün bu sıralanır. 1014 00:42:50,060 --> 00:42:52,750 Üç geçiş sonra Bu sıralanır biliyorum. 1015 00:42:52,750 --> 00:42:55,620 Bu arada Yani yineleme ediyorum Burada dizi ile, 1016 00:42:55,620 --> 00:43:01,090 sadece gitmek emin yapıyor olduğunu Bildiğimiz ne ile sıralanmamış. 1017 00:43:01,090 --> 00:43:01,644 TAMAM MI? 1018 00:43:01,644 --> 00:43:02,810 Bu sadece bir optimizasyon var. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Sadece safça bunu yazabilirsiniz her şeyi ile yineleme, 1021 00:43:08,210 --> 00:43:09,970 sadece uzun sürer. 1022 00:43:09,970 --> 00:43:12,470 Bu dört döngü sayesinde var Sadece güzel bir optimizasyon 1023 00:43:12,470 --> 00:43:18,460 biz her tam sonra biliyorum çünkü Burada dizi ile yineleme, 1024 00:43:18,460 --> 00:43:24,050 Burada her tam döngü gibi, biz biliyoruz Bu elemanların bir kez daha bu 1025 00:43:24,050 --> 00:43:25,760 sonunda sıralanır. 1026 00:43:25,760 --> 00:43:28,294 >> Bu yüzden bu konuda endişelenmenize gerek yoktur. 1027 00:43:28,294 --> 00:43:29,710 Bu herkes için mantıklı mı? 1028 00:43:29,710 --> 00:43:30,950 Bu serin küçük hile? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Bu durumda, eğer öyleyse biz yineleme ediyoruz 1031 00:43:37,270 --> 00:43:50,590 biz kontrol etmek istediğini biliyorum Dizi n ve n artı 1 sıradadır. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 TAMAM MI. 1034 00:43:53,559 --> 00:43:54,600 Yani burada pseudocode var. 1035 00:43:54,600 --> 00:43:57,540 Biz kontrol etmek istediğiniz dizi n ve n + 1 düzenindedir. 1036 00:43:57,540 --> 00:43:59,520 Yani biz orada ne olabilir? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Bazı koşullu olacak. 1039 00:44:03,120 --> 00:44:04,220 Bu bir if olacak. 1040 00:44:04,220 --> 00:44:07,066 >> ÖĞRENCİ: dizi n ise dizi n-plus 1 'den daha azdır. 1041 00:44:07,066 --> 00:44:07,816 EĞİTMEN: Hı-hı. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 De, daha az ya da daha büyük olabilir. 1044 00:44:10,699 --> 00:44:11,615 ÖĞRENCİ: Büyüktür. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Sonra onları takas etmek istiyorum. 1047 00:44:17,620 --> 00:44:18,570 Kesinlikle. 1048 00:44:18,570 --> 00:44:23,570 Yani şimdi biz ne içine almak Bunları takas mekanizması? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Yani biz bu kısaca geçti, takas fonksiyonu bir tip geçen hafta. 1051 00:44:28,137 --> 00:44:29,595 Herkes nasıl çalıştığını hatırlıyor mu? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Yani biz sadece sağ, onları yeniden atamak değil mi? 1054 00:44:34,950 --> 00:44:36,640 Bunlardan biri kaybolmak Çünkü. 1055 00:44:36,640 --> 00:44:41,696 Dediğimiz Eğer bir sonra B'ye ve eşittir A eşittir, her ikisi de bir anda 1056 00:44:41,696 --> 00:44:43,150 B. sadece eşit 1057 00:44:43,150 --> 00:44:45,720 >> Peki yapmamız gereken ne ise bu geçici bir değişken var 1058 00:44:45,720 --> 00:44:49,055 bizimki bir süre birini tutmak için gidiyor Biz takas sürecinde konum. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Peki biz bazı int olacak olan Bunu atayabilirsiniz amaçlara yönelik geçici eşittir 1061 00:44:56,464 --> 00:44:59,130 hangisi için sadece, istediğiniz Eğer dökersin-- takip ediniz tutmak olun 1062 00:44:59,130 --> 00:45:01,840 yani bu durumda, ben gidiyorum dizi n-plus 1 olarak atayın. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Yani tutmak için gidiyor ne değeri ikinci blokta ise 1065 00:45:07,674 --> 00:45:08,590 Biz bakıyoruz ki. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> Ve sonra biz yapabiliriz biz gidebiliriz olduğunu önde ve yeniden atamakta dizi n artı 1, 1068 00:45:13,240 --> 00:45:14,990 Biz biz biliyoruz çünkü depolanan bir değere sahiptir. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Bu aynı zamanda büyük biridir Senin varsa seyleri bilmiyorum 1071 00:45:19,270 --> 00:45:23,780 Eğer iki geçerseniz sorunları vardı kod satırları aniden şeyler çalıştı. 1072 00:45:23,780 --> 00:45:25,880 Sipariş CS çok önemlidir. 1073 00:45:25,880 --> 00:45:29,450 Yani emin olun diyagramı İşlerin mümkünse 1074 00:45:29,450 --> 00:45:31,230 olarak aslında ne oluyor. 1075 00:45:31,230 --> 00:45:34,256 Yani şimdi biz gidiyoruz , dizi n artı 1 olarak yeniden atamak 1076 00:45:34,256 --> 00:45:36,005 Biz biz biliyoruz çünkü depolanan bir değere sahiptir. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> Ve biz dizi o atayabilirsiniz n veya bu durumda dizideki i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Çok fazla değişken. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 TAMAM MI. 1083 00:45:55,470 --> 00:46:01,500 Yani şimdi biz yeniden ettik dizi i artı 1 dizideki i ne eşit. 1084 00:46:01,500 --> 00:46:08,240 Ve şimdi geri gidebilir ve Neye dizi i atamak? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Herkes? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> ÖĞRENCİ: 10. 1089 00:46:14,010 --> 00:46:14,680 >> ÖĞRETİM: 10. 1090 00:46:14,680 --> 00:46:15,180 Kesinlikle. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 Ve son bir şey. 1093 00:46:18,640 --> 00:46:21,840 Şimdi bunu takas varsa, ne yapmamız gerekiyor? 1094 00:46:21,840 --> 00:46:23,740 Bir şey nedir bize söyleyecek 1095 00:46:23,740 --> 00:46:27,542 biz hiç bu programı sonlandırmak olur? 1096 00:46:27,542 --> 00:46:29,250 Ne biz söyler sıralı liste var? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Biz herhangi bir swapları yapmazsanız, değil mi? 1099 00:46:33,750 --> 00:46:36,900 Swap Eğer eşittir Bu sonunda sıfır. 1100 00:46:36,900 --> 00:46:42,975 Peki ne zaman biz gibi, bir takas yapmak sadece burada yaptım, biz swap güncellemek istiyoruz. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 Ve ben orada olduğunu biliyorum bir Soru erken yaklaşık yapabilirsiniz 1103 00:46:47,210 --> 00:46:49,689 yerine sıfır veya bir kullanımı gerçek veya yanlış. 1104 00:46:49,689 --> 00:46:50,980 Ve bu burada ne var. 1105 00:46:50,980 --> 00:46:52,750 Yani bu değilse swapları diyor. 1106 00:46:52,750 --> 00:47:01,310 Swap sıfır, yani eğer ki hep ben bu-- olsun benim hakikatler ve benim falses karışık. 1107 00:47:01,310 --> 00:47:03,960 Biz bize değerlendirmek istiyoruz true ve değil. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Sıfır ise, o zaman bu yanlış. 1110 00:47:09,630 --> 00:47:12,560 Eğer bunu inkâr ederse [? patlama?] doğru olur. 1111 00:47:12,560 --> 00:47:13,975 Öyleyse bu hat yürütür. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Gerçek ve sahte ve sıfır ve olanlar deli olsun. 1114 00:47:17,370 --> 00:47:20,690 Sadece yavaş yürümek içinden mantıklı olacaktır. 1115 00:47:20,690 --> 00:47:23,320 Ama ne bu küçük bulunuyor kod bit burada yok. 1116 00:47:23,320 --> 00:47:26,490 Yani bu denetler biz herhangi bir swapları yaptık. 1117 00:47:26,490 --> 00:47:30,054 Bu yüzden bir şey yanında eğer var sıfır, sahte olacak 1118 00:47:30,054 --> 00:47:31,970 ve her şey olduğu Tekrar çalıştırmak için gidiyoruz. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Serin? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> ÖĞRENCİ: molası ne yapar? 1123 00:47:36,000 --> 00:47:38,990 >> EĞİTMEN: sadece kırın döngü dışına kırılır. 1124 00:47:38,990 --> 00:47:41,570 Bu durumda olur Yani sadece programı bitirmek istiyorum 1125 00:47:41,570 --> 00:47:43,828 ve sadece olur senin sıralanmış listesi var. 1126 00:47:43,828 --> 00:47:44,536 ÖĞRENCİ: İnanılmaz. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 EĞİTMEN: Üzgünüm? 1129 00:47:49,010 --> 00:47:52,110 ÖĞRENCİ: Çünkü biz daha önce sıfır yazılı üzerinde 1 yazılı kullanılan 1130 00:47:52,110 --> 00:47:54,170 eğer sunmak Bu işe ya da olmaz. 1131 00:47:54,170 --> 00:47:54,878 >> ÖĞRETİM: Evet. 1132 00:47:54,878 --> 00:47:56,410 Yani sıfır veya 1 dönebilirsiniz. 1133 00:47:56,410 --> 00:47:58,950 Bu durumda, çünkü biz aslında değiliz fonksiyonu ile bir şey yapıyor, 1134 00:47:58,950 --> 00:48:00,150 biz sadece kırmak istiyorum. 1135 00:48:00,150 --> 00:48:02,680 Biz gerçekten umurumda değil. 1136 00:48:02,680 --> 00:48:06,960 Fren da eğer iyi dışarı bozduğu için kullanılan 1137 00:48:06,960 --> 00:48:10,710 Dört döngü veya koşullardan Eğer yürütme tutmak istemiyorum. 1138 00:48:10,710 --> 00:48:12,110 Sadece onları dışarı götürür. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Bir nüans şey biraz var. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Var gibi hissediyorum el sallayarak bir sürü, 1143 00:48:18,445 --> 00:48:19,740 gibi yakında bu konuda öğreneceksiniz. 1144 00:48:19,740 --> 00:48:20,955 >> Ama yakında bu konuda öğreneceksiniz. 1145 00:48:20,955 --> 00:48:21,500 Söz veriyorum. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 TAMAM MI. 1148 00:48:23,170 --> 00:48:24,840 Yani herkes kabarcık sıralama alır? 1149 00:48:24,840 --> 00:48:25,550 Çok kötü değil. 1150 00:48:25,550 --> 00:48:31,910 Yineleme, takas şeyler kullanarak geçici değişken ve hepimiz orada hazırsınız? 1151 00:48:31,910 --> 00:48:32,960 Serin. 1152 00:48:32,960 --> 00:48:34,080 Korku. 1153 00:48:34,080 --> 00:48:34,807 TAMAM MI. 1154 00:48:34,807 --> 00:48:35,765 Geri PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Genel olarak herhangi bir sorunuz hakkında bu kadar? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Serin. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Mm-hm. 1161 00:48:43,695 --> 00:48:45,279 >> ÖĞRENCİ: [duyulamaz] genellikle ana int. 1162 00:48:45,279 --> 00:48:46,695 Bunun için bu var var mı? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> EĞİTMEN: Yani biz sadece aradılar Sadece gerçek sıralama algoritması ile. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Eğer içinde olsaydı Daha büyük bir program gibi, 1167 00:48:56,350 --> 00:48:57,891 Eğer bir int ana bir yerlerde olurdu. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Nereye bağlı Bu algoritmayı kullanmak, 1170 00:49:02,880 --> 00:49:05,860 ne var belirleyecek onun tarafından iade edilir. 1171 00:49:05,860 --> 00:49:09,960 Ama bizim durumumuzda için, biz kesinlikle konum aslında bu yapar nasıl bakıyor 1172 00:49:09,960 --> 00:49:11,300 Bir dizi boyunca yineleme. 1173 00:49:11,300 --> 00:49:12,570 Bu yüzden bu konuda endişelenmeyin. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Bu yüzden hakkında en iyi davayı konuşuyor edildi ve İkili arama için en kötü durum senaryoları. 1176 00:49:19,830 --> 00:49:22,470 Yani bunu yapmak için de önemlidir Bizim türlü her biri için söyledi. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Peki ne düşünüyorsun kötü kabarcık tür vaka zamanı? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Siz hatırlıyor musun? 1181 00:49:30,700 --> 00:49:31,784 >> ÖĞRENCİ: N eksi 1. 1182 00:49:31,784 --> 00:49:32,700 EĞİTMEN: N eksi 1. 1183 00:49:32,700 --> 00:49:35,070 Yani orada demektir n eksi 1 karşılaştırmalar. 1184 00:49:35,070 --> 00:49:40,060 Yani gerçekleştirmek için bir şey İlk yineleme o, 1185 00:49:40,060 --> 00:49:43,360 biz karşılaştırmak geçmesi Bu iki-- böylece 1 bu. 1186 00:49:43,360 --> 00:49:46,685 Bu iki, üç, dört. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Yani bir yineleme sonra Zaten dört karşılaştırmalar var. 1189 00:49:55,050 --> 00:49:58,230 Ne zaman çalışma zamanı ve n bahsediyorum. 1190 00:49:58,230 --> 00:50:04,680 N karşılaştırmalar sayısını temsil Kaç elemanlarının bir fonksiyonu olarak 1191 00:50:04,680 --> 00:50:05,570 sahibiz. 1192 00:50:05,570 --> 00:50:06,430 TAMAM MI? 1193 00:50:06,430 --> 00:50:08,860 >> Yani biz dört var, geçer. 1194 00:50:08,860 --> 00:50:11,780 Bildiğiniz dahaki sefere biz değil Bu dikkat çekmek gerekiyor. 1195 00:50:11,780 --> 00:50:15,140 Biz, bu iki karşılaştırmak Bu iki, bu iki, 1196 00:50:15,140 --> 00:50:20,050 ve biz bu optimizasyon yoktu Ben yazdım Dört döngü ile, 1197 00:50:20,050 --> 00:50:22,750 Eğer zaten burada karşılaştırarak olacaktır. 1198 00:50:22,750 --> 00:50:26,170 Yani olurdu dizi üzerinden çalıştırmak 1199 00:50:26,170 --> 00:50:34,380 ve n karşılaştırmalar yapmak n Zaman, her zaman çünkü biz 1200 00:50:34,380 --> 00:50:36,670 o tür bir şey, biz koşuyoruz. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> Ve biz koşuyoruz her zaman Dizi, biz n karşılaştırmalar yapmak. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Yani bu bizim çalışma zamanı olduğunu Aslında n, kare hangi 1205 00:50:46,330 --> 00:50:48,400 çok kötü bizim çünkü sonu log 1206 00:50:48,400 --> 00:50:51,965 Biz dört vardı anlamına eğer milyar elemanları, bu kadar 1207 00:50:51,965 --> 00:50:55,260 dördümüz milyar almayı gidiyor yerine 32 kare. 1208 00:50:55,260 --> 00:51:01,240 Yani değil en iyi zamanı, ama bazı şeyler için, 1209 00:51:01,240 --> 00:51:04,610 Eğer içinde iseniz, biliyorsun elemanların belirli bir aralığı 1210 00:51:04,610 --> 00:51:06,540 kabarcık sıralama kullanmak iyi olabilir. 1211 00:51:06,540 --> 00:51:07,530 >> Tamam. 1212 00:51:07,530 --> 00:51:12,290 Yani şimdi iyi durumda çalışma zamanı nedir? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 ÖĞRENCİ: Sıfır? 1215 00:51:14,940 --> 00:51:16,420 Veya 1? 1216 00:51:16,420 --> 00:51:18,140 >> EĞİTMEN: Yani 1 olur bir karşılaştırma olacak. 1217 00:51:18,140 --> 00:51:19,114 Sağ. 1218 00:51:19,114 --> 00:51:20,002 >> ÖĞRENCİ: N eksi 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> ÖĞRETİM: Yani, evet. 1221 00:51:22,320 --> 00:51:22,990 Yani n eksi 1. 1222 00:51:22,990 --> 00:51:26,510 Eğer n gibi bir kavram var her zaman eksi 1, biz sadece onu düşüyorlar eğiliminde 1223 00:51:26,510 --> 00:51:31,680 Eğer var çünkü ve biz sadece n say these-- her çiftin her bir karşılaştırma. 1224 00:51:31,680 --> 00:51:36,470 Yani, 1 n olmak eksi hangi biz biz sadece yaklaşık n söyleyebilirim. 1225 00:51:36,470 --> 00:51:39,280 Eğer zamanı ile uğraşırken, Her şey yaklaşan içinde. 1226 00:51:39,280 --> 00:51:43,860 Sürece üs olarak Doğru, sen çok iyisin. 1227 00:51:43,860 --> 00:51:45,700 Biz onunla nasıl başa >> budur. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 En iyi durumda, n geçirilir, böylece , liste zaten sıralanır anlamına gelir 1230 00:51:51,780 --> 00:51:54,320 ve yaptığımız tüm aracılığıyla çalıştırılır ve sıralanır oluyor olmadığını kontrol edin. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Serin. 1233 00:51:56,855 --> 00:51:57,355 Tamam. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Burada gördüğünüz gibi Yani, biz Sadece biraz daha grafikler var. 1236 00:52:01,920 --> 00:52:02,660 Yani n kare. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Eğlenceli. 1239 00:52:05,120 --> 00:52:09,730 Çok gördüğümüz gibi n daha kötü, ve Günlük 2n çok daha kötü, çok. 1240 00:52:09,730 --> 00:52:12,060 Ve o zaman da günlük günlükleri içine almak. 1241 00:52:12,060 --> 00:52:18,020 Ve 124 almak, içine almak deli gibi günlük yıldızı gibi. 1242 00:52:18,020 --> 00:52:20,172 Eğer ilgileniyorsanız Yani, arama günlüğü yıldızı. 1243 00:52:20,172 --> 00:52:20,880 Bu eğlenceli tür. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Yani biz bu büyük grafik var. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Sadece bir kafaları yukarı, bu bir harika grafik var 1248 00:52:28,720 --> 00:52:31,350 çünkü biz sizin orta vadede Size bu incelir sormak uzun. 1249 00:52:31,350 --> 00:52:36,090 Yani sadece bir kafaları yukarı, bu var senin senin güzel hile kağıda orta vadeli 1250 00:52:36,090 --> 00:52:36,616 orada. 1251 00:52:36,616 --> 00:52:37,990 Yani biz sadece kabarcık tür baktı. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 En kötü durumda, n, n en iyi davayı kare. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 Ve biz başkalarına bakmak için gidiyoruz. 1256 00:52:44,950 --> 00:52:47,940 >> Ve gördüğünüz gibi, sadece Gerçekten iyi yapar bir 1257 00:52:47,940 --> 00:52:50,910 biz neden içine alırsınız birleştirme sıralama vardır. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Yani biz gitmek için gidiyoruz Bir sonraki ötürü-- seçim sıralama. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Herkes nasıl hatırlıyor mu Seçim sıralama çalıştı? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Göreyim seni. 1264 00:53:05,700 --> 00:53:08,210 >> ÖĞRENCİ: Temelde geçmesi Bir düzen ve yeni bir liste oluşturmak. 1265 00:53:08,210 --> 00:53:11,001 Ve elemanları koyarak konum gibi olarak, doğru yere koyun 1266 00:53:11,001 --> 00:53:11,750 Yeni listede. 1267 00:53:11,750 --> 00:53:14,040 >> EĞİTMEN: Böylece sesler Ekleme tür gibi daha. 1268 00:53:14,040 --> 00:53:15,040 Ama gerçekten yakınsın. 1269 00:53:15,040 --> 00:53:15,915 Onlar çok benzer konum. 1270 00:53:15,915 --> 00:53:17,440 Hatta ben onları bazen karışık olsun. 1271 00:53:17,440 --> 00:53:18,981 Ben gibiydi bu bölümde önce, bekle. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 TAMAM MI. 1274 00:53:20,630 --> 00:53:24,141 Yani istediğini yapmak, seçim tür 1275 00:53:24,141 --> 00:53:25,890 aklınıza gelebilecek yolu o ve yol hakkında 1276 00:53:25,890 --> 00:53:30,140 Eminim ben almak için denemek yapmak Onları o geçer ise, karışık 1277 00:53:30,140 --> 00:53:33,280 ve seçer küçük sayı ve 1278 00:53:33,280 --> 00:53:36,070 listenizin başında koyar. 1279 00:53:36,070 --> 00:53:37,730 Bu ilk nokta ile takas. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Onlar aslında benim için bir örnek var. 1282 00:53:45,370 --> 00:53:46,540 Korku. 1283 00:53:46,540 --> 00:53:50,130 Yani sadece bir yol bu-- seçim düşünmek sıralama, en küçük değeri seçin. 1284 00:53:50,130 --> 00:53:51,940 Ve biz gidiyoruz Bir örnek üzerinden çalıştırmak 1285 00:53:51,940 --> 00:53:55,320 Çünkü yardımcı olacaktır düşünüyorum Ben görseller her zaman yardımcı düşünüyorum. 1286 00:53:55,320 --> 00:53:58,510 Bu yüzden bir şey ile başlamak Bu tamamen sıralanmamış. 1287 00:53:58,510 --> 00:54:00,730 Kırmızı tasnifsiz olacak Yeşil sıralanır. 1288 00:54:00,730 --> 00:54:02,190 Her bir saniyede mantıklı olacaktır. 1289 00:54:02,190 --> 00:54:08,950 >> Bu yüzden geçmesi ve biz yineleme başından sonuna kadar. 1290 00:54:08,950 --> 00:54:12,320 Ve biz tamam, 2, demek Bizim küçük sayı. 1291 00:54:12,320 --> 00:54:15,680 Bu yüzden 2. almaya gidiyoruz ve biz gidiyoruz Bizim dizinin önüne taşımak için 1292 00:54:15,680 --> 00:54:17,734 o çünkü küçük sayı elimizde. 1293 00:54:17,734 --> 00:54:19,150 Yani bu burada ne yapıyor. 1294 00:54:19,150 --> 00:54:20,820 Sadece bu ikisini takas olacak. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Yani şimdi biz sıralamış bölüm ve bir sıralanmamış parçası. 1297 00:54:25,450 --> 00:54:27,810 Ve hatırlamak iyi ne Seçim tür hakkında 1298 00:54:27,810 --> 00:54:30,690 biz sadece seçme ediyoruz olduğunu ayıklanmamış parçası. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Eğer yalnız bırakmak sıralı bir parçası. 1301 00:54:34,527 --> 00:54:35,660 Mm-hm? 1302 00:54:35,660 --> 00:54:38,452 >> ÖĞRENCİ: ne o biliyor nasıldır karşılaştırmadan küçük 1303 00:54:38,452 --> 00:54:39,868 dizideki her bir değere yükseltilmektedir. 1304 00:54:39,868 --> 00:54:41,250 EĞİTMEN: O karşılaştırmak yapar. 1305 00:54:41,250 --> 00:54:42,041 Biz bunu atlanır seviyorum. 1306 00:54:42,041 --> 00:54:43,850 Bu genel sadece genel olduğunu. 1307 00:54:43,850 --> 00:54:44,831 Evet. 1308 00:54:44,831 --> 00:54:47,205 Biz Ben kod yazarken emin daha memnun olacağım. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Ama öncelikle bu depolamak küçük olarak eleman. 1311 00:54:53,030 --> 00:54:56,110 Sen karşılaştırmak ve Tamam, bu küçük, demek? 1312 00:54:56,110 --> 00:54:56,660 Evet. 1313 00:54:56,660 --> 00:54:57,460 Tutun. 1314 00:54:57,460 --> 00:54:58,640 İşte o küçük? 1315 00:54:58,640 --> 00:54:59,660 Hayır mı? 1316 00:54:59,660 --> 00:55:02,510 >> Bu, sizin küçüğüdür senin değere yeniden atayabilirsiniz. 1317 00:55:02,510 --> 00:55:06,340 Ve sen çok mutlu olacağım Biz kod geçmesi zaman. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Bu yüzden geçmesi, böylece o, takas Bu sıralanmamış kısmında bak. 1320 00:55:13,970 --> 00:55:15,810 Bu yüzden üç out seçmek için gidiyoruz. 1321 00:55:15,810 --> 00:55:18,890 Biz de onu koymak için gidiyoruz Bizim sıralı bölümünün sonu. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 Ve biz sadece yapmaya devam edeceğiz yapıyor, ve bunu yaparken, o. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Yani bu burada pseudocode bizim türüdür. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Biz bir saniye burada o kadar kod olacak. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Ama sadece bir şey yürümek Yüksek düzeyde aracılığıyla. 1330 00:55:37,270 --> 00:55:40,275 Sen gitmek için gidiyoruz i n eksi 2 0 eşittir. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Bu başka bir optimizasyon var. 1333 00:55:43,530 --> 00:55:45,020 Bu konuda çok fazla endişe etmeyin. 1334 00:55:45,020 --> 00:55:46,620 Yani sen diyordun. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Yakup dediğim gibi, nasıl biz yapmak bizim asgari ne izlemek? 1337 00:55:54,406 --> 00:55:55,030 Nasıl biliyor musunuz? 1338 00:55:55,030 --> 00:55:57,060 Biz karşılaştırmak zorundayız Bizim listesinde her şeyi. 1339 00:55:57,060 --> 00:55:59,600 >> Yani asgari i eşittir. 1340 00:55:59,600 --> 00:56:03,870 Sadece bu durumda söylüyor bizim asgari değerin endeksi. 1341 00:56:03,870 --> 00:56:07,660 Yani o zaman yineleme gidiyor j i artı 1 eşittir gelen ve gider. 1342 00:56:07,660 --> 00:56:11,420 Yani biz zaten biliyoruz Bu bizim ilk unsur var. 1343 00:56:11,420 --> 00:56:13,240 Biz kendisine karşılaştırmak gerekmez. 1344 00:56:13,240 --> 00:56:16,970 Bu yüzden bir sonraki karşılaştırarak başlar i artı 1 n neden biri olan 1345 00:56:16,970 --> 00:56:20,110 eksi 1, olduğu Orada dizinin sonu. 1346 00:56:20,110 --> 00:56:25,090 Ve biz dizi de eğer dedi j, dizi dakikadan daha azdır 1347 00:56:25,090 --> 00:56:29,200 Sonra nereye yeniden atamak Bizim asgari endeksleri olduğunu. 1348 00:56:29,200 --> 00:56:37,470 >> Ve min gibi, i eşit değilse nerede biz buraya üzerindeydi. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Biz öncelikle bu bir yaptım Yani seviyorum. 1351 00:56:41,790 --> 00:56:49,310 Bu durumda, en başlayacak sıfır, bu iki olmak kadar sona erecekti. 1352 00:56:49,310 --> 00:56:53,010 Yani dk sonunda ben eşit olmaz. 1353 00:56:53,010 --> 00:56:55,720 Yani bize biliyor sağlar biz onları takas gerekir. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Ben somut bir örnek gibi hissediyorum Bu çok daha fazla yardımcı olacaktır. 1356 00:57:00,470 --> 00:57:04,970 Bu yüzden çocuklar bu kadar kod olacak şimdi ve ben daha iyi olacağım düşünüyorum. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Sıralar ki bu şekilde çalışmak eğilimindedir sadece onları görmek için sık sık daha iyi. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Yani biz yapmak istiyoruz ne biz ilk küçük istiyoruz 1361 00:57:17,280 --> 00:57:19,890 dizi içindeki bir konumda elemanı. 1362 00:57:19,890 --> 00:57:21,280 Tam Jacob ne dediğini. 1363 00:57:21,280 --> 00:57:23,090 Sen nasılsa saklamak gerekir. 1364 00:57:23,090 --> 00:57:25,900 Yani biz burada başlatmak için gidiyoruz dizi üzerinden yineleme. 1365 00:57:25,900 --> 00:57:28,970 Biz söylemek için gidiyoruz bizim Sadece başlamak için ilk. 1366 00:57:28,970 --> 00:57:38,308 Bu yüzden int sahip olacak küçük i de dizi eşittir. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Yani bir şey fark, her Bu döngü yürütür zaman, 1369 00:57:45,050 --> 00:57:48,550 biz birlikte bir adım daha ileri başlıyor. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Biz başlattığınızda bu bir bak. 1372 00:57:57,440 --> 00:58:00,840 Biz yineleme dahaki sefere, Bu bir de başlıyoruz 1373 00:58:00,840 --> 00:58:02,680 ve bizim en küçük değeri atama. 1374 00:58:02,680 --> 00:58:10,450 Yani kabarcık sıralama çok benzer Bildiğimiz nerede tek geçişte bundan sonra, 1375 00:58:10,450 --> 00:58:11,700 Bu son unsur sıralanır. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Seçim tür, tam tersi var. 1378 00:58:15,120 --> 00:58:18,950 >> Her geçişte, biz biliyoruz İlki sıralanır. 1379 00:58:18,950 --> 00:58:21,360 İkinci geçişte sonra, İkinci bir sıralanacaktır. 1380 00:58:21,360 --> 00:58:26,470 Ve slayt örneklerle gördüğümüz gibi, Bizim sıralanmış kısmı sadece büyümeye devam ediyor. 1381 00:58:26,470 --> 00:58:34,020 Yani bizim küçük birini ayarlayarak diziler i, tüm bu yapıyor 1382 00:58:34,020 --> 00:58:37,340 daraltıcı ne Biz böylece bakıyoruz 1383 00:58:37,340 --> 00:58:40,164 sayısını en aza indirmek için karşılaştırmalar biz yapmak. 1384 00:58:40,164 --> 00:58:41,770 Bu herkese mantıklı mı? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Yapılacak bu aracılığıyla çalıştırmak için bana ihtiyacın Tekrar yavaş veya farklı bir deyişle? 1387 00:58:46,380 --> 00:58:47,180 Ben mutluyum. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 TAMAM MI. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Yani depolamak Bu noktada, bir değer, 1392 00:58:55,540 --> 00:58:57,840 ama biz de indeksi saklamak istiyorum. 1393 00:58:57,840 --> 00:59:01,010 Bu yüzden saklamak için gidiyoruz küçük pozisyonu 1394 00:59:01,010 --> 00:59:02,770 Sadece i olacak biri. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Şimdi Yakup memnun. 1397 00:59:05,440 --> 00:59:06,870 Biz saklanan şeyler var. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 Ve şimdi biz bakmak gerekir Dizinin ayıklanmamış parçası. 1400 00:59:11,870 --> 00:59:18,170 Bu durumda, bu yüzden Bizim sıralanmamış olur. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Bu i. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 TAMAM MI. 1405 00:59:26,210 --> 00:59:30,040 >> Peki yapacağız ne Bir döngü için olacak. 1406 00:59:30,040 --> 00:59:32,066 Size ihtiyaç duyarsan Bir dizi boyunca yineleme, 1407 00:59:32,066 --> 00:59:33,440 Aklını bir döngü için gidebiliriz. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Bazı int k Yani Biz ne düşünüyorsunuz equals-- 1410 00:59:38,090 --> 00:59:39,700 k ile başlamak için eşit olacak? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Bu bizim küçük olarak ayarlandı ne değer ve biz bunu karşılaştırmak istiyorum. 1413 00:59:44,766 --> 00:59:47,090 Biz bunu karşılaştırmak ne istiyorsun? 1414 00:59:47,090 --> 00:59:48,730 Bu doğru, bu bir sonraki olacak? 1415 00:59:48,730 --> 00:59:53,200 Bu yüzden başlatılması için k istediğiniz i artı 1 başlatmak için. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> Ve biz bu durumda k istiyoruz biz Zaten boyutu burada sakladığınız, 1418 01:00:02,800 --> 01:00:03,930 bu yüzden biz sadece boyutu kullanabilirsiniz. 1419 01:00:03,930 --> 01:00:06,240 Boyut dizinin boyutu olmak. 1420 01:00:06,240 --> 01:00:09,620 Ve biz sadece istiyoruz biri her seferinde k güncelleyin. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Serin. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Yani şimdi biz bulmalıyız Burada küçük elemanı. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Yani biz yineleme, biz söylemek istiyorum k dizisi 1427 01:00:31,380 --> 01:00:37,080 en küçük value-- daha azdır biz aslında olduğun yerde bu 1428 01:00:37,080 --> 01:00:42,950 ne kayıtlarını tutmak küçük ötürü-- 1429 01:00:42,950 --> 01:00:47,740 sonra yeniden atamak istiyoruz Bizim en küçük değeri nedir. 1430 01:00:47,740 --> 01:00:50,645 >> Bu ah, biz konum anlamına gelir Burada yineleme. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Ne olursa olsun değer burada olduğunu bizim küçük şey. 1433 01:00:53,740 --> 01:00:54,448 Biz bunu istemiyoruz. 1434 01:00:54,448 --> 01:00:56,100 Biz bunu yeniden atamak istiyoruz. 1435 01:00:56,100 --> 01:01:02,050 Biz yeniden atama eğer Peki, ne yapmak Burada bu kodda olabileceğini düşünüyorum? 1436 01:01:02,050 --> 01:01:04,160 Biz yeniden atamak istiyoruz küçük ve konumu. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Peki şimdi küçük nedir? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 ÖĞRENCİ: Dizi k. 1441 01:01:09,130 --> 01:01:09,963 EĞİTMEN: Dizi k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 Ve pozisyonu şimdi ne? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Indeksleri neler var Bizim küçük değeri? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Sadece k var. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Dizi k, k Yani, onlar kadar maç. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Yani biz yeniden atamak istedik. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 Ve biz, bizim küçük bulundu, sonra sonra döngüsü için bu sonunda böylece 1454 01:01:39,950 --> 01:01:45,100 Burada biz bulduk ne bizim küçük değer, böylece biz sadece takas. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Bu durumda, gibi bizim, demek en küçük değeri burada olduğunu. 1457 01:01:50,816 --> 01:01:51,940 Bu bizim en küçük değerdir. 1458 01:01:51,940 --> 01:01:57,690 >> Biz sadece hangi burada takas etmek istiyorum ne altındaki bu takas fonksiyonu 1459 01:01:57,690 --> 01:02:01,270 biz sadece yazdığı, yaptım Birlikte birkaç dakika önce. 1460 01:02:01,270 --> 01:02:02,775 Bu yüzden tanıdık gelecektir. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 Ve o zaman sadece yineleme olacak aracılığıyla tüm yol ulaşana kadar 1463 01:02:08,030 --> 01:02:13,100 Size demektir sonuna kadar sıralanmamış sıfır elemanlara sahip 1464 01:02:13,100 --> 01:02:14,800 ve her şey sıralanır olmuştur. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Mantıklı? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Daha somut Biraz? 1469 01:02:19,280 --> 01:02:19,990 Kod yardım? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> ÖĞRENCİ: Bir boyutu için, asla gerçekten tanımlamak veya değiştirmek, 1472 01:02:26,410 --> 01:02:27,340 nasıl biliyor? 1473 01:02:27,340 --> 01:02:32,380 >> EĞİTMEN: Yani bir şey için int boyutu burada fark. 1474 01:02:32,380 --> 01:02:35,680 Yani biz bu sort-- tür söylüyorsun bu bir işlevi olduğunu case-- 1475 01:02:35,680 --> 01:02:40,770 Seçim sıralama, o geçti oluyor fonksiyonu ile. 1476 01:02:40,770 --> 01:02:43,460 O geçti değildi Yani içinde, bir şey yapacağını 1477 01:02:43,460 --> 01:02:47,840 Dizinin uzunluğu gibi veya yineleme olur 1478 01:02:47,840 --> 01:02:49,390 uzunluğunu bulmak için. 1479 01:02:49,390 --> 01:02:52,680 Ama geçti çünkü olarak, biz sadece kullanabilirsiniz. 1480 01:02:52,680 --> 01:02:55,720 Sadece kullanıcı varsayalım Size geçerli bir boyut verdi 1481 01:02:55,720 --> 01:02:57,698 Aslında temsil hakkında dizisinin boyutu. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Serin? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Siz bu herhangi bir sorun varsa, veya daha fazla uygulama kodlama türlü istiyorum 1486 01:03:05,870 --> 01:03:08,050 kendi, sen-meli study.cs50 gidin. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Bu bir araçtır. 1489 01:03:12,670 --> 01:03:15,040 Onlar bir denetleyicisi var aslında yazabilirsiniz. 1490 01:03:15,040 --> 01:03:16,180 Onlar pseudocode yapmak. 1491 01:03:16,180 --> 01:03:19,310 Onlar daha fazla video ve slaytlar var Ben burada kullanmak olanlar da dahil olmak üzere. 1492 01:03:19,310 --> 01:03:23,150 Eğer hala hissettiğiniz Yani eğer Biraz bulanık, bu deneyin. 1493 01:03:23,150 --> 01:03:25,670 Her zaman olduğu gibi, çok konuş benimle gel. 1494 01:03:25,670 --> 01:03:26,320 Soru? 1495 01:03:26,320 --> 01:03:28,611 >> ÖĞRENCİ: Eğer söylüyorsun boyutu daha önce tanımlandığı gibidir? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 EĞİTMEN: Evet. 1498 01:03:29,900 --> 01:03:35,570 Boyut önce yukarı tanımlanır Burada fonksiyon bildiriminde. 1499 01:03:35,570 --> 01:03:39,060 Yani o geçirilen oldu varsayalım kullanıcı tarafından ve basitlik aşkına, 1500 01:03:39,060 --> 01:03:41,896 Biz varsaymak için gidiyoruz Kullanıcı bize doğru boyutu verdi. 1501 01:03:41,896 --> 01:03:43,240 Serin. 1502 01:03:43,240 --> 01:03:44,390 Yani seçim nevi. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Beyler, ben bugün çok şey öğreniyorum biliyorum. 1505 01:03:47,640 --> 01:03:49,710 Bu bölüm için yoğun bir veri var. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Bununla Yani, biz gidiyoruz Ekleme tür gitmek için. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> Tamam. 1510 01:04:02,510 --> 01:04:06,100 Yani daha önce yapmamız gereken Burada bizim zamanı analizi. 1511 01:04:06,100 --> 01:04:10,190 En iyi durumda Yani Seni gösterdi beri verilen 1512 01:04:10,190 --> 01:04:11,960 Tablo zaten ben tür onu ele verdi. 1513 01:04:11,960 --> 01:04:15,430 Ama en iyi durumda çalışma zamanı, ne düşünüyorsun? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Her şey sıralanır. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N kare. 1518 01:04:22,070 --> 01:04:24,780 Herkes bir açıklama var Sizce niçin? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> ÖĞRENCİ: Sen through-- karşılaştırarak konum 1521 01:04:30,519 --> 01:04:31,268 EĞİTMEN: Sağ. 1522 01:04:31,268 --> 01:04:32,540 Sen aracılığıyla karşılaştırarak ediyoruz. 1523 01:04:32,540 --> 01:04:35,630 Her tekrarda, olsa biz tek bu azaltma konum 1524 01:04:35,630 --> 01:04:38,950 Hala aracılığıyla arıyor ediyoruz Her şey küçük olanı bulmak için. 1525 01:04:38,950 --> 01:04:42,390 Yani bile en küçük değeri başında burada 1526 01:04:42,390 --> 01:04:44,710 Hala karşılaştırarak konum her şeyin karşı 1527 01:04:44,710 --> 01:04:46,550 en küçük bir şey olduğundan emin olun. 1528 01:04:46,550 --> 01:04:49,820 Yani geçen bitireceğiz Yaklaşık n defa kare. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Tamam. 1531 01:04:51,590 --> 01:04:52,785 Ve en kötü durum nedir? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Eğer gidiyoruz çünkü Ayrıca n kare Aynı prosedür yapıyor. 1534 01:04:57,980 --> 01:05:01,670 Bu durumda, bir seçim yüzden sıralama şey vardır 1535 01:05:01,670 --> 01:05:04,010 biz de beklenen çalışma zamanı diyoruz ki. 1536 01:05:04,010 --> 01:05:07,400 Yani diğerleri, biz sadece biliyoruz alt ve üst sınırları. 1537 01:05:07,400 --> 01:05:11,180 Nasıl deli bağlı bizim Liste veya ne kadar sıralanmamış olduğunu, 1538 01:05:11,180 --> 01:05:15,350 onlar n veya n kare arasında değişmektedir. 1539 01:05:15,350 --> 01:05:16,550 Biz bilmiyoruz. 1540 01:05:16,550 --> 01:05:22,820 >> Ama seçim sıralama aynı çünkü En kötü ve en iyi durumda, o bize söyler 1541 01:05:22,820 --> 01:05:25,880 giriş ne olursa olsun biz tipi tamamen olsun, bilgisi 1542 01:05:25,880 --> 01:05:29,130 sıralanır veya tamamen bu kadar sıralanır ters 1543 01:05:29,130 --> 01:05:30,740 zaman aynı miktarda alacak. 1544 01:05:30,740 --> 01:05:33,760 Yani bu durumda, eğer Masamıza gelen hatırlıyorum, 1545 01:05:33,760 --> 01:05:38,610 aslında bir değeri vardı ki Bu iki türlü yok 1546 01:05:38,610 --> 01:05:40,390 hangi beklenen çalışma zamanı olduğunu. 1547 01:05:40,390 --> 01:05:43,350 Yani biz biliyoruz ne zaman ki Biz seçim sıralama çalıştırın, 1548 01:05:43,350 --> 01:05:45,380 o kadar garantili Bir n kare zamanı çalıştırın. 1549 01:05:45,380 --> 01:05:46,630 Orada hiçbir değişkenlik yoktur. 1550 01:05:46,630 --> 01:05:47,630 Sadece bekleniyor. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 Ve yine, öğrenmek istiyorsanız daha İlkbahar CS 124 almak. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Tamam. 1555 01:05:56,712 --> 01:05:57,545 Biz bunu gördük. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Serin. 1558 01:05:59,030 --> 01:06:00,930 Yani yerleştirme sıralama. 1559 01:06:00,930 --> 01:06:03,330 Ve muhtemelen gidiyorum Bu yoluyla yangını. 1560 01:06:03,330 --> 01:06:05,440 Ben siz bunu kod olmaz. 1561 01:06:05,440 --> 01:06:06,580 Biz sadece bunun üzerinden yürümek gerekir. 1562 01:06:06,580 --> 01:06:10,500 Yani ekleme sıralama tür Seçim tür benzer 1563 01:06:10,500 --> 01:06:14,460 ki biz de bir sıralanmamış var ve dizinin parçası sıralanır. 1564 01:06:14,460 --> 01:06:20,260 >> Ama ne farklı olduğunu Biz tek tek geçmesi gibi, 1565 01:06:20,260 --> 01:06:24,210 biz sadece ne olursa olsun numara almak Bizim Sıralanmamış sonraki bir 1566 01:06:24,210 --> 01:06:28,507 ve doğru sıralamak Bizim sıralı diziye. 1567 01:06:28,507 --> 01:06:30,090 Bir örnek daha mantıklı olacak. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Yani her şey ayrımı yapılmamış diğer olarak başlar, Sadece seçim tür gibi. 1570 01:06:35,430 --> 01:06:38,740 Ve biz bu sıralamak için gidiyoruz Biz olmuştur olarak sipariş artan. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Bizim ilk geçişte Yani İlk değer alır 1573 01:06:43,340 --> 01:06:46,700 ve biz Tamam, sen demek, Şimdi kendiniz bir listede. 1574 01:06:46,700 --> 01:06:49,150 >> Bir listede Çünkü kendiniz, sen sıralanır. 1575 01:06:49,150 --> 01:06:52,460 Olmak için Tebrikler Bu dizideki ilk elemanı. 1576 01:06:52,460 --> 01:06:54,800 Siz zaten kendi tüm sıralanır ediyoruz. 1577 01:06:54,800 --> 01:06:58,900 Yani şimdi biz sıralamış ve bir sıralanmamış dizi. 1578 01:06:58,900 --> 01:07:01,760 Yani şimdi biz ilk almak. 1579 01:07:01,760 --> 01:07:05,600 Burada arasında olur ve burada, biz demek ki 1580 01:07:05,600 --> 01:07:08,890 Tamam, biz bakmak için gidiyoruz Bizim ayıklanmamış dizinin ilk değer 1581 01:07:08,890 --> 01:07:13,270 ve biz girişine gidiyoruz onun Sıralı dizide doğru bir yer. 1582 01:07:13,270 --> 01:07:21,460 >> Yani biz 5 almak ve biz ne Biz 5 3 büyüktür, tamam, demek 1583 01:07:21,460 --> 01:07:24,630 böylece biz sadece doğru yerleştirin Bunun sağında. 1584 01:07:24,630 --> 01:07:25,130 Biz iyiyiz. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Öyleyse bizim bir sonraki gitmek. 1587 01:07:28,420 --> 01:07:29,720 Ve biz take 2. 1588 01:07:29,720 --> 01:07:34,330 Biz tamam, 2 az, demek 3'ten, bu yüzden biliyorum öyle 1589 01:07:34,330 --> 01:07:36,220 olması gerekir Şimdi bizim listesinin ön. 1590 01:07:36,220 --> 01:07:41,800 Peki ne yapmamız aşağı 3 ve 5 itmek olduğunu ve biz o ilk yuvaya 2 taşıyın. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Yani biz sadece takarak konum olması gerektiği doğru yer. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Sonra bakmak bizim Bir sonraki, ve biz 6 söylüyorlar. 1595 01:07:49,470 --> 01:07:53,620 Yeterli, 6 daha büyüktür Bizim sıralı dizide her şeyi, 1596 01:07:53,620 --> 01:07:56,000 böylece biz sadece sonuna kadar onu etiketlemek. 1597 01:07:56,000 --> 01:07:56,960 Ve sonra 4 bakmak. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4, 6 dan daha azdır, daha az var: 5'ten ama 3'ten fazla var. 1600 01:08:03,020 --> 01:08:06,270 Yani biz sadece sağ takın 3 ve 5 arasında orta. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Yani biraz emin olmak için Daha somut bit, 1603 01:08:10,530 --> 01:08:12,280 Buradan tür ne fikri. 1604 01:08:12,280 --> 01:08:16,430 Her ayıklanmamış eleman Yani, biz nerede sıralı kısmında belirlemek 1605 01:08:16,430 --> 01:08:17,090 öyle. 1606 01:08:17,090 --> 01:08:20,680 >> Yani akılda tutarak sıralanır ve sıralanmamış, 1607 01:08:20,680 --> 01:08:26,080 biz aracılığıyla ve şekil hareket ettirmek zorunda o sıralı dizide uyuyor nereye. 1608 01:08:26,080 --> 01:08:31,460 Ve biz kaydırarak takın Bunun sağında aşağı unsurlar. 1609 01:08:31,460 --> 01:08:34,910 Ve sonra sadece tutmak biz gelene kadar yineleme 1610 01:08:34,910 --> 01:08:39,270 tamamen sıralanmış listesi var Şimdi sıfır burada sıralanmamış 1611 01:08:39,270 --> 01:08:41,720 ve sıralı kadar sürer Bizim listesinin tamamı. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Yani, yine, hatta şeyler yapmak için Daha somut biz pseudocode sahiptir. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Yani temelde i için n eksi 1 0 eşit, 1616 01:08:52,410 --> 01:08:54,790 bizim dizinin sadece uzunluğu var. 1617 01:08:54,790 --> 01:09:00,979 Biz eşit bazı eleman var İlk dizi ya da ilk endeksleri. 1618 01:09:00,979 --> 01:09:03,200 Biz eşit j ayarlayın. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 J daha büyük ise yüzden sıfır ve dizi, j eksi 1 1621 01:09:09,210 --> 01:09:11,660 daha büyüktür eleman, tüm bu yüzden yapıyor 1622 01:09:11,660 --> 01:09:17,479 emin yapıyor senin j gerçekten temsil 1623 01:09:17,479 --> 01:09:20,010 Dizinin ayrıştırılmamış bölümü. 1624 01:09:20,010 --> 01:09:30,745 >> Hala şeyler varken Yani sıralamak ve j eksi bir ne bu-- için 1625 01:09:30,745 --> 01:09:31,840 eleman o mu? 1626 01:09:31,840 --> 01:09:34,760 J Burada tanımlanan asla. 1627 01:09:34,760 --> 01:09:35,677 Bu can sıkıcı tür. 1628 01:09:35,677 --> 01:09:36,176 TAMAM MI. 1629 01:09:36,176 --> 01:09:36,689 Neyse. 1630 01:09:36,689 --> 01:09:39,899 Yani j eksi 1, sen kontrol ediyoruz daha önce eleman. 1631 01:09:39,899 --> 01:09:46,460 Tamam, unsurdur, söylüyorsun Ben diyelim Ben-- yerde önce 1632 01:09:46,460 --> 01:09:47,540 Aslında bunu çizin. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Yani bu diyelim Bizim ikinci geçişte olduğu gibi. 1635 01:09:56,830 --> 01:09:59,525 Yani ben eşit olacak 1, hangi burada. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Yani ben 1'e eşit olacak. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Bu 2, 4, 5, 6, 7 olacaktır. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Tamam. 1642 01:10:16,750 --> 01:10:20,945 Bu durumda Yani bizim eleman 4 eşit olacak. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 Ve biz bu biraz j var 1'e eşit olacak. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Ah, j azaltma olduğunu. 1647 01:10:30,971 --> 01:10:31,720 Yani budur. 1648 01:10:31,720 --> 01:10:35,680 Yani j i eşittir, bu nedenle bu nedir deyişi, biz ileriye taşımak gibi olduğunu 1649 01:10:35,680 --> 01:10:37,530 Biz sadece emin yapıyoruz Biz üzerinde değiliz ki 1650 01:10:37,530 --> 01:10:43,520 Biz çalışıyoruz bu şekilde endekslenmesi Bizim sıralanmış listeye şeyleri eklemek için. 1651 01:10:43,520 --> 01:10:49,850 >> Dolayısıyla j bu durumda 1 'e eşit olduğu zaman, yani dizi j eksi 1 Şehre dizi j eksi 1652 01:10:49,850 --> 01:10:54,610 bu ise, bu case-- 2 olduğu elemanın fazlaysa 1653 01:10:54,610 --> 01:10:57,700 sonra tüm bu yapıyor aşağı şeyler kayıyor. 1654 01:10:57,700 --> 01:11:04,790 Bu durumda, dizi j eksi bir Yani 2 dizi sıfır olurdu. 1655 01:11:04,790 --> 01:11:08,430 2, 4 daha büyük değildir bu nedenle bu idam değildir. 1656 01:11:08,430 --> 01:11:11,460 Yani vites aşağı hareket etmiyor. 1657 01:11:11,460 --> 01:11:18,790 Ne bu burada tıpkı bir aşağı sıralı dizi hareketli. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Bu durumda, gerçekten, biz sanıyor- olabilir Şimdi bu 3 yapalım. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Yani biz yürüyelim eğer Bu örnekte, biz şimdi burada değilsin. 1662 01:11:31,970 --> 01:11:32,740 Bu sıralanır. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Bu sıralanmamış. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Serin? 1667 01:11:39,860 --> 01:11:46,620 Bu yüzden, bu yüzden 2'ye eşittir Bizim eleman 3 'e eşittir. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 Ve j O ile 2 eşittir. 1670 01:11:52,270 --> 01:12:00,620 Bu yüzden biz ve bakmak Tamam, dizi j eksi biri, demek 1671 01:12:00,620 --> 01:12:03,470 elemanının daha büyük Biz bakıyoruz ki? 1672 01:12:03,470 --> 01:12:05,540 Ve cevap hakkı, evet mi? 1673 01:12:05,540 --> 01:12:11,275 4 3 ve j daha büyüktür 2, bu nedenle bu kod yürütür. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Peki şimdi biz bir dizi ne 2, burada böylece, biz onları takas. 1676 01:12:18,550 --> 01:12:25,620 Yani biz sadece Tamam, dizi, demek 2 şimdi 3 olacak. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 Ve j eşit olacak 1 j eksi 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Bu, korkunç ama Siz fikir olsun. 1681 01:12:37,200 --> 01:12:38,360 J şimdi 1'e eşittir. 1682 01:12:38,360 --> 01:12:44,360 Ve dizi j sadece olacak 4 bizim eleman, eşit. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Ben bir şey sildim ben olmamalı ya miswrote şey, 1685 01:12:48,570 --> 01:12:49,910 ama siz anladınız. 1686 01:12:49,910 --> 01:12:50,640 >> Bu n hareket. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 Bu were sonra eğer Ve bu döngü olur Tekrar ve Tamam, j şimdi 1, söyleyebilirim. 1689 01:12:57,960 --> 01:13:00,665 Ve dizi j eksi 1 şimdi 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 2 Bizim eleman daha az mı? 1692 01:13:03,760 --> 01:13:04,540 Hayır mı? 1693 01:13:04,540 --> 01:13:07,970 Yani biz ettik demektir Bu eleman takılı 1694 01:13:07,970 --> 01:13:10,110 Bizim sıralanmış diziye doğru nokta. 1695 01:13:10,110 --> 01:13:14,400 Sonra bu alabilir ve biz demek, Tamam, bizim sıralı dizi burada. 1696 01:13:14,400 --> 01:13:19,940 Ve bu sayı 6 almak ve olacaktır gibi, tamam, bu sayıdan daha az 6? 1697 01:13:19,940 --> 01:13:20,480 Hayır mı? 1698 01:13:20,480 --> 01:13:21,080 Serin. 1699 01:13:21,080 --> 01:13:22,680 Biz iyiyiz. 1700 01:13:22,680 --> 01:13:23,530 >> Tekrar yapın. 1701 01:13:23,530 --> 01:13:24,740 Biz 7 söylüyorlar. 1702 01:13:24,740 --> 01:13:29,010 Sonunda daha az 7 mi Bizim sıralı dizinin? 1703 01:13:29,010 --> 01:13:29,520 Hayır. 1704 01:13:29,520 --> 01:13:30,430 Bu yüzden iyiyiz. 1705 01:13:30,430 --> 01:13:32,760 Yani bu sıralama olacaktır. 1706 01:13:32,760 --> 01:13:38,610 Temelde tüm bu yapar o take söylüyor edilir 1707 01:13:38,610 --> 01:13:42,060 ilk elemanı senin sıralanmamış dizi, 1708 01:13:42,060 --> 01:13:46,010 nereye gittiğini anlamaya senin sıralı dizide. 1709 01:13:46,010 --> 01:13:48,780 Ve bu sadece ilgilenir swap yapmak. 1710 01:13:48,780 --> 01:13:51,300 Sen temelde sadece takas ediyoruz kadar doğru yerde var. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 görsel resim sen olduğunu bunu yaparken her şeyi aşağı hareket. 1713 01:13:56,990 --> 01:13:59,420 >> Yani yarım kabarcık sıralama-vari gibi. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Çalışma 50 göz atın. 1716 01:14:03,420 --> 01:14:06,000 Ben çok çalışıyorum tavsiye Kendi bu kod. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Eğer herhangi bir sorun varsa veya isterseniz Bir ekleme sıralama için örnek kod bakın, 1719 01:14:12,450 --> 01:14:13,750 lütfen bana bildirin. 1720 01:14:13,750 --> 01:14:14,500 Ben her zaman etrafında değilim. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Yani en kötü durum zamanı ve en iyi durumda çalışma zamanı. 1723 01:14:20,200 --> 01:14:30,700 Eğer adam zaten tablodan gördüğümüz gibi o kare ve n oluyor hem de n, seni gösterdi. 1724 01:14:30,700 --> 01:14:35,590 >> Yani bir tür konuştuk ne gidiyor önceki türlü hakkında, kötü 1725 01:14:35,590 --> 01:14:38,760 durumda çalışma zamanı ise o tamamen sıralanmamış var, 1726 01:14:38,760 --> 01:14:42,530 bu n kez tüm karşılaştırmak zorundayız. 1727 01:14:42,530 --> 01:14:47,020 Biz karşılaştırmalar bir sürü yapmak Bu ters sırada ise, çünkü 1728 01:14:47,020 --> 01:14:50,360 biz Tamam, bu demek için gidiyoruz Bu iyi, aynı 1729 01:14:50,360 --> 01:14:54,650 ve bu karşılaştırıldığında gerekecektir İlk birine karşı geri taşınacak. 1730 01:14:54,650 --> 01:14:56,710 Ve biz doğru olsun Kuyruk ucu, biz var 1731 01:14:56,710 --> 01:14:59,440 , karşılaştırmak, ve her şeye karşı karşılaştırın. 1732 01:14:59,440 --> 01:15:03,030 >> Yani olmak biter Yaklaşık n kare. 1733 01:15:03,030 --> 01:15:09,510 O zaman doğru ise Eğer iyisin, 2, tamam, demek. 1734 01:15:09,510 --> 01:15:11,330 3, 2 olarak karşılaştırıldığında ediyoruz. 1735 01:15:11,330 --> 01:15:12,310 Iyisin. 1736 01:15:12,310 --> 01:15:14,150 4, sadece kuyruk karşılaştırın. 1737 01:15:14,150 --> 01:15:14,990 Iyisin. 1738 01:15:14,990 --> 01:15:17,140 6, sen iyisin, kuyruk karşılaştırın. 1739 01:15:17,140 --> 01:15:20,870 Yani her nokta için zaten var ise sıralanır, bir karşılaştırma yapıyoruz. 1740 01:15:20,870 --> 01:15:22,320 Yani sadece n var. 1741 01:15:22,320 --> 01:15:26,840 Ve biz en iyi durumda çalışma zamanı var çünkü n ve n bir kötü durumda çalışma zamanı 1742 01:15:26,840 --> 01:15:28,680 kare, hiçbir beklenen zamanını var. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Sadece bağlıdır Orada bizim listesinin kaos. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 Ve yine, bir başka grafik ve başka bir tablo. 1747 01:15:39,530 --> 01:15:41,170 Türlü arasındaki farklar Yani. 1748 01:15:41,170 --> 01:15:44,180 Ben sadece esinti gidiyorum, ben biz yoğun konuştuk ettik gibi hissediyorum 1749 01:15:44,180 --> 01:15:46,570 nasıl her türlü hakkında bir farklılık ve birlikte bağlantı. 1750 01:15:46,570 --> 01:15:50,564 Yani sıralama sonuncusu birleştirme Ben sizi delik olacaktır. 1751 01:15:50,564 --> 01:15:52,105 Biz oldukça renkli bir resim var. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Yani sıralama yinelemeli bir algoritma olduğunu birleştirme. 1754 01:15:56,040 --> 01:15:59,910 Yani siz ne biliyor musun bir özyinelemeli işlevi nedir? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Herkes söylemek istiyorum? 1757 01:16:03,320 --> 01:16:04,739 Sen denemek ister misin? 1758 01:16:04,739 --> 01:16:07,280 Yani bir özyinelemeli fonksiyon sadece bir kendisini çağıran bir işlev. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Böylece siz aşina iseniz Fibonacci dizisi ile, 1761 01:16:11,590 --> 01:16:15,670 çünkü ardışık kabul var Eğer önceki iki almak 1762 01:16:15,670 --> 01:16:17,530 ve bunları birbirine ekleyin sonraki bir tane almak. 1763 01:16:17,530 --> 01:16:21,440 Yani özyinelemeli, ben hep düşünüyorum Bir spiral gibi özyineleme 1764 01:16:21,440 --> 01:16:24,430 böylece içine aşağı sarmal gibisin. 1765 01:16:24,430 --> 01:16:27,150 Ama sadece bir işlev bulunuyor Bu kendini çağırır. 1766 01:16:27,150 --> 01:16:32,660 >> Ve, aslında, gerçekten hızlı ben Bu neye benzediğini size gösterebilirim. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Biz bakarsanız burada çok özyinelemeli, bu özyinelemeli yolu bir dizi üzerinde toplanacak. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Yani hepimiz yapmak olduğunu Biz toplamı fonksiyonu var 1771 01:16:47,880 --> 01:16:52,210 Bir boyut ve bir dizi alır toplamı. 1772 01:16:52,210 --> 01:16:55,210 Ve dikkat ederseniz, boyut birer Zaman azalır. 1773 01:16:55,210 --> 01:17:00,365 Ve öyle her x eşitse olduğunu zero-- yani eğer dizinin büyüklüğü 1774 01:17:00,365 --> 01:17:02,710 sıfır döndürür zero-- eşittir. 1775 01:17:02,710 --> 01:17:10,440 >> Aksi takdirde bu özetliyor dizinin son elemanı, 1776 01:17:10,440 --> 01:17:14,790 ve daha sonra bir miktar alır Dizinin kalanı. 1777 01:17:14,790 --> 01:17:17,555 Yani sadece aşağı kırılıyor küçük ve daha küçük sorunlarla. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Uzun lafın kısası, yineleme, kendisini çağıran fonksiyon. 1780 01:17:21,890 --> 01:17:25,740 Bu, bu çıktı hepsi buysa, Bu bir özyinelemeli fonksiyon budur. 1781 01:17:25,740 --> 01:17:29,870 Eğer 51 alırsanız, çok alacak, yineleme ile çok rahat. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Bu gerçekten harika. 1784 01:17:32,370 --> 01:17:34,660 Sanki de mantıklı Dışarı 03:00 bir gece. 1785 01:17:34,660 --> 01:17:37,900 Ve ben, neden böyle oldu Ben bu kullanmak hiç? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Temelde, birleştirme tür Yani ne yapacak bu kadar olduğunu 1788 01:17:42,430 --> 01:17:45,620 Onu yıkmak ve onu kırmak için gidiyor Sadece tek unsurlar var kadar aşağı. 1789 01:17:45,620 --> 01:17:47,570 Tek elemanlar sıralamak kolay. 1790 01:17:47,570 --> 01:17:48,070 Biz görüyoruz. 1791 01:17:48,070 --> 01:17:50,760 Eğer bir eleman varsa, bu kadar Zaten sıralı kabul. 1792 01:17:50,760 --> 01:17:53,800 N elemanlı bir girişi Yani, n, en az 2 olması durumunda, 1793 01:17:53,800 --> 01:17:58,120 sadece aracı çünkü dönmek biz gördüğümüz gibi, 0 veya 1 ya var. 1794 01:17:58,120 --> 01:18:00,050 Bu Sıralı elemanlar olarak kabul edilir. 1795 01:18:00,050 --> 01:18:02,170 >> Aksi takdirde ikiye bölünürler. 1796 01:18:02,170 --> 01:18:06,336 Ikinci sıralamak, ilk yarıyı sıralamak Yarım ve daha sonra onları bir araya birleştirme. 1797 01:18:06,336 --> 01:18:07,460 Neden birleştirme sıralama denir. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Bu sıralamak edeceğiz Yani biz burada var. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Bu yüzden onlara sahip tutmak Dizi boyutu 1 kadar. 1802 01:18:17,210 --> 01:18:20,790 Bu yüzden 1 olduğunda, biz sadece geri dönmek Bu sıralanmış bir dizi olduğu için, 1803 01:18:20,790 --> 01:18:23,940 ve bu bir sıralı dizi olduğunu ve var sıralanmış bir dizi, hepimiz sıralanır ediyoruz. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Öyleyse biz ne biz ise onları bir arada birleştirme başlar. 1806 01:18:29,420 --> 01:18:31,820 >> Yani yol yapabilirsiniz birleşme olduğunu düşünmek 1807 01:18:31,820 --> 01:18:36,240 Sadece küçük kaldırmak alt dizilerin her biri sayısı 1808 01:18:36,240 --> 01:18:38,330 ve sadece ortaya diziye ekleyebilir. 1809 01:18:38,330 --> 01:18:44,290 Yani eğer biz zaman, buraya bak Bu setleri, biz 4, 6, ve 1 var. 1810 01:18:44,290 --> 01:18:47,280 Bu birleştirmek istediğinizde, bu ilk iki bakmak 1811 01:18:47,280 --> 01:18:50,730 ve biz 1 küçük, tamam, demek, önden gider. 1812 01:18:50,730 --> 01:18:54,330 4 ve 6, karşılaştırmak için bir şey yok o, sadece sonuna kadar onu etiketlemek için. 1813 01:18:54,330 --> 01:18:58,020 >> Bu ikisini birleştirdiğinizde, biz sadece Bu iki küçük birini almak 1814 01:18:58,020 --> 01:18:59,310 bu yüzden 1 var. 1815 01:18:59,310 --> 01:19:01,690 Ve şimdi biz almak Bu iki nedenle 2 küçük. 1816 01:19:01,690 --> 01:19:03,330 Bu iki, 3 küçük. 1817 01:19:03,330 --> 01:19:06,260 Bu iki, 4, 5, 6 küçük. 1818 01:19:06,260 --> 01:19:08,630 Yani sadece bu çekerek ediyoruz. 1819 01:19:08,630 --> 01:19:11,210 Ve onlar var çünkü Daha önce sıralandığını, 1820 01:19:11,210 --> 01:19:14,300 Eğer sadece bir tane var karşılaştırma var her zaman. 1821 01:19:14,300 --> 01:19:19,610 Burada çok fazla kod, sadece temsili. 1822 01:19:19,610 --> 01:19:24,410 Yani ortada başlayacak ve sıralama sağ ve sol 1823 01:19:24,410 --> 01:19:26,180 ve o zaman sadece o birleştirme. 1824 01:19:26,180 --> 01:19:30,080 >> Ve biz kod yok için burada birleştirme. 1825 01:19:30,080 --> 01:19:34,110 Ama, yine, sen giderseniz 50 çalışma, orada olacağım. 1826 01:19:34,110 --> 01:19:36,860 Aksi bana konuşmak gel sen eğer yine karıştı. 1827 01:19:36,860 --> 01:19:42,340 Yani burada serin şey iyi durumda, En kötü durumda, ve beklenen çalışma zamanı 1828 01:19:42,340 --> 01:19:46,250 n, her günlüğüne olan biz ettik daha iyidir 1829 01:19:46,250 --> 01:19:48,000 Bizim türlü geri kalanı için gördüm. 1830 01:19:48,000 --> 01:19:51,840 Biz gördük n kare ettik ve aslında ne 1831 01:19:51,840 --> 01:19:54,380 hangi büyük, n log olduğunu burada olsun. 1832 01:19:54,380 --> 01:19:55,830 >> Olduğunu ne kadar iyi bak. 1833 01:19:55,830 --> 01:19:56,780 Böyle güzel bir eğri. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Yani çok daha verimli. 1836 01:20:00,120 --> 01:20:03,510 Hiç can, kullanım sıralama birleştirme. 1837 01:20:03,510 --> 01:20:04,810 Bu size zaman kazandıracak. 1838 01:20:04,810 --> 01:20:07,670 Sonra tekrar, biz söylediğimiz gibi, eğer Eğer, bu alt bölgede aşağı konum 1839 01:20:07,670 --> 01:20:09,480 o yapmaz Bir fark çok. 1840 01:20:09,480 --> 01:20:11,360 Sen binlerce kalkmak ve girdilerin binlerce, 1841 01:20:11,360 --> 01:20:13,318 kesinlikle bir istiyorum daha verimli bir algoritma. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 Her Ve yine, bizim güzel tablo Siz bugün öğrendim sıralar. 1844 01:20:19,400 --> 01:20:21,157 >> Bu yüzden yoğun bir gün oldu biliyorum. 1845 01:20:21,157 --> 01:20:23,490 Bu mutlaka gitmiyor senin pset size yardımcı olmak için. 1846 01:20:23,490 --> 01:20:28,250 Ama ben sadece bir feragatname yapmak istiyorum Bu bölüm sadece psets ilgili değil. 1847 01:20:28,250 --> 01:20:31,240 Tüm bu malzeme adil senin ara sınav için oyun. 1848 01:20:31,240 --> 01:20:35,430 Ve sen CS ile devam yapmak da eğer, Bu gerçekten önemli temelleri 1849 01:20:35,430 --> 01:20:37,870 Bu bilmeniz gerekir. 1850 01:20:37,870 --> 01:20:41,700 Bu yüzden bazı günler olacak Biraz daha pset yardım, 1851 01:20:41,700 --> 01:20:44,600 ama bazı hafta olacak daha gerçek içeriği 1852 01:20:44,600 --> 01:20:46,600 Bu süper gelmeyebilir Şu anda sizin için yararlı, 1853 01:20:46,600 --> 01:20:51,215 Eğer devam ederseniz ama ben söz veriyorum çok, çok yararlı olacaktır. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Peki o bölüm için var. 1856 01:20:54,250 --> 01:20:55,250 Tel Aşağı. 1857 01:20:55,250 --> 01:20:56,570 Ben bir dakika içinde yaptım. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Ama oraya gidin. 1860 01:20:58,970 --> 01:21:01,240 Ve ben çörek veya şeker sahip olacaktır. 1861 01:21:01,240 --> 01:21:03,464 Alerjik kimse mı Bu arada bir şey? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Yumurta ve süt. 1864 01:21:05,890 --> 01:21:08,120 Yani Donuts bir hayır vardır? 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 TAMAM MI. 1867 01:21:10,160 --> 01:21:10,770 Tamam. 1868 01:21:10,770 --> 01:21:12,120 Çikolata yok? 1869 01:21:12,120 --> 01:21:12,620 Yıldız patlaması. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts iyidir. 1872 01:21:14,670 --> 01:21:15,170 TAMAM MI. 1873 01:21:15,170 --> 01:21:17,045 Biz gidiyoruz Daha sonra önümüzdeki hafta patlamış. 1874 01:21:17,045 --> 01:21:18,240 Ben ne alırsınız. 1875 01:21:18,240 --> 01:21:19,690 Siz harika bir hafta var. 1876 01:21:19,690 --> 01:21:20,460 Senin spec okuyun. 1877 01:21:20,460 --> 01:21:22,130 >> Eğer herhangi bir sorunuz varsa bana bildirin. 1878 01:21:22,130 --> 01:21:25,300 Pset iki sınıflarda olmalı Perşembe size dışarı. 1879 01:21:25,300 --> 01:21:28,320 Herhangi bir sorunuz varsa Ben bir şey dereceli nasıl 1880 01:21:28,320 --> 01:21:32,250 ya neden yol şey kademeli , bana e-posta lütfen etmedi, konuş benimle gel. 1881 01:21:32,250 --> 01:21:34,210 Ben biraz deli Bu kulüpler hafta, ama söz veriyorum 1882 01:21:34,210 --> 01:21:36,340 Ben hala 24 saat içinde cevap verecektir. 1883 01:21:36,340 --> 01:21:38,240 Yani harika bir hafta, herkes var. 1884 01:21:38,240 --> 01:21:40,090 Senin pset İyi şanslar. 1885 01:21:40,090 --> 01:21:41,248