1 00:00:00,000 --> 00:00:03,332 >> [MÜZİK OYUN] 2 00:00:03,332 --> 00:00:06,490 >> ANDI PENG: bölümün haftada 3 hoşgeldiniz. 3 00:00:06,490 --> 00:00:09,550 Tüm Geldiğiniz için teşekkürler, çocuklar, Bu erken başlangıç ​​saatinden bugün. 4 00:00:09,550 --> 00:00:11,466 Biz güzel, küçük var Samimi grup bugün. 5 00:00:11,466 --> 00:00:14,570 Yani umarım alırsınız kaplama, belki erken, 6 00:00:14,570 --> 00:00:15,780 Biraz erken bugün. 7 00:00:15,780 --> 00:00:22,057 Yani hızlı, sadece bazı gündem bugün duyurular. 8 00:00:22,057 --> 00:00:23,890 Başlamadan önce, biz konum biraz üzerinde gidecek 9 00:00:23,890 --> 00:00:28,910 bazı kısa lojistik sorunlar, pset sorular, debrief, böyle şeyler. 10 00:00:28,910 --> 00:00:30,250 Ve sonra sağ dalış olacak. 11 00:00:30,250 --> 00:00:34,710 Biz GDB adında bir hata ayıklayıcı kullanacağız Bizim kod debunking başladığı David 12 00:00:34,710 --> 00:00:36,550 Geçen gün derste açıkladı. 13 00:00:36,550 --> 00:00:39,420 Biz bir türlü dört türleri üzerinde gidersiniz. 14 00:00:39,420 --> 00:00:42,310 Biz oldukça hızlı bir şekilde üzerlerine gidersiniz onlar oldukça yoğun konum beri. 15 00:00:42,310 --> 00:00:45,710 Ama biliyorum tüm slaytlar ve Kaynak kodu çevrimiçi her zaman vardır. 16 00:00:45,710 --> 00:00:50,810 Yani için, senin okuman de, çekinmeyin Geri dönüp bu bir göz atın. 17 00:00:50,810 --> 00:00:53,930 >> Biz aracılığıyla gidersiniz asimptotik gösterimi, hangi 18 00:00:53,930 --> 00:00:55,944 sadece bir fantezi yoludur diyerek "çalıştırıcıları," 19 00:00:55,944 --> 00:00:58,360 Biz büyük O, sahip olduğu hangi Davut konuşmasında açıkladı. 20 00:00:58,360 --> 00:01:01,550 Ve biz de Omega, sahip olduğu Alt bağlı çalışma zamanı olduğunu. 21 00:01:01,550 --> 00:01:06,450 Ve biz biraz daha fazla konuşacağız derinlemesine nasıl bu çalışmaları ile ilgili. 22 00:01:06,450 --> 00:01:10,160 Ve son olarak, biz, ikili arama üzerinden gidersiniz Çünkü zaten size bir sürü 23 00:01:10,160 --> 00:01:15,190 senin psets baktı muhtemelen biliyorum senin pset öyle bir sorudur. 24 00:01:15,190 --> 00:01:17,470 Böylece tüm mutlu olacağım Bu, bugün kapsayacak. 25 00:01:17,470 --> 00:01:20,610 >> Ve son olarak, başına sizin bölüm geribildirim, ben aslında 26 00:01:20,610 --> 00:01:23,000 yaklaşık 15 dakika sol son biraz üzerinde gitmek 27 00:01:23,000 --> 00:01:27,730 pset3 lojistik, herhangi bir soru, belki rehberlik biraz eğer sen, 28 00:01:27,730 --> 00:01:28,990 Biz programlamaya başlamadan önce. 29 00:01:28,990 --> 00:01:30,890 Yani yoluyla almak için çalışalım oldukça hızlı bir şekilde malzeme. 30 00:01:30,890 --> 00:01:33,880 Ve sonra biz biraz zaman geçirebilirsiniz pset için daha fazla soru alıyor. 31 00:01:33,880 --> 00:01:35,230 TAMAM. 32 00:01:35,230 --> 00:01:39,570 >> Çabuk, bu nedenle sadece bir kaç önce biz duyurular bugün başlıyor. 33 00:01:39,570 --> 00:01:45,410 Birincisi, yapım hoş geldiniz senin psets iki aracılığıyla o. 34 00:01:45,410 --> 00:01:49,432 Ben Senin- evet, izin 's bir göz attım O biri için bir alkış olsun. 35 00:01:49,432 --> 00:01:51,140 Aslında, gerçekten gerçekten etkilendim. 36 00:01:51,140 --> 00:01:55,800 Ben sizin için ilk pset kademeli Geçen hafta ve siz inanılmaz yaptım. 37 00:01:55,800 --> 00:01:58,290 >> Stil noktası oldu birkaç yorum dışında. 38 00:01:58,290 --> 00:02:00,660 Daima konum olun kodunuzu yorumlama. 39 00:02:00,660 --> 00:02:03,040 Ama psets noktada idi. 40 00:02:03,040 --> 00:02:05,549 Ve keep it up. 41 00:02:05,549 --> 00:02:08,090 Ve bu kadar sınıf öğrencisi için iyi Sizler koyarak görüyoruz 42 00:02:08,090 --> 00:02:10,704 senin tarzında kadar çaba kodunuzu ve tasarım 43 00:02:10,704 --> 00:02:12,120 Görmek için biz istiyoruz söyledi. 44 00:02:12,120 --> 00:02:16,450 Yani benim şükran boyunca geçirerek TA geri kalanı için. 45 00:02:16,450 --> 00:02:19,210 >> Ancak orada bir Birkaç debrief soruları 46 00:02:19,210 --> 00:02:22,010 Ben sadece üzerinde gitmek istiyorum Her iki hayatımı yapacak 47 00:02:22,010 --> 00:02:24,900 ve diğer bir sürü TA 'biraz daha kolay yaşıyor. 48 00:02:24,900 --> 00:02:28,220 Öncelikle, ben fark ettik bu Geçmiş senin kaç hafta-- 49 00:02:28,220 --> 00:02:32,301 üzerinde check50 çalışan edilmiştir Size önce kodu göndermek? 50 00:02:32,301 --> 00:02:32,800 TAMAM. 51 00:02:32,800 --> 00:02:36,690 Yani herkes check50 yapıyor olmalı, Aslında bir secret-- çünkü-- 52 00:02:36,690 --> 00:02:41,540 Bizim doğruluk parçası olarak check50 çalıştırmak kodunuzu test etmek için komut. 53 00:02:41,540 --> 00:02:45,480 Kod başarısız Yani eğer check50, büyük olasılıkla, 54 00:02:45,480 --> 00:02:47,570 muhtemelen gidiyor hem de bizim onay başarısız. 55 00:02:47,570 --> 00:02:49,320 Bazen siz doğru cevaplar var. 56 00:02:49,320 --> 00:02:52,200 Benzeri, açgözlü olarak, bazı Doğru numaraları var, 57 00:02:52,200 --> 00:02:53,960 Sadece bazı ekstra şeyler çıktı. 58 00:02:53,960 --> 00:02:55,940 Ve bu ekstra şeyler Aslında denetimi başarısız, 59 00:02:55,940 --> 00:02:58,440 Bilgisayar yok, çünkü gerçekten aradığını biliyorum. 60 00:02:58,440 --> 00:03:00,981 Ve böylece sadece kadar devam edecektir çıkış yok olduğunu görmek 61 00:03:00,981 --> 00:03:03,810 cevabı ne bekliyoruz maç olabilir ve bu yanlış işaretlemek için. 62 00:03:03,810 --> 00:03:06,560 >> Ve ben ne olduğunu biliyorum senin davaların bazıları bu hafta. 63 00:03:06,560 --> 00:03:09,870 Bu yüzden geri ve elle gitti Herkesin kod regraded. 64 00:03:09,870 --> 00:03:12,780 Gerçi Gelecekte, , emin olun lütfen 65 00:03:12,780 --> 00:03:14,570 Çalıştırdığınız konum kodunuzu 50 kontrol edin. 66 00:03:14,570 --> 00:03:17,970 Ta için tür bir ağrı çünkü regrade elle geri dönüp zorunda 67 00:03:17,970 --> 00:03:21,197 Her için her pset Tek küçük cevapsız örneği. 68 00:03:21,197 --> 00:03:22,530 Yani herhangi bir puan sürmedi. 69 00:03:22,530 --> 00:03:25,210 Ben belki çıkardım düşünüyorum Bir veya tasarım için iki. 70 00:03:25,210 --> 00:03:27,710 Gerçi Gelecekte, eğer Eğer check50 başarısız ediyoruz 71 00:03:27,710 --> 00:03:31,330 noktalar alınacaktır doğruluğu kapatır. 72 00:03:31,330 --> 00:03:35,020 >> Bundan başka, psets olan öğlen Cuma nedeniyle. 73 00:03:35,020 --> 00:03:38,990 Ben yedi dakika olduğunu düşünüyorum Biz size geç ödemesiz dönem. 74 00:03:38,990 --> 00:03:42,434 Harvard zaman başına, onlar izin konum yedi dakika geç her şeyi olacak. 75 00:03:42,434 --> 00:03:44,350 Yani burada Yale'de, yaparız hem de buna uygun. 76 00:03:44,350 --> 00:03:47,910 Ama hemen hemen, 12:07 at, daki pset değilse, 77 00:03:47,910 --> 00:03:49,720 o kadar geç işaretlenmesi için gidiyor. 78 00:03:49,720 --> 00:03:53,160 Süre böylece Ve işaretlenir gibi geç, TA-- ben 79 00:03:53,160 --> 00:03:54,870 hala psets derecelendirilmesi olacak. 80 00:03:54,870 --> 00:03:56,760 Yani hala notu görürsünüz. 81 00:03:56,760 --> 00:03:58,820 Ancak, o biliyor dönem sonunda 82 00:03:58,820 --> 00:04:02,270 tüm geç psets sadece olacak bilgisayar tarafından otomatik olarak sıfırlanan. 83 00:04:02,270 --> 00:04:04,490 >> Biz iki nedenden dolayı bunu. 84 00:04:04,490 --> 00:04:09,220 Bir, bazen olsun Dekanın bahaneler gibi, mazur, 85 00:04:09,220 --> 00:04:10,762 Daha sonra bu konuda henüz bilmiyorum. 86 00:04:10,762 --> 00:04:13,761 Yani biz derecelendirilmesi emin olmak ister Her ihtimale karşı her şeyi olduğu gibi, ben 87 00:04:13,761 --> 00:04:15,080 Bir dekanın bahane eksik. 88 00:04:15,080 --> 00:04:17,000 Ve ikincisi, tutmak Zihin, hala can 89 00:04:17,000 --> 00:04:19,370 tek pset damla olduğunu Tam kapsam noktaları vardır. 90 00:04:19,370 --> 00:04:21,430 Ve böylece biz sınıf gibi senin psets hepsi sadece 91 00:04:21,430 --> 00:04:24,730 senin kapsamı en emin olun etmek Orada ve bunları çalışıyoruz. 92 00:04:24,730 --> 00:04:29,150 Geç oldu, bu yüzden bile hala edeceğiz kapsam noktaları için kredi almak sanırım. 93 00:04:29,150 --> 00:04:33,730 >> Hikaye Yani ahlaki, yapmak emin psets zamanında bulunmaktadır. 94 00:04:33,730 --> 00:04:38,350 Ve zamanında değilse, büyük değil biliyorum. 95 00:04:38,350 --> 00:04:41,678 Evet, ben geçmeden önce, herkes var pset geribildirim ile ilgili herhangi bir sorunuz var mı? 96 00:04:41,678 --> 00:04:42,178 Evet. 97 00:04:42,178 --> 00:04:43,630 >> HEDEF KİTLE: Eğer biz dedin psets birini bırakabilirsiniz? 98 00:04:43,630 --> 00:04:44,296 >> ANDI PENG: Evet. 99 00:04:44,296 --> 00:04:47,050 Yani dokuz psets genel var dönem boyunca. 100 00:04:47,050 --> 00:04:50,610 Ve sen kapsamı varsa points-- böylece kapsam, sadece bir 101 00:04:50,610 --> 00:04:53,567 hemen hemen, sen çalıştığınız Sorun, sen zamanında koyarak 102 00:04:53,567 --> 00:04:56,150 Eğer ettik olduğunu gösteriyor gösterdi Eğer spec okudum. 103 00:04:56,150 --> 00:04:57,191 Bu hemen hemen kapsamı var. 104 00:04:57,191 --> 00:04:59,370 Ve yerine ise kapsam noktaları, biz 105 00:04:59,370 --> 00:05:03,360 en düşük bırakabilirsiniz Tam kapsam dışında biri. 106 00:05:03,360 --> 00:05:06,790 Yani sizin avantajı var tamamlamak ve her pset deneyin. 107 00:05:06,790 --> 00:05:10,320 >> Hatta upload-- hiçbiri eğer Onları hepsini upload çalışır. 108 00:05:10,320 --> 00:05:13,711 Ve sonra biz umarım yapabileceksiniz Size bu noktaların bazıları geri ver. 109 00:05:13,711 --> 00:05:14,210 Güzel. 110 00:05:14,210 --> 00:05:16,780 Başka soru? 111 00:05:16,780 --> 00:05:17,840 Büyük. 112 00:05:17,840 --> 00:05:21,960 >> İkincisi, ofis birkaç hours-- ofis saatleri hakkında hızlı notlar. 113 00:05:21,960 --> 00:05:24,300 Yani ilk hafta erken gelir. 114 00:05:24,300 --> 00:05:26,909 Kimse de hiç bir Pazartesi günleri çalışma saatleri. 115 00:05:26,909 --> 00:05:28,700 Christabel geldi Çalışma saatleri dün gece. 116 00:05:28,700 --> 00:05:29,691 Evet, Christabel. 117 00:05:29,691 --> 00:05:32,190 Ve biz ofiste neler var mıydı Saat dün gece, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> HEDEF KİTLE: Biz dondurma vardı. 119 00:05:33,020 --> 00:05:36,160 >> ANDI PENG: Peki bu doğru, biz ofis saatlerde dondurma dün gece. 120 00:05:36,160 --> 00:05:39,390 Ben size söz edemesek Biz ofis saatlerde dondurma olacak 121 00:05:39,390 --> 00:05:43,230 Her hafta, sana söz veriyorum ne önemli ölçüde olacak olmasıdır 122 00:05:43,230 --> 00:05:45,380 TA oranı daha iyi öğrencisi. 123 00:05:45,380 --> 00:05:47,650 Okunaklı gibi, bire üç gibi. 124 00:05:47,650 --> 00:05:50,350 , O kontrast Oysa Perşembe, yaklaşık 150 var 125 00:05:50,350 --> 00:05:52,830 Gerçekten çocuklar ve hiçbir dondurma vurguladı. 126 00:05:52,830 --> 00:05:55,360 Ve bu sadece herkes için verimli değil. 127 00:05:55,360 --> 00:05:58,730 Hikayenin Yani ahlaki, erken gelmek olduğunu Mesai saatleri ve iyi şeyler 128 00:05:58,730 --> 00:06:00,310 olacak. 129 00:06:00,310 --> 00:06:02,110 >> Ayrıca, soru sormak için hazırlanan gelir. 130 00:06:02,110 --> 00:06:03,200 Bilirsin? 131 00:06:03,200 --> 00:06:05,420 Ne olursa olsun, TA, ben diyerek edilmiştir düşünüyorum, 132 00:06:05,420 --> 00:06:10,710 biz birkaç öğrencilere alıyorum oldum 10:50 gibi, Perşembe günü gelip kim 133 00:06:10,710 --> 00:06:15,100 spec okumak zorunda değil Bana yardım gibi olmak, bana yardım et. 134 00:06:15,100 --> 00:06:18,200 Ne yazık ki bu noktada, var çok değil biz size yardım etmek yapabilirsiniz. 135 00:06:18,200 --> 00:06:19,590 Yani hafta erken gel lütfen. 136 00:06:19,590 --> 00:06:22,040 Mesai saatleri erken gel. 137 00:06:22,040 --> 00:06:23,350 Soru sormak için hazırlıklı gelin. 138 00:06:23,350 --> 00:06:25,310 Olarak emin olun size Bir öğrenci, nerede 139 00:06:25,310 --> 00:06:27,620 Eğer böylece gerekir TA, birlikte size rehberlik edebilir 140 00:06:27,620 --> 00:06:32,850 Ne çalışma saatleri olan gerektiği için ayrılacak. 141 00:06:32,850 --> 00:06:37,380 >> İkincisi, bu yüzden profesörler biliyorum testlerle bize sürpriz istiyorum. 142 00:06:37,380 --> 00:06:39,439 Ben bir profesör olanlar vardı yo gibi, bu arada, 143 00:06:39,439 --> 00:06:41,230 O ara sınav hatırlıyorum Bir sonraki Pazartesi var. 144 00:06:41,230 --> 00:06:42,855 Evet, o vize hakkında bilmiyordum. 145 00:06:42,855 --> 00:06:45,630 Yani o olacağım TA Bu size tüm bu sınav hatırlatıyor 146 00:06:45,630 --> 00:06:47,270 Bilirsin, çünkü 0--, biz CS sensin. 147 00:06:47,270 --> 00:06:50,730 Şimdi bitti diziler var ki olsun bu test 0 neden, eh, 1 yarışması değil? 148 00:06:50,730 --> 00:06:51,320 TAMAM. 149 00:06:51,320 --> 00:06:52,490 Oh, o birinde bazı chuckles var. 150 00:06:52,490 --> 00:06:53,120 TAMAM. 151 00:06:53,120 --> 00:06:59,710 >> Yani yarışması 0 ise 14 Ekim olacak Eğer Pazartesi-Çarşamba bölümünde konum 152 00:06:59,710 --> 00:07:02,920 ve 15 Ekim sen iseniz Salı-Perşembe bölümü. 153 00:07:02,920 --> 00:07:05,630 Bunun için geçerli değildir Harvard'da o sizin 154 00:07:05,630 --> 00:07:10,350 Hepinizin olacağım düşünüyorum Kim-- 14 sınavlar alarak. 155 00:07:10,350 --> 00:07:13,560 >> Yani evet, gelecek hafta, eğer David, derste, gider 156 00:07:13,560 --> 00:07:15,747 evet, bu konuda öylesine bilgi yarışması önümüzdeki hafta, tüm 157 00:07:15,747 --> 00:07:17,580 Çünkü şok olmayacak Eğer bölüme geldi 158 00:07:17,580 --> 00:07:19,664 ve sen bunu biliyorsun senin Quiz 0 iki hafta içinde. 159 00:07:19,664 --> 00:07:21,580 Ve biz inceleme olacak oturumları ve her şey. 160 00:07:21,580 --> 00:07:26,360 Hakkında hiçbir endişe Bunun için korkmak. 161 00:07:26,360 --> 00:07:29,890 Herhangi bir sorunuz herhangi bir sorunuz before-- Tüm ilgili lojistik konulara, 162 00:07:29,890 --> 00:07:32,591 sınıflandırma, mesai saatleri, bölümler? 163 00:07:32,591 --> 00:07:33,090 Evet. 164 00:07:33,090 --> 00:07:35,100 >> HEDEF KİTLE: sınav So derste olacak? 165 00:07:35,100 --> 00:07:35,766 >> ANDI PENG: Evet. 166 00:07:35,766 --> 00:07:39,460 Yarışması Yani, sanırım, 60 Bu zaman diliminde ayrılan dakikalar 167 00:07:39,460 --> 00:07:42,240 Sadece alacağım konferans salonunda. 168 00:07:42,240 --> 00:07:44,810 Yani gelmek zorunda değilsiniz rastgele 7:00 gibi, üzerinde. 169 00:07:44,810 --> 00:07:46,140 Hepsi iyi. 170 00:07:46,140 --> 00:07:47,100 Evet. 171 00:07:47,100 --> 00:07:50,060 Güzel. 172 00:07:50,060 --> 00:07:50,840 >> Pekala. 173 00:07:50,840 --> 00:07:54,330 Yani biz gidiyoruz Size bir kavramını tanıtmak 174 00:07:54,330 --> 00:08:00,760 David tür zaten bu hafta Bu geçmiş hafta derste değindi. 175 00:08:00,760 --> 00:08:02,010 Bu GDB denir. 176 00:08:02,010 --> 00:08:05,570 Ve nasıl bir çoğunuz, süre daki psets yazma tabii ki, 177 00:08:05,570 --> 00:08:09,981 diyor büyük bir düğme fark var IDE üstünde "Debug"? 178 00:08:09,981 --> 00:08:10,480 TAMAM. 179 00:08:10,480 --> 00:08:13,770 Yani şimdi biz aslında ortaya çıkarmak için alırsınız Ne o düğmenin gizem aslında 180 00:08:13,770 --> 00:08:14,270 yapar. 181 00:08:14,270 --> 00:08:16,790 Ve ben bir olduğunu garanti Güzel, güzel bir şey. 182 00:08:16,790 --> 00:08:20,740 >> Şimdiye kadar, bence yukarı Yani iki şey var oldu 183 00:08:20,740 --> 00:08:23,320 Öğrenciler genellikle olmuştur psets ayıklarken yapıyor. 184 00:08:23,320 --> 00:08:27,635 Bir, onlar da eklemek printf () - böylece her birkaç satır, 185 00:08:27,635 --> 00:08:29,760 onlar printf () eklemek - ah, bu değişken nedir? 186 00:08:29,760 --> 00:08:32,551 Ah, bu değişken nedir şimdi-- ve ne tür ilerlemesini görmek için 187 00:08:32,551 --> 00:08:33,940 kodunuzu olarak çalışır. 188 00:08:33,940 --> 00:08:37,030 Ya da çocuk yapmak İkinci yöntem ise Onlar sadece her şeyi yazmanızı 189 00:08:37,030 --> 00:08:38,610 ve sonra sonunda böyle gidin. 190 00:08:38,610 --> 00:08:39,970 Umarım işe yarıyor. 191 00:08:39,970 --> 00:08:44,851 Ben size garanti, GDB iyidir Bu yöntemlerin her ikisi birden. 192 00:08:44,851 --> 00:08:45,350 Evet. 193 00:08:45,350 --> 00:08:46,980 Yani bu senin en iyi arkadaşın olacak. 194 00:08:46,980 --> 00:08:51,780 Bu güzel bir şey, çünkü Bu görsel görüntüler hem 195 00:08:51,780 --> 00:08:54,850 ne Kod yapıyor belirli bir noktada 196 00:08:54,850 --> 00:08:57,486 yanı ne gibi tüm senin değişkenler taşıyoruz, 197 00:08:57,486 --> 00:08:59,610 değerleri ne gibi belirli bir noktada. 198 00:08:59,610 --> 00:09:02,670 Ve bu şekilde, gerçekten can kodunuzda kesme noktası ayarlamak. 199 00:09:02,670 --> 00:09:04,350 Sen satır hattı üzerinden çalıştırabilirsiniz. 200 00:09:04,350 --> 00:09:07,324 Ve GDB için sadece sahip olacak Eğer, sizin için görüntülenir 201 00:09:07,324 --> 00:09:09,490 ne tüm değişkenlerin , ne yapıyoruz, 202 00:09:09,490 --> 00:09:10,656 Ne kodunda oluyor. 203 00:09:10,656 --> 00:09:13,240 Ve bu şekilde, bu kadar çok daha kolay görmek için 204 00:09:13,240 --> 00:09:17,120 Ne printf-ing yerine oluyor ya da ifadeleri yazıyorlar. 205 00:09:17,120 --> 00:09:19,160 >> Yani biz daha sonra bu bir örnek yapacağız. 206 00:09:19,160 --> 00:09:20,660 Yani bu biraz soyut gibi görünüyor. 207 00:09:20,660 --> 00:09:23,490 Endişeye gerek yok, biz örnekler yapacağız. 208 00:09:23,490 --> 00:09:29,170 Ve böylece esasen, üç büyük, Eğer GDB ihtiyaç duyacağınız işlevleri en sık kullanılan 209 00:09:29,170 --> 00:09:32,500 Sonra, üzerinde Step vardır, ve düğmeler adım. 210 00:09:32,500 --> 00:09:34,860 Ben sından gidiyorum Orada, aslında, hemen şimdi. 211 00:09:34,860 --> 00:09:40,930 >> Yani siz tüm görebilirsiniz ya da ben biraz yakınlaştırmak gerekir? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 Arkada, bunu görebiliyorum? 214 00:09:44,470 --> 00:09:45,730 Ben yakınlaştırmak mıyım? 215 00:09:45,730 --> 00:09:46,480 Birazcık? 216 00:09:46,480 --> 00:09:49,390 Tamam iyi. 217 00:09:49,390 --> 00:09:50,280 Oraya gidiyoruz. 218 00:09:50,280 --> 00:09:50,960 TAMAM. 219 00:09:50,960 --> 00:09:57,000 >> Yani, gözlerimi burada var açgözlü için uygulanması. 220 00:09:57,000 --> 00:10:01,430 Ve çocuklar bir sürü yazdı iken Bu form-- while döngüsünde açgözlü 221 00:10:01,430 --> 00:10:04,890 yapmak için mükemmel kabul edilebilir bir yoldur sadece etmektir yapmak için başka bir yol dökersin-- 222 00:10:04,890 --> 00:10:06,280 modulo içinde bölün. 223 00:10:06,280 --> 00:10:09,290 O zaman olabilir, çünkü senin değer ve sonra kalanını var. 224 00:10:09,290 --> 00:10:11,150 Ve sonra sadece can Hepsini bir araya ekleyin. 225 00:10:11,150 --> 00:10:13,390 Ben ne yapıyorum mantığı mı Burada herkese mantıklı, 226 00:10:13,390 --> 00:10:14,117 Başlamadan önce? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 Biraz? 229 00:10:17,980 --> 00:10:18,710 Güzel. 230 00:10:18,710 --> 00:10:19,210 Büyük. 231 00:10:19,210 --> 00:10:21,290 Bu oldukça seksi bir parça kod, ben söyleyebilirim. 232 00:10:21,290 --> 00:10:23,502 Sanki David, şunları söyledi Bir süre sonra, ders, 233 00:10:23,502 --> 00:10:25,960 Tüm kod görmeye başlarsınız güzel bir şey olarak. 234 00:10:25,960 --> 00:10:29,950 Ve bazen güzel gördüğünüzde Kod, böyle harika bir duygu. 235 00:10:29,950 --> 00:10:35,410 >> Yani ancak bu kod çok iken güzel, düzgün çalışmıyor. 236 00:10:35,410 --> 00:10:37,750 Yani bu konuda check50 çalıştırın. 237 00:10:37,750 --> 00:10:39,440 50 20-- OOP yi kontrol edin. 238 00:10:39,440 --> 00:10:43,221 239 00:10:43,221 --> 00:10:43,720 2? 240 00:10:43,720 --> 00:10:44,990 Bu pset2 mi? 241 00:10:44,990 --> 00:10:46,870 Evet. 242 00:10:46,870 --> 00:10:47,520 Ah, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 TAMAM. 245 00:10:52,890 --> 00:10:53,900 Bu yüzden check50 çalıştırın. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Ve siz burada gördüğünüz gibi, bu durumlarda bir kaç başarısız oluyor. 248 00:11:07,170 --> 00:11:10,165 Ve sizin bazı için Sorunun setleri yapmanın elbette, 249 00:11:10,165 --> 00:11:11,110 ah, neden çalışmıyor gibi sen. 250 00:11:11,110 --> 00:11:13,318 Neden bazıları için çalışıyor değerler değil başkaları için? 251 00:11:13,318 --> 00:11:17,760 Peki, GDB size şekil yardımcı oluyor neden bu girişler çalışma değildi. 252 00:11:17,760 --> 00:11:18,320 >> TAMAM. 253 00:11:18,320 --> 00:11:21,640 Yani, birini görelim Ben check50 başarısız oldu çekler 254 00:11:21,640 --> 00:11:24,920 0.41 giriş değeri oldu. 255 00:11:24,920 --> 00:11:27,830 Doğru cevap Böylece Eğer almak gerekir bir 4'tür. 256 00:11:27,830 --> 00:11:33,090 Ama onun yerine ben yazdırmak ne am yanlış 3-n vardır. 257 00:11:33,090 --> 00:11:36,190 Yani sadece, Sadece elle çalışmasına izin check50 çalıştığından emin olun. 258 00:11:36,190 --> 00:11:36,940 En ./greedy yapalım. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Oops, ben açgözlü yapmak zorundasınız. 261 00:11:43,340 --> 00:11:43,840 Oraya gidiyoruz. 262 00:11:43,840 --> 00:11:44,381 Hemen ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Ne kadar borçlu olduğunu? 265 00:11:47,670 --> 00:11:49,550 En 0.41 yapalım. 266 00:11:49,550 --> 00:11:52,590 Ve evet, biz burada göremiyor bu 3 çıkış var olduğunu 267 00:11:52,590 --> 00:11:55,160 ne zaman doğru cevap, Aslında, 4 olması gerekmektedir. 268 00:11:55,160 --> 00:12:01,460 Öyleyse GDB girelim ve biz nasıl Bu sorunu gidermekle ilgili gidebilirsiniz. 269 00:12:01,460 --> 00:12:03,992 >> Ilk adım So her zaman kod hata ayıklama 270 00:12:03,992 --> 00:12:05,950 Bir kesme noktası ayarlamak için, veya bir nokta hangi sen 271 00:12:05,950 --> 00:12:09,079 bilgisayar veya istediğiniz ayıklayıcı bakarak başlamak için. 272 00:12:09,079 --> 00:12:11,120 Bunu yaparsanız Yani gerçekten Senin sorunun ne olduğunu biliyorum, 273 00:12:11,120 --> 00:12:14,670 Genellikle, tipik şey istiyoruz yapmak ana bizim kesme ayarlamaktır. 274 00:12:14,670 --> 00:12:18,520 Yani siz bu görebiliyorsanız Orada kırmızı düğme, 275 00:12:18,520 --> 00:12:22,860 evet, beni batıyordu bir ana işlevi için breakpoint. 276 00:12:22,860 --> 00:12:24,130 Bunu tıklatın. 277 00:12:24,130 --> 00:12:26,130 >> Ve sonra benim Debug düğmesi kadar gidebilir. 278 00:12:26,130 --> 00:12:27,036 O düğmesine basın. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Ben eğer bana geri yakınlaştırın edelim. 281 00:12:36,555 --> 00:12:38,020 Oraya gidiyoruz. 282 00:12:38,020 --> 00:12:40,730 Yani biz, burada, sağda bir panel var. 283 00:12:40,730 --> 00:12:43,680 Arkada, çocuklar için üzgünüm, sen Gerçekten çok iyi göremiyorum. 284 00:12:43,680 --> 00:12:49,090 Ancak esas olarak, tüm Bu sağ panel yapıyor 285 00:12:49,090 --> 00:12:53,130 Her iki vurgulanan takip edilir kod satırı satır, 286 00:12:53,130 --> 00:12:56,640 Bilgisayar şu anda çalışmakta olduğunu, de sizin tüm değişkenler olarak 287 00:12:56,640 --> 00:12:57,600 Buraya. 288 00:12:57,600 --> 00:13:00,487 >> Yani sent, sikkeler, n var, tüm farklı şeyler beyan 289 00:13:00,487 --> 00:13:01,070 Bu noktada. 290 00:13:01,070 --> 00:13:04,850 Endişeye gerek yok, çünkü biz aslında var henüz değişkenlere onları başlatıldı. 291 00:13:04,850 --> 00:13:07,200 Bilgisayarınızda Yani senin Bilgisayar sadece görüyor, 292 00:13:07,200 --> 00:13:14,376 oh, 32767 son kullanılan işlev oldu benim bilgisayar bu bellek alanı. 293 00:13:14,376 --> 00:13:16,000 Cent şu anda nerede ve böylece bu. 294 00:13:16,000 --> 00:13:19,360 Ama hayır o bir kez, kodu çalıştırmak o başlatılmış olmalıdır. 295 00:13:19,360 --> 00:13:24,110 >> Yani tarafından, çizgi üzerinden gidelim çizgi, burada ne oluyor. 296 00:13:24,110 --> 00:13:25,350 TAMAM. 297 00:13:25,350 --> 00:13:29,400 Buraya kadar Yani üç vardır Ben sadece açıkladı düğmeleri. 298 00:13:29,400 --> 00:13:34,090 Sen, Çal, veya Çalıştır işlevi var düğme, sen düğme üzerinde Adım var 299 00:13:34,090 --> 00:13:36,600 ve ayrıca düğme içine adım var. 300 00:13:36,600 --> 00:13:41,260 Ve esas olarak, tüm üç Onları sadece kod geçmesi 301 00:13:41,260 --> 00:13:42,690 ve farklı şeyler yapmak. 302 00:13:42,690 --> 00:13:45,680 >> Yani tipik hata ayıklama yaparken, biz sadece Çal vurmak istemiyorum, 303 00:13:45,680 --> 00:13:47,930 Oynat sadece çalışır çünkü Bunun sonuna kadar kodu. 304 00:13:47,930 --> 00:13:49,070 Ve sonra aslında olmaz bildiklerini Sorununuz 305 00:13:49,070 --> 00:13:51,432 Birden kesme noktası ayarlamak sürece olduğunu. 306 00:13:51,432 --> 00:13:53,890 Birden kırılma noktaları ayarlarsanız, Sadece otomatik olacak 307 00:13:53,890 --> 00:13:56,030 tek kesme çalıştırmak, sonraki, bir sonraki. 308 00:13:56,030 --> 00:13:58,030 Ancak bu durumda biz ettik sadece bir tane, çünkü biz 309 00:13:58,030 --> 00:13:59,970 yolumuza çalışmak istiyoruz Yukarıdan aşağıya aşağıya. 310 00:13:59,970 --> 00:14:04,830 Yani biz bu düğmeye görmezden gidiyoruz Şu anda bu programın amaçları için. 311 00:14:04,830 --> 00:14:08,230 >> Fonksiyonu üzerinde Step Yani sadece her hattı üzerinden adım 312 00:14:08,230 --> 00:14:11,510 ve ne söyler Bilgisayar yapıyor. 313 00:14:11,510 --> 00:14:14,630 Işlevi içine Adım gider Gerçek işlevi 314 00:14:14,630 --> 00:14:16,000 Bu kod hattınıza var. 315 00:14:16,000 --> 00:14:19,070 Yani, örneğin, printf () gibi, Doğru, bir işlevdir? 316 00:14:19,070 --> 00:14:21,980 Ben fiziksel olarak adım isteseydim printf () fonksiyonu içine 317 00:14:21,980 --> 00:14:25,610 Aslında parçasının içine giderdim printf () Yazılı ve görmek oldu kod 318 00:14:25,610 --> 00:14:26,730 Orada neler oluyor. 319 00:14:26,730 --> 00:14:29,924 >> Ama genellikle, biz varsayalım Biz size kod çalışır. 320 00:14:29,924 --> 00:14:31,340 Biz () çalışıyor printf varsayalım. 321 00:14:31,340 --> 00:14:33,170 Biz GETINT () çalıştığını varsayalım. 322 00:14:33,170 --> 00:14:35,170 Yani hiç gerek yok Bu fonksiyonların adım. 323 00:14:35,170 --> 00:14:37,170 Ama işlevleri varsa Kendinizi yazdığınız 324 00:14:37,170 --> 00:14:39,060 Denetlemek istediğiniz Neler üzerinden, 325 00:14:39,060 --> 00:14:41,200 Eğer adım isteyeyim Bu işlevi. 326 00:14:41,200 --> 00:14:43,940 >> Yani şu anda biz sadece gidiyoruz Bu kod parçası üzerinden adım. 327 00:14:43,940 --> 00:14:44,485 Yani görelim. 328 00:14:44,485 --> 00:14:46,547 Ah, baskı, "Ah hai, nasıl fazla bir değişiklik borçlu olduğunu? " 329 00:14:46,547 --> 00:14:47,130 Biz umurumda değil. 330 00:14:47,130 --> 00:14:49,830 Biz çalıştığını biliyorum, bu yüzden üzerine adım. 331 00:14:49,830 --> 00:14:53,290 >> Yani n, bizim şamandıra olanı Biz initialized-- ettik ya declared-- 332 00:14:53,290 --> 00:14:56,810 üstünde yukarı, şimdi sen GetFloat bu eşit (). 333 00:14:56,810 --> 00:14:57,810 Yani o aşkın çekilsin. 334 00:14:57,810 --> 00:14:59,580 Ve biz görmek alt burada, program 335 00:14:59,580 --> 00:15:03,360 Bir değer girişine bana sormadan olduğunu. 336 00:15:03,360 --> 00:15:08,580 Yani girişi en istediğimiz değeri izin 0.41 olan burada test etmek. 337 00:15:08,580 --> 00:15:09,160 Büyük. 338 00:15:09,160 --> 00:15:12,780 >> Şimdi n- siz görüyorsunuz Burada, bottom-- azından var: 339 00:15:12,780 --> 00:15:15,140 stored-- çünkü biz Henüz yuvarlak değil, bu kadar 340 00:15:15,140 --> 00:15:19,540 Böyle devi saklanır 0,4099999996 olan şamandıra, 341 00:15:19,540 --> 00:15:22,550 yeterince yakın olan bizim amaçları, şu anda 0.41 kadar. 342 00:15:22,550 --> 00:15:26,090 Ve sonra biz, sonra da göreceksiniz biz Programın içinde adım devam 343 00:15:26,090 --> 00:15:29,850 Bundan sonra, n haline gelmiştir yuvarlak ve sent 41 olmuştur. 344 00:15:29,850 --> 00:15:30,350 Büyük. 345 00:15:30,350 --> 00:15:32,230 Yani bizim yuvarlama en çalışma olduğunu biliyoruz. 346 00:15:32,230 --> 00:15:34,700 Biz olduğunu biliyorum cent doğru sayıda, 347 00:15:34,700 --> 00:15:36,990 bu nedenle bu olduğunu biliyorum gerçekten sorun. 348 00:15:36,990 --> 00:15:40,050 >> Yani biz adım devam Bu programda üzerinde. 349 00:15:40,050 --> 00:15:40,900 Biz buraya gidin. 350 00:15:40,900 --> 00:15:46,139 Ve böylece bu kod satırından sonra, biz Biz kaç dörtte bilmeli. 351 00:15:46,139 --> 00:15:46,680 Biz üzerinden adım. 352 00:15:46,680 --> 00:15:52,040 Ve biz, aslında, bir tane var mı bakın çeyrek biz 25 çıkartılır çünkü 353 00:15:52,040 --> 00:15:53,790 41 bizim başlangıç ​​değerinden. 354 00:15:53,790 --> 00:15:55,890 Ve bizim sent için 16 sol var. 355 00:15:55,890 --> 00:15:58,830 >> Herkes nasıl anladı mı Program sayesinde artırıyor 356 00:15:58,830 --> 00:16:02,980 ve neden sent şimdi 16 oldu ve neden şimdi, sikkeler 1 haline gelmiştir? 357 00:16:02,980 --> 00:16:04,610 Herkes bu mantığı takip ediyor? 358 00:16:04,610 --> 00:16:05,110 Güzel. 359 00:16:05,110 --> 00:16:07,860 Bu noktanın Yani Programın çalışma, değil mi? 360 00:16:07,860 --> 00:16:09,797 Biz tam olarak yaptığını biliyorum biz bunu istediğini. 361 00:16:09,797 --> 00:16:11,880 Ve biz aslında değil mi oh, yazdırmak zorunda ne 362 00:16:11,880 --> 00:16:14,430 Bu noktada sent olan Bu noktada paralar budur. 363 00:16:14,430 --> 00:16:17,170 >> Biz programa geçiyoruz devam. 364 00:16:17,170 --> 00:16:18,100 Adım atmak. 365 00:16:18,100 --> 00:16:18,620 Güzel. 366 00:16:18,620 --> 00:16:19,700 Biz Dimes üzerine gitmek. 367 00:16:19,700 --> 00:16:20,200 Büyük. 368 00:16:20,200 --> 00:16:22,367 Biz almış olduğunu görüyoruz Bir kuruş için 0,10 $ kapatır. 369 00:16:22,367 --> 00:16:23,450 Ve şimdi biz iki sikke var. 370 00:16:23,450 --> 00:16:25,260 Bu doğru. 371 00:16:25,260 --> 00:16:31,555 >> Biz pennies gidip gördüğümüz biz cent üzerinde kaldı ettik. 372 00:16:31,555 --> 00:16:32,680 Hmm, bu garip. 373 00:16:32,680 --> 00:16:37,540 Burada Programda, ben gerekiyordu Benim pennies çıkarılır olması. 374 00:16:37,540 --> 00:16:39,400 Belki de sadece değildim Bu hat hakkını yapıyor. 375 00:16:39,400 --> 00:16:42,190 Ve ne yazık ki, gördüğünüz Burada biz biliyorum çünkü 376 00:16:42,190 --> 00:16:44,360 biz adım olduğunu hatlar 32 ve 33 vasıtasıyla, 377 00:16:44,360 --> 00:16:50,560 Bu nerede bizim programı yanlış değişkenler çalıştırmak vardı. 378 00:16:50,560 --> 00:16:55,136 Yani biz bakmak ve oh görebilirsiniz, Burada sent çıkarılarak ediyorum 379 00:16:55,136 --> 00:16:57,010 ama aslında değilim Benim jeton değeri ekleyerek. 380 00:16:57,010 --> 00:16:57,860 Ben sent ekliyorum. 381 00:16:57,860 --> 00:17:00,234 Ve ben eklemek istemiyorum cent, ben sikke eklemek istiyorum. 382 00:17:00,234 --> 00:17:05,420 Bu yüzden sikke olduğunu değiştirirseniz, Biz bir çalışma programı var. 383 00:17:05,420 --> 00:17:06,730 Ben check50 çalıştırabilirsiniz. 384 00:17:06,730 --> 00:17:11,063 Sadece GDB sağ dışarı çıkabilirsiniz Burada ve daha sonra tekrar check50 çalıştırın. 385 00:17:11,063 --> 00:17:11,938 Ben sadece bu yapabilirim. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Ben açgözlü yapmak zorundasınız. 388 00:17:18,480 --> 00:17:19,940 0,41. 389 00:17:19,940 --> 00:17:22,819 Ve burada, bu baskı var Doğru cevap dışarı. 390 00:17:22,819 --> 00:17:26,569 >> Siz gördüğünüz gibi, GDB Gerçekten güçlü bir araçtır 391 00:17:26,569 --> 00:17:29,940 biz bu kadar kod varken için oluyor ve pek çok değişken 392 00:17:29,940 --> 00:17:32,510 o kadar, bizim için zor olduğunu Bir insan, takip etmek. 393 00:17:32,510 --> 00:17:35,360 GDB bilgisayar, debugger, yeteneği vardır 394 00:17:35,360 --> 00:17:37,020 her şeyi takip etmek. 395 00:17:37,020 --> 00:17:40,480 Herhalde Visionaire içinde, çocuklar, biliyorsun Bazı segmentasyon hataları vurdu olabilir 396 00:17:40,480 --> 00:17:43,150 Çalışmakta çünkü senin dizi sınırlarının dışına. 397 00:17:43,150 --> 00:17:46,510 Sezar örnekte, bu Tam burada neler uyguladık. 398 00:17:46,510 --> 00:17:50,060 >> Yani kontrol etmek için unuttum ne olursa olacağını ben 399 00:17:50,060 --> 00:17:52,510 İki komut satırı argümanlarını yoktu. 400 00:17:52,510 --> 00:17:53,880 Ben sadece bu kontrol koymadı. 401 00:17:53,880 --> 00:17:57,380 Ben Debug-- çalıştırırsanız Ve bu yüzden set Benim kesme Orada sağa. 402 00:17:57,380 --> 00:17:58,055 Ben Debug çalıştırın. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> TAMAM. 405 00:18:16,550 --> 00:18:17,050 Evet. 406 00:18:17,050 --> 00:18:20,350 Yani aslında, GDB gerekiyordu Orada bana sahip 407 00:18:20,350 --> 00:18:22,300 Orada bir segmentasyon hatamdı. 408 00:18:22,300 --> 00:18:24,883 Ben neler olduğunu bilmiyorum Orada, ama ben bunu çalıştırdığınızda 409 00:18:24,883 --> 00:18:25,590 o çalışıyordu. 410 00:18:25,590 --> 00:18:29,410 Eğer aracılığıyla kod satırlarını çalıştırdığınızda ve GDB aniden, size çıkmak olabilir 411 00:18:29,410 --> 00:18:31,540 kadar gidip kırmızı hata ne bak. 412 00:18:31,540 --> 00:18:33,930 Bu, hey, sen anlatacağım bir segment hataya vardı, 413 00:18:33,930 --> 00:18:38,550 hangi erişmek için çalıştı anlamına gelir olmasaydı bir dizide yer. 414 00:18:38,550 --> 00:18:39,050 Evet. 415 00:18:39,050 --> 00:18:43,280 >> Bir sonraki sorun Yani Bu hafta ayarlamak, siz 416 00:18:43,280 --> 00:18:45,600 Muhtemelen bir sürü olacak değişkenler etrafında yüzen. 417 00:18:45,600 --> 00:18:48,560 Emin olmak için gitmiyoruz Ne hepsi belli bir noktada demek. 418 00:18:48,560 --> 00:18:53,560 Yani GDB gerçekten bulmaktan size yardımcı olacaktır hepsi eşit ne olduğunu 419 00:18:53,560 --> 00:18:55,940 ve görsel görmek mümkün. 420 00:18:55,940 --> 00:19:01,995 Herkes nasıl karıştırılır Bu herhangi bir çalışma oldu? 421 00:19:01,995 --> 00:19:02,495 Güzel. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Pekala. 424 00:19:10,620 --> 00:19:14,260 Yani bundan sonra, biz Sağ dalmaya gidiyorum 425 00:19:14,260 --> 00:19:17,562 içine farklı dörttür Bu hafta türlü çeşitleri. 426 00:19:17,562 --> 00:19:19,520 Kaçınız, ilk Tüm biz başlamadan önce, 427 00:19:19,520 --> 00:19:23,020 pset3 için tüm spec okudum? 428 00:19:23,020 --> 00:19:23,824 TAMAM. 429 00:19:23,824 --> 00:19:24,740 Sizlerle gurur duyuyorum. 430 00:19:24,740 --> 00:19:29,110 Bu sınıfın yarısı, gibi hangi son kez önemli ölçüde daha fazla olduğunu. 431 00:19:29,110 --> 00:19:33,950 >> Böylece, harika çünkü ne zaman Biz içeriği hakkında konuşmak 432 00:19:33,950 --> 00:19:36,170 lecture-- veya üzgün olarak, section-- de hoşuma 433 00:19:36,170 --> 00:19:38,210 Bunun bir çok ilişki geri pset ne olduğu 434 00:19:38,210 --> 00:19:40,210 ve istediğiniz nasıl senin pset o uygulamak. 435 00:19:40,210 --> 00:19:42,400 Eğer sahip gelmek Yani eğer spec okumak, o olacak 436 00:19:42,400 --> 00:19:45,510 anlamak için çok daha kolay olacak Ben dediğimde neden bahsettiğimi, 437 00:19:45,510 --> 00:19:48,720 hey oh, bu gerçekten olabilir bu tür uygulamak için iyi bir yer. 438 00:19:48,720 --> 00:19:52,870 Okudum sizin kim yüzden senin pset bir parçası olarak, biliyoruz spec, 439 00:19:52,870 --> 00:19:54,900 Eğer zorunda gidiyoruz türden bir tür yazın. 440 00:19:54,900 --> 00:19:58,670 Yani bu çok yararlı olabilir Size bir sürü bugün. 441 00:19:58,670 --> 00:20:01,760 >> Yani biz başlayacağız, esasen, en basit tip 442 00:20:01,760 --> 00:20:04,580 tür, seçim sıralama. 443 00:20:04,580 --> 00:20:06,800 Tipik algoritma Biz bu konuda gitmek istiyorum nasıl 444 00:20:06,800 --> 00:20:10,460 Bu-- Davut bütün bu geçti ders, bu yüzden çabuk birlikte hareket edeceğiz 445 00:20:10,460 --> 00:20:13,900 burada-- Eğer, esasen değerler dizisi var. 446 00:20:13,900 --> 00:20:17,170 Ve sonra bulmak En küçük sıralanmamış değer 447 00:20:17,170 --> 00:20:20,200 ve bu değer ile takas İlk sıralanmamış değer. 448 00:20:20,200 --> 00:20:22,700 Ve sonra sadece tekrar tutmak Listenizdeki geri kalanı ile. 449 00:20:22,700 --> 00:20:25,740 >> Ve burada bir görsel açıklama Bunun işe yarayacağını nasıl. 450 00:20:25,740 --> 00:20:30,460 Biz Yani örneğin, başlamak için Beş elemanlı bir dizi, endeksi ile 451 00:20:30,460 --> 00:20:35,910 4 0, 3, 5, 2, 6 ve 4 değerlerini bu yüzden şimdi array-- yerleştirilir, 452 00:20:35,910 --> 00:20:38,530 biz sadece varsaymak gidiyoruz hepsi unsorted olduğunu 453 00:20:38,530 --> 00:20:41,130 biz başka türlü test değil çünkü. 454 00:20:41,130 --> 00:20:44,130 >> Peki nasıl bir seçim çeşit olur iş o ilk olur ise 455 00:20:44,130 --> 00:20:46,800 bütünüyle koşuyoruz sıralanmamış dizinin. 456 00:20:46,800 --> 00:20:49,120 Bu küçük değerini almak istiyorum. 457 00:20:49,120 --> 00:20:51,750 Bu durumda, 3 içinde sağ Şimdi, en küçüğüdür. 458 00:20:51,750 --> 00:20:52,680 Bu 5 alır. 459 00:20:52,680 --> 00:20:55,620 Hayır, 5 edemememden büyük değildir veya üzgün, 3 edemememden az değil. 460 00:20:55,620 --> 00:20:57,779 Yani asgari değeri hala 3 olduğunu. 461 00:20:57,779 --> 00:20:58,695 Ve sonra 2 olsun. 462 00:20:58,695 --> 00:21:00,990 Oh, gördüğü bilgisayar, 2 3'ten az olduğunu. 463 00:21:00,990 --> 00:21:02,750 2 şimdi asgari değeri olmalıdır. 464 00:21:02,750 --> 00:21:06,630 Ve böylece ilk değere sahip 2 takas. 465 00:21:06,630 --> 00:21:10,702 >> Yani bir geçtikten sonra, biz gerçekten görüyoruz Bu 2 ve 3 takas. 466 00:21:10,702 --> 00:21:13,910 Ve biz sadece yapmaya devam edeceğiz Bu yine dizinin geri kalanı ile. 467 00:21:13,910 --> 00:21:17,660 Yani biz sadece aracılığıyla çalıştırmak için gidiyoruz dizinin son dört indeksler. 468 00:21:17,660 --> 00:21:20,670 Biz 3 olduğunu görürsünüz Bir sonraki en düşük değer. 469 00:21:20,670 --> 00:21:23,240 Yani biz 4 ile bu takas için gidiyoruz. 470 00:21:23,240 --> 00:21:26,900 Ve sonra biz sadece devam için gidiyoruz Sonunda kadar çalışan, sen 471 00:21:26,900 --> 00:21:33,730 Sıralanmış bir dizi olsun hangi 2, 3, 4, 5 ve 6 her sıralanır. 472 00:21:33,730 --> 00:21:37,530 Herkes anladı mı mantığını Bir seçim sıralama nasıl çalıştığını? 473 00:21:37,530 --> 00:21:39,669 >> Sadece çeşit var asgari değeri. 474 00:21:39,669 --> 00:21:41,210 Ne olduğunu takip ediyoruz. 475 00:21:41,210 --> 00:21:45,170 Bunu bulmak zaman, sen takas array-- ilk değeri 476 00:21:45,170 --> 00:21:48,740 ya da değil, ilk value-- Dizideki bir sonraki değeri. 477 00:21:48,740 --> 00:21:50,150 Güzel. 478 00:21:50,150 --> 00:21:55,460 >> Yani adamlar olarak tür kısa bir bakış gördüğümüz, 479 00:21:55,460 --> 00:21:58,450 biz bu pseudocode gidiyoruz. 480 00:21:58,450 --> 00:22:02,510 Yani arkada siz isterseniz Bir masada bir grup, herkes oluştururlar 481 00:22:02,510 --> 00:22:06,170 Biraz ortağı oluşturabilir, ben gidiyorum Sana üç dakika gibi adamlar vermek 482 00:22:06,170 --> 00:22:08,190 Sadece konuşmak için mantık, İngilizce, 483 00:22:08,190 --> 00:22:14,161 biz uygulamak mümkün olabilir ve nasıl pseudocode seçim tür yazmak için. 484 00:22:14,161 --> 00:22:14,910 Ve şeker var. 485 00:22:14,910 --> 00:22:16,118 Gelip şeker alınız. 486 00:22:16,118 --> 00:22:19,520 Eğer arka konum ve isterseniz şeker, sana şeker atmak olabilir. 487 00:22:19,520 --> 00:22:22,850 Aslında, sen-- serin yapmak. 488 00:22:22,850 --> 00:22:23,552 Ah özür dilerim. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 TAMAM. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Biz, isterseniz Yani Bir sınıf, yazma pseudocode 493 00:25:27,140 --> 00:25:30,466 birine yaklaştığınızda nasıl için Bu sorun, sadece çekinmeyin. 494 00:25:30,466 --> 00:25:32,340 Ben sadece dolaşmak ve edeceğiz, sırayla, gruplar sormak 495 00:25:32,340 --> 00:25:35,065 sonraki hat için Biz ne yapıyoruz olmalıdır. 496 00:25:35,065 --> 00:25:37,840 Siz başlatmak istiyorsanız Yani off ilk şey ne 497 00:25:37,840 --> 00:25:40,600 Eğer çalıştığınız zaman yapmak Bu programı çözmek için bir yol uygulamak 498 00:25:40,600 --> 00:25:43,480 seçici bir listeyi sıralamak için? 499 00:25:43,480 --> 00:25:46,349 Sadece biz varsayalım Diyelim bir dizi, tamam mı? 500 00:25:46,349 --> 00:25:49,088 >> HEDEF KİTLE: Bazı oluşturmak istiyorsanız çeşit [duyulamaz] sen o 501 00:25:49,088 --> 00:25:50,420 senin tüm dizi boyunca çalışan. 502 00:25:50,420 --> 00:25:51,128 >> ANDI PENG: Doğru. 503 00:25:51,128 --> 00:25:54,100 Yani yineleme yapmak istiyorum gidiyoruz Her uzayda, değil mi? 504 00:25:54,100 --> 00:26:05,490 Harikulade. 505 00:26:05,490 --> 00:26:08,600 Siz bana vermek istiyorsanız Bir sonraki arkasında, evet LINE. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> HEDEF KİTLE: Onları kontrol tüm küçük için. 508 00:26:13,290 --> 00:26:14,248 >> ANDI PENG: Orada gidiyoruz. 509 00:26:14,248 --> 00:26:17,438 Bu yüzden geçmesi ve kontrol etmek istediğiniz Minimum değer, doğru olduğunu görmek? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Ben o kısaltmak için gidiyorum "min." 512 00:26:24,840 --> 00:26:27,658 Siz sonra ne yapmak istiyorsun Eğer minimum değeri buldum? 513 00:26:27,658 --> 00:26:28,533 >> HEDEF KİTLE: [duyulamaz] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 ANDI PENG: Yani istediğiniz gidiyoruz Bu dizinin ilk ile geçiş 516 00:26:33,150 --> 00:26:33,650 sağ? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Bunu söylemek için gidiyorum, başlangıç. 519 00:26:46,850 --> 00:26:47,220 Pekala. 520 00:26:47,220 --> 00:26:50,386 Yani şimdi ilk takas ettik biri, ne bundan sonra ne yapmak istiyorsun? 521 00:26:50,386 --> 00:26:54,840 Yani şimdi biz biliyoruz ki burada bu Doğru, küçük değeri olmalı? 522 00:26:54,840 --> 00:26:58,310 Sonra ek dinlenmesi ayıklanmamış var dizinin. 523 00:26:58,310 --> 00:27:01,569 Yani eğer, burada ne yapmak istediğinizi adamlar bana bir sonraki satıra vermek istiyorum? 524 00:27:01,569 --> 00:27:04,610 HEDEF KİTLE: Öyleyse yineleme istediğiniz dizinin geri kalanı ile. 525 00:27:04,610 --> 00:27:05,276 ANDI PENG: Evet. 526 00:27:05,276 --> 00:27:09,857 Ve böylece yineleme yok neler tür muhtemelen gerekir ima? 527 00:27:09,857 --> 00:27:10,440 Ne tür-- 528 00:27:10,440 --> 00:27:12,057 >> HEDEF KİTLE: Ah, ek bir değişken? 529 00:27:12,057 --> 00:27:13,890 ANDI PENG: Muhtemelen döngü başka, değil mi? 530 00:27:13,890 --> 00:27:28,914 Bu yüzden belki de istediğiniz gidiyoruz through-- harika yineleme. 531 00:27:28,914 --> 00:27:31,830 Ve sonra geri dönmek için gidiyoruz ve muhtemelen yine en az kontrol 532 00:27:31,830 --> 00:27:32,100 sağ? 533 00:27:32,100 --> 00:27:34,975 Ve tekrar tutmak için gidiyoruz Bu, döngüler çünkü sadece gidiş 534 00:27:34,975 --> 00:27:36,010 Doğru, çalışmasını sağlamak için? 535 00:27:36,010 --> 00:27:39,190 >> Yani siz, biz gördüğünüz gibi sadece genel bir pseudocode var 536 00:27:39,190 --> 00:27:41,480 İstediğimiz nasıl bu program bakmak için. 537 00:27:41,480 --> 00:27:46,646 Burada bu yineleme, biz ne tipik bizim kod yazmak gerekiyor 538 00:27:46,646 --> 00:27:49,270 biz yineleme yapmak istiyorsanız Yapının dizi, ne tür? 539 00:27:49,270 --> 00:27:51,030 Ben Christabel düşünüyorum Daha önce bu dedi. 540 00:27:51,030 --> 00:27:51,500 >> HEDEF KİTLE: döngü için. 541 00:27:51,500 --> 00:27:52,160 >> ANDI PENG: döngü için? 542 00:27:52,160 --> 00:27:52,770 Kesinlikle. 543 00:27:52,770 --> 00:27:56,060 Yani bu muhtemelen bir döngü için olacak. 544 00:27:56,060 --> 00:27:59,240 Ima edecek buraya bir çek nedir? 545 00:27:59,240 --> 00:28:02,536 Genellikle, kontrol etmek istiyorsanız bir şey bir şey varsa else-- 546 00:28:02,536 --> 00:28:03,270 >> HEDEF KİTLE: Eğer. 547 00:28:03,270 --> 00:28:06,790 >> ANDI PENG: Bir eğer, değil mi? 548 00:28:06,790 --> 00:28:10,790 Burada takas Ve sonra, biz olacak Daha sonra üzerine gitmek David çünkü 549 00:28:10,790 --> 00:28:12,770 yanı sıra ders bu geçti. 550 00:28:12,770 --> 00:28:14,580 Ve sonra ikinci yineleme implies-- 551 00:28:14,580 --> 00:28:15,120 >> HEDEF KİTLE: döngü için bir başka. 552 00:28:15,120 --> 00:28:16,745 >> ANDI PENG: Tam, döngü --another. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Biz arıyoruz Yani eğer Bu doğru, biz 555 00:28:22,000 --> 00:28:24,680 muhtemelen olduğunu görebiliyorum for döngüsü iç içe geçmiş bir ihtiyacımız olacak 556 00:28:24,680 --> 00:28:28,330 Orada bir koşullu deyimi ile ve daha sonra kod gerçek bir parçası olduğunu 557 00:28:28,330 --> 00:28:31,360 değerleri takas olacak. 558 00:28:31,360 --> 00:28:35,980 Yani sadece genel yazdım Burada pseudocode kodu. 559 00:28:35,980 --> 00:28:38,910 Ve sonra biz aslında gidiyoruz fiziksel olarak, bir sınıf olarak, 560 00:28:38,910 --> 00:28:40,700 Bu bugün uygulamaya çalışın. 561 00:28:40,700 --> 00:28:42,486 Şimdi bu IDE içine dönelim. 562 00:28:42,486 --> 00:28:49,243 563 00:28:49,243 --> 00:28:50,230 >> Ah ah. 564 00:28:50,230 --> 00:28:51,754 Neden vardır değil-- bu olmasıdır. 565 00:28:51,754 --> 00:28:52,253 TAMAM. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Üzgünüm, bana biraz daha yakınlaştırmak için çalışalım. 568 00:28:57,500 --> 00:28:59,310 Oraya gidiyoruz. 569 00:28:59,310 --> 00:29:05,060 Burada yapıyorum All I yarattık olduğunu adında bir program "seçimi / sort.c." 570 00:29:05,060 --> 00:29:10,860 Ben dokuz bir dizi oluşturduk değerleri, 4, 8, 2, 1, 6, 9, 7, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Şu anda, olarak yapabilirsiniz Onlar sırasız olarak, bkz. 572 00:29:14,370 --> 00:29:17,880 n sayı olacak ki Size değerlerin miktarını söyler 573 00:29:17,880 --> 00:29:18,920 Eğer dizide var. 574 00:29:18,920 --> 00:29:20,670 Bu durumda, dokuz değerlerine sahiptir. 575 00:29:20,670 --> 00:29:23,760 Ve sadece burada bir for döngüsü var Bu sıralanmamış dizi yazdırır. 576 00:29:23,760 --> 00:29:28,370 >> Ve sonunda, ben de bir var Sadece tekrar yazdırır döngü. 577 00:29:28,370 --> 00:29:32,070 Yani teorik olarak, bu program ise sonunda, düzgün çalıştığını, 578 00:29:32,070 --> 00:29:35,670 Bir döngü için basılmış görmelisiniz burada 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 sırayla tüm doğru vardır. 580 00:29:39,310 --> 00:29:43,410 >> Yani biz burada bizim pseudocode var. 581 00:29:43,410 --> 00:29:46,090 Ben sadece ki-- herkes istiyor mu volunteers-- sormak gidecek 582 00:29:46,090 --> 00:29:49,540 eğer ne tip tam söyle Biz öncelikle, sadece yineleme istiyorum 583 00:29:49,540 --> 00:29:52,840 Bu dizinin başından aracılığıyla? 584 00:29:52,840 --> 00:29:55,204 Ben kod satırı neler var Muhtemelen burada ihtiyacımız olacak? 585 00:29:55,204 --> 00:29:56,990 >> HEDEF KİTLE: [duyulamaz] 586 00:29:56,990 --> 00:29:59,010 >> ANDI PENG: Evet, hissediyorum ücretsiz aşağıdaki amaçlara üzgünüm, seni 587 00:29:59,010 --> 00:30:02,318 up-- hissediyorum durmak zorunda değilsiniz Sesinizi biraz yükseltmek için ücretsiz. 588 00:30:02,318 --> 00:30:08,190 >> HEDEF KİTLE: int i eşittir İçin 0-- 589 00:30:08,190 --> 00:30:10,690 >> ANDI PENG: Evet, iyi. 590 00:30:10,690 --> 00:30:15,220 >> İZLEYİCİ i dizi uzunluğundan daha kısadır. 591 00:30:15,220 --> 00:30:19,630 >> ANDI PENG: Yani tutmak Burada akla çünkü biz 592 00:30:19,630 --> 00:30:23,060 bir işlev yok Bize bir dizi uzunluğu söyler, 593 00:30:23,060 --> 00:30:25,790 biz zaten var Bu depolar değer. 594 00:30:25,790 --> 00:30:27,920 Sağ? 595 00:30:27,920 --> 00:30:31,010 Başka bir şey tutmak için Bir dizideki zihinli bölgesindeki 596 00:30:31,010 --> 00:30:33,940 Dokuz değerler, indeksler nelerdir? 597 00:30:33,940 --> 00:30:38,720 Sadece bu dizi 3 0 oldu diyelim. 598 00:30:38,720 --> 00:30:41,500 Geçen görüyoruz endeks aslında 3'tür. 599 00:30:41,500 --> 00:30:45,530 Orada olsa bile, 4 değil, Dizideki dört değer. 600 00:30:45,530 --> 00:30:49,866 >> Buraya Yani, biz çok dikkatli olmak zorundayız uzunluk ne için bizim durumun 601 00:30:49,866 --> 00:30:50,490 olacak. 602 00:30:50,490 --> 00:30:51,948 >> HEDEF KİTLE: Bu n eksi 1 olmaz mıydı? 603 00:30:51,948 --> 00:30:54,440 ANDI PENG: Gidiyor Tam n eksi 1,. 604 00:30:54,440 --> 00:30:57,379 Bu mantıklı, neden mı o n eksi 1, herkes? 605 00:30:57,379 --> 00:30:58,920 Diziler sıfır endeksli çünkü öyle. 606 00:30:58,920 --> 00:31:02,010 Onlar 0'dan başlar ve 1 n eksi kadar çalıştırın. 607 00:31:02,010 --> 00:31:03,210 Evet, bu biraz zor. 608 00:31:03,210 --> 00:31:03,730 TAMAM. 609 00:31:03,730 --> 00:31:05,929 Ve daha sonra-- 610 00:31:05,929 --> 00:31:08,054 HEDEF KİTLE: Isnt'1 o Zaten olsa halledilir, 611 00:31:08,054 --> 00:31:11,400 Sadece daha az ya da "demiyorum tarafından Eşit daha az "ve sadece diyerek" mı? " 612 00:31:11,400 --> 00:31:13,108 >> ANDI PENG: Bu bir var Gerçekten iyi bir soru. 613 00:31:13,108 --> 00:31:13,630 Yani evet. 614 00:31:13,630 --> 00:31:17,410 Ama aynı zamanda, biz yol olduğunu kontrol hakkının uygulanması, 615 00:31:17,410 --> 00:31:19,120 Eğer iki değeri karşılaştırmak gerekir. 616 00:31:19,120 --> 00:31:21,009 Yani aslında istediğiniz "ayarından" boş bırakın. 617 00:31:21,009 --> 00:31:23,050 Karşılaştırmak Çünkü eğer bu bir sen gitmiyorsun 618 00:31:23,050 --> 00:31:25,530 ondan sonra bir şey var Doğru, karşılaştırmak? 619 00:31:25,530 --> 00:31:27,460 Evet. 620 00:31:27,460 --> 00:31:29,297 Yani i ++. 621 00:31:29,297 --> 00:31:30,380 En bizim parantez ekleyelim. 622 00:31:30,380 --> 00:31:30,880 Whoops. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 Büyük. 625 00:31:34,710 --> 00:31:39,117 Bu yüzden başlangıcı var Bizim dış döngünün. 626 00:31:39,117 --> 00:31:41,450 Yani şimdi biz muhtemelen istiyoruz tutmak için bir değişken oluşturmak 627 00:31:41,450 --> 00:31:43,085 En küçük değer parça, değil mi? 628 00:31:43,085 --> 00:31:45,751 Herkes bana vermek istiyor mu Bu yapardı kod satırı? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Biz gidiyoruz biz neye ihtiyacım var bir şey saklamak istiyorum? 631 00:31:53,570 --> 00:31:55,047 >> Sağ. 632 00:31:55,047 --> 00:31:57,630 Bunun için belki daha iyi bir isim "temp" göre-- olur tamamen works-- 633 00:31:57,630 --> 00:32:00,655 belki daha doğrusu olacağını adında bir, Biz küçük value-- istiyorsanız 634 00:32:00,655 --> 00:32:01,624 >> HEDEF KİTLE: Dk. 635 00:32:01,624 --> 00:32:02,790 ANDI PENG: min, oraya gidiyoruz. 636 00:32:02,790 --> 00:32:05,230 dk iyi olurdu. 637 00:32:05,230 --> 00:32:08,340 Ve işte, biz ne bunu başlatmak istiyor? 638 00:32:08,340 --> 00:32:09,620 Bu biraz zor. 639 00:32:09,620 --> 00:32:13,580 Çünkü şu anda en Bu dizinin başında, 640 00:32:13,580 --> 00:32:15,730 Eğer doğru bir şey, baktım değil mi? 641 00:32:15,730 --> 00:32:19,200 Otomatik Peki, eğer Biz sadece ben 0 eşittir konum 642 00:32:19,200 --> 00:32:22,302 Biz başlatmak için ne istiyorsun bizim ilk minimum değer? 643 00:32:22,302 --> 00:32:22,802 HEDEF KİTLE: i. 644 00:32:22,802 --> 00:32:24,790 ANDI PENG: i tam. 645 00:32:24,790 --> 00:32:27,040 Christabel, neden istiyoruz i bunu başlatmak için? 646 00:32:27,040 --> 00:32:28,510 >> HEDEF KİTLE: iyi, Çünkü Biz 0 ile başlıyoruz. 647 00:32:28,510 --> 00:32:31,660 Karşılaştırmak için bir şey var, çünkü Yani o, en az 0 sona erecek için. 648 00:32:31,660 --> 00:32:32,451 >> ANDI PENG: Kesinlikle. 649 00:32:32,451 --> 00:32:34,400 Yani tam olarak doğru. 650 00:32:34,400 --> 00:32:36,780 Biz aslında Çünkü Henüz bir şey baktı 651 00:32:36,780 --> 00:32:38,680 Bizim en küçük değeri nedir bilmiyorum. 652 00:32:38,680 --> 00:32:41,960 Biz sadece bunu başlatmak istiyor Ben, hangi anda, burada. 653 00:32:41,960 --> 00:32:44,750 Ve biz devam ettikçe Bu dizi aşağı doğru hareket, 654 00:32:44,750 --> 00:32:48,122 her ile, göreceksiniz ki Ek geçiren, ben artırır. 655 00:32:48,122 --> 00:32:49,830 Ve böylece bu noktada, ben muhtemelen gidiyor 656 00:32:49,830 --> 00:32:52,329 Minimum olmak istiyorum, o ne olursa olsun olacak çünkü 657 00:32:52,329 --> 00:32:54,520 ayıklanmamış dizinin başlangıcıdır. 658 00:32:54,520 --> 00:32:55,270 Güzel. 659 00:32:55,270 --> 00:32:58,720 >> Yani şimdi eklemek istediğiniz burada bir döngü için de bu 660 00:32:58,720 --> 00:33:03,225 yineleme yapmak için gidiyor ayrımı yapılmamış diğer veya bu dizinin geri kalanı. 661 00:33:03,225 --> 00:33:05,808 Herkes bana bir vermek istiyor mu Bu yapardı kod satırı? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- burada ne aşağı gerekiyor? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Ne döngüsü için bu gidecek? 666 00:33:18,820 --> 00:33:19,465 Evet. 667 00:33:19,465 --> 00:33:21,590 HEDEF KİTLE: Yani biz isterdim Farklı bir tamsayı olması, 668 00:33:21,590 --> 00:33:25,080 gerisini biz içinden koşuyoruz çünkü yerine i dizisi, belki bir 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> ANDI PENG: Evet, j bana iyi geliyor. 671 00:33:27,301 --> 00:33:27,850 Eşittir? 672 00:33:27,850 --> 00:33:33,930 >> HEDEF KİTLE: Yani, çünkü i olmak artı 1 olur Bir sonraki değerde başlıyoruz. 673 00:33:33,930 --> 00:33:40,395 Ve sonra bunu tekrar end-- için, j n eksi 1, ve sonra j ++ daha az. 674 00:33:40,395 --> 00:33:41,103 ANDI PENG: Büyük. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Ve sonra burada, bizim istediğimiz gidiyoruz Bizim koşul karşılandığında olup olmadığını görmek için kontrol etmek, 677 00:33:52,750 --> 00:33:53,250 sağ? 678 00:33:53,250 --> 00:33:55,740 İstediğiniz Çünkü minimum değeri değiştirmek 679 00:33:55,740 --> 00:33:58,700 o aslında daha küçük olursa neler Eğer doğru, karşılaştırarak, değil mi? 680 00:33:58,700 --> 00:34:01,146 Peki biz burada istiyorum yapacaksın? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Görmek için kontrol edin. 683 00:34:04,897 --> 00:34:06,730 Deyimi ne tür Muhtemelen gidiyoruz 684 00:34:06,730 --> 00:34:08,389 ti kullanmak istediğiniz biz şeyi kontrol etmek istiyor? 685 00:34:08,389 --> 00:34:09,360 >> HEDEF KİTLE: Bir deyimi ise. 686 00:34:09,360 --> 00:34:10,485 >> ANDI PENG: Bir if ifadesi. 687 00:34:10,485 --> 00:34:13,155 Yani ve-- ve olacak ne İçeri istiyoruz durum 688 00:34:13,155 --> 00:34:13,988 Bizim ise ifadenin? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> HEDEF KİTLE: Eğer j değeri ben- değerinden daha azdır 691 00:34:22,960 --> 00:34:24,600 >> ANDI PENG: Kesinlikle. 692 00:34:24,600 --> 00:34:27,480 Yani ve-- nedenle bu dizi "dizi" denir. 693 00:34:27,480 --> 00:34:27,980 Büyük. 694 00:34:27,980 --> 00:34:30,465 Bu neydi array-- Yani eğer? 695 00:34:30,465 --> 00:34:31,090 Tekrar söyle. 696 00:34:31,090 --> 00:34:39,590 >> İZLEYİCİ: dizi-j daha az ise Dizi-i, o zaman min değiştirmek istiyorsunuz. 697 00:34:39,590 --> 00:34:41,590 Yani dk j olacaktır. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> ANDI PENG: mantıklı mı? 700 00:34:47,249 --> 00:34:48,670 TAMAM. 701 00:34:48,670 --> 00:34:52,929 Ve şimdi burada, biz aslında Doğru, takas uygulamak istiyor? 702 00:34:52,929 --> 00:34:58,285 Yani, derste, hatırlama David, o zaman O Şeyin ne takas çalışıyordu 703 00:34:58,285 --> 00:34:59,996 bu-- portakal suyu ve milk-- 704 00:34:59,996 --> 00:35:01,150 >> HEDEF KİTLE: O Brüt. 705 00:35:01,150 --> 00:35:02,816 >> ANDI PENG: Evet, bu tür brüt oldu. 706 00:35:02,816 --> 00:35:05,310 Ama oldukça iyi kavram süresini gösteren. 707 00:35:05,310 --> 00:35:08,430 Yani burada değerlerinin düşünüyorum. 708 00:35:08,430 --> 00:35:10,794 Bir dizi var dakika, i bir dizi, 709 00:35:10,794 --> 00:35:12,460 ya da biz burada takas çalışıyorlardı neyse. 710 00:35:12,460 --> 00:35:15,310 Ve muhtemelen içine dökün olamaz Aynı anda birbirine doğru? 711 00:35:15,310 --> 00:35:17,180 Bu yüzden neler olduğunu Burada oluşturmanız gerekir 712 00:35:17,180 --> 00:35:19,126 Doğru değerleri takas etmek için? 713 00:35:19,126 --> 00:35:19,820 >> HEDEF KİTLE: Geçici değişken. 714 00:35:19,820 --> 00:35:21,370 >> ANDI PENG: Geçici değişken. 715 00:35:21,370 --> 00:35:22,570 O yüzden int temp yapalım. 716 00:35:22,570 --> 00:35:25,681 Bu bir iyi olurdu, bakın dur ki-- zaman o da neydi? 717 00:35:25,681 --> 00:35:26,180 TAMAM. 718 00:35:26,180 --> 00:35:29,800 Yani bu bir daha iyi olurdu Zaman değişken "temp." isim 719 00:35:29,800 --> 00:35:30,730 O yüzden int temp yapalım. 720 00:35:30,730 --> 00:35:32,563 Biz ne yapacağız Buraya eşit temp ayarlamak? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 HEDEF KİTLE: Min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 ANDI PENG: Bu biraz zor. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Aslında sonunda önemli değil. 727 00:35:44,880 --> 00:35:47,690 O ne önemi yok sırası takas tercih 728 00:35:47,690 --> 00:35:50,862 sürece emin konum olarak sen Eğer takas şeyin takip. 729 00:35:50,862 --> 00:35:52,250 >> HEDEF KİTLE: Bu dizi-i olabilir. 730 00:35:52,250 --> 00:35:53,666 >> ANDI PENG: Evet, dizi-i yapalım. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Ve sonra bir sonraki çizgi ne kodun burada olmasını ister misin? 733 00:35:59,305 --> 00:36:00,680 HEDEF KİTLE: dizi-i dizi-j eşittir. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 ANDI PENG: Ve son olarak? 736 00:36:08,070 --> 00:36:12,070 HEDEF KİTLE: dizi-j dizi-i eşittir. 737 00:36:12,070 --> 00:36:14,525 HEDEF KİTLE: Ya dizi-j eşittir Dizi-temp-- veya geçici. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> ANDI PENG: Tamam. 740 00:36:19,430 --> 00:36:21,510 Yani bu çalışmasına izin ve görmek işe gidiyor eğer. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Nerede oluyor? 743 00:36:39,335 --> 00:36:40,210 Oh, bu bir sorun. 744 00:36:40,210 --> 00:36:44,320 Biz konum, hat 40, Bkz Dizi-j kullanmaya çalışıyorum? 745 00:36:44,320 --> 00:36:47,022 Ama nerede sadece j mevcut mu? 746 00:36:47,022 --> 00:36:48,402 >> HEDEF KİTLE: döngü içinde. 747 00:36:48,402 --> 00:36:49,110 ANDI PENG: Doğru. 748 00:36:49,110 --> 00:36:51,730 Peki ne yapmamız ihtiyacımız olacak? 749 00:36:51,730 --> 00:36:53,170 >> HEDEF KİTLE: Şeyin dışına Define 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 HEDEF KİTLE: Evet, var sanırım Açıklamada, sağ ise başka kullanılır? 752 00:37:00,610 --> 00:37:05,230 Yani böyle, eğer minimum-- tamam, düşüneyim. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> ANDI PENG: Beyler, denemek bir göz Let en almaya 755 00:37:09,990 --> 00:37:11,270 biz burada bir şey ne yapabiliriz ki bakın? 756 00:37:11,270 --> 00:37:11,811 >> HEDEF KİTLE: Tamam. 757 00:37:11,811 --> 00:37:15,900 Minimum eşit değildir Yani eğer en az ise j-- kadar hareketsiz ben- 758 00:37:15,900 --> 00:37:17,570 o zaman biz takas olmazdı. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> ANDI PENG: ben bu eşit mi? 761 00:37:24,712 --> 00:37:25,920 Burada ne demek istiyorsun? 762 00:37:25,920 --> 00:37:30,494 >> HEDEF KİTLE: Ya evet, eğer Asgari evet, eşit değildir i yapar. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 ANDI PENG: Tamam. 765 00:37:40,210 --> 00:37:42,040 Peki bizim sorunlar tür, çözer. 766 00:37:42,040 --> 00:37:47,265 Ama bu yine de çözmez j beri j-- ne olur sorunu 767 00:37:47,265 --> 00:37:49,890 bunun dışında mevcut değildir, ya Eğer biz onunla yapmak istiyorsun? 768 00:37:49,890 --> 00:37:50,698 Dışarıda beyan? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Şimdi bu çalışan deneyelim. 771 00:38:02,730 --> 00:38:04,435 Ah ah. 772 00:38:04,435 --> 00:38:06,200 Bizim sıralama çalışmıyor. 773 00:38:06,200 --> 00:38:10,060 >> Eğer, bizim ilk harfini görebileceğiniz gibi Dizi bu değerleri vardı. 774 00:38:10,060 --> 00:38:14,800 Ve daha sonra o olmalı 1, 2, 3, 4, 5, 6, 7, 8, 9 olmuştur. 775 00:38:14,800 --> 00:38:15,530 Çalışmıyor. 776 00:38:15,530 --> 00:38:16,030 Ahh. 777 00:38:16,030 --> 00:38:17,184 Biz ne yaptık? 778 00:38:17,184 --> 00:38:17,850 HEDEF KİTLE: Debug. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 ANDI PENG: Pekâlâ, bunu deneyebilirsiniz. 781 00:38:23,370 --> 00:38:25,030 Biz hata. 782 00:38:25,030 --> 00:38:26,042 Biraz uzaklaştırmak. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 En Bizim kesme noktası ayarlamak edelim. 785 00:38:33,656 --> 00:38:37,280 En da-- OK gidelim. 786 00:38:37,280 --> 00:38:40,444 >> Biz zaten biliyoruz çünkü Yani bu çizgiler, 15 ile 22 arasındaki, 787 00:38:40,444 --> 00:38:43,610 Ben yapıyorum, tüm çünkü working-- vardır sadece aracılığıyla ve printing-- yineleme 788 00:38:43,610 --> 00:38:45,406 Devam edin ve bu atlayabilirsiniz. 789 00:38:45,406 --> 00:38:47,280 Hattı 25 başlayalım. 790 00:38:47,280 --> 00:38:48,712 Oop, bana bunu kurtulmak edelim. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> HEDEF KİTLE: Yani kırılma noktası en hata ayıklama nerede başlar? 793 00:38:54,057 --> 00:38:54,890 ANDI PENG: Ya durur. 794 00:38:54,890 --> 00:38:55,670 HEDEF KİTLE: Ya durur. 795 00:38:55,670 --> 00:38:55,930 ANDI PENG: Evet. 796 00:38:55,930 --> 00:38:58,640 Birden fazla kesme noktalarını ayarlayabilir ve Sadece diğerine atlayabilir. 797 00:38:58,640 --> 00:39:01,590 Ama bu durumda biz bilmiyoruz nerede hata oluyor. 798 00:39:01,590 --> 00:39:03,780 Yani biz sadece istiyoruz yukarıdan aşağıya başlar. 799 00:39:03,780 --> 00:39:05,020 Evet. 800 00:39:05,020 --> 00:39:05,550 TAMAM. 801 00:39:05,550 --> 00:39:08,460 >> Yani burada bu hat, biz adım atabilirsiniz. 802 00:39:08,460 --> 00:39:11,499 Sen, burada görebilirsiniz Biz bir dizi var. 803 00:39:11,499 --> 00:39:13,290 Bu değerler dizisinde olduğu. 804 00:39:13,290 --> 00:39:16,360 Görüyor musun, ne kadar endeks 0, bu oh value-- tekabül 805 00:39:16,360 --> 00:39:17,526 Ben yakınlaştırmak için denemek için gidiyorum. 806 00:39:17,526 --> 00:39:20,650 Üzgünüm, gerçekten zor Dizi indeksi 0 see-- için, 807 00:39:20,650 --> 00:39:24,090 biz 4 arasında bir değere sahiptir ve Daha sonra böyle devam eder vb. 808 00:39:24,090 --> 00:39:25,670 Bizim yerel değişkenler var. 809 00:39:25,670 --> 00:39:28,570 Şu anda ben eşittir Biz olmak istiyoruz 0. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Ve o yüzden atlama devam edelim. 812 00:39:33,690 --> 00:39:36,850 Minimum 0'a eşittir hangi biz de olmak istiyoruz. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Ve sonra bizim ikinci girin Döngü, dizi-j dizi-i daha az ise, 815 00:39:45,560 --> 00:39:46,380 hangi değildi. 816 00:39:46,380 --> 00:39:48,130 Peki nasıl gördün o atlanır? 817 00:39:48,130 --> 00:39:52,430 >> HEDEF KİTLE: Yani eğer gerekir Minimum tüm ki- gerektiği değil 818 00:39:52,430 --> 00:39:55,424 döngüsü için ilk içinde olması? 819 00:39:55,424 --> 00:39:57,340 ANDI PENG: Hayır, çünkü Hala test etmek istiyorum. 820 00:39:57,340 --> 00:40:00,329 Her bir karşılaştırma yapmak istiyorum Zaman, bunun üzerinden çalıştırmak sonra bile. 821 00:40:00,329 --> 00:40:02,620 Sadece bunu yapmak istemiyorum İlk Geçişkenliğin üzerinde. 822 00:40:02,620 --> 00:40:05,240 Sen bunu yapmak istiyorum Yine her ek pas. 823 00:40:05,240 --> 00:40:07,198 Yani kontrol etmek istiyorum içinde senin durum. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Yani biz sadece gidiyoruz Buradan çalışmaya devam. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Ben adamlar sana bir ipucu vereyim. 828 00:40:18,420 --> 00:40:23,910 Bu gerçeği ile ilgisi yoktur o zaman Eğer, senin koşullu kontrol ediyoruz 829 00:40:23,910 --> 00:40:26,600 Eğer kontrol değilsin Doğru indeksi için. 830 00:40:26,600 --> 00:40:32,510 Yani şu an için kontrol ediyoruz j dizi dizini dizisi daha az 831 00:40:32,510 --> 00:40:33,970 i indeksi. 832 00:40:33,970 --> 00:40:36,580 Ama ne kadar yapıyorsun for döngüsü başlangıcı? 833 00:40:36,580 --> 00:40:38,260 Eğer i eşit j ayarı değil misin? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Evet, bu yüzden biz aslında can Burada hata ayıklayıcı çıkın. 836 00:40:45,415 --> 00:40:47,040 Yani bizim pseudocode bir göz atalım. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- biz gidiyoruz Ben 0 eşittir başlayacak. 839 00:40:52,580 --> 00:40:54,760 Biz 1 n eksi kadar gidiyoruz. 840 00:40:54,760 --> 00:40:58,040 Kontrol edelim, biz bu hakkı var mı? 841 00:40:58,040 --> 00:40:59,580 Evet, bu doğru oldu. 842 00:40:59,580 --> 00:41:02,080 >> O zaman burada içinde biz konum Minimum değer yaratmak için gidiyor 843 00:41:02,080 --> 00:41:03,630 ve i, eşit olarak ayarlayın. 844 00:41:03,630 --> 00:41:04,950 Biz bunu? 845 00:41:04,950 --> 00:41:06,270 Evet, yaptım. 846 00:41:06,270 --> 00:41:10,430 Şimdi bizim iç için döngü, biz konum j yapacağım ben n eksi 1 eşittir. 847 00:41:10,430 --> 00:41:11,950 Biz bunu? 848 00:41:11,950 --> 00:41:15,540 Nitekim, biz bunu yaptık. 849 00:41:15,540 --> 00:41:19,922 >> Yani ancak, biz burada ne karşılaştırdığınız? 850 00:41:19,922 --> 00:41:20,925 >> HEDEF KİTLE: j artı 1. 851 00:41:20,925 --> 00:41:21,716 ANDI PENG: Kesinlikle. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Ve sonra ayarlamak istediğiniz gidiyoruz j artı 1 de eşit minimum. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Yani gerçekten çabuk geçti. 856 00:41:32,640 --> 00:41:36,190 Siz anladınız mı neden j artı 1 var? 857 00:41:36,190 --> 00:41:36,890 TAMAM. 858 00:41:36,890 --> 00:41:40,700 >> Senin dizide, So aracılığıyla ilk geçiş, 859 00:41:40,700 --> 00:41:44,850 senin for döngüsü, int i 0 eşittir, hadi izin ver 860 00:41:44,850 --> 00:41:46,740 Bu henüz bir değişiklik olmamıştır varsayalım. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Biz tamamen, bir dizi var, Sadece dört ayrımı yapılmamış diğer unsurlar, değil mi? 863 00:41:56,760 --> 00:42:00,760 Bu yüzden ben 0 eşit başlatmak istiyor. 864 00:42:00,760 --> 00:42:03,650 Ve ben gidiyor sadece Bu döngü içinde çalışır. 865 00:42:03,650 --> 00:42:08,560 Ve böylece ilk geçişte, biz gidiyoruz "min" adlı bir değişkeni başlatmak için 866 00:42:08,560 --> 00:42:11,245 bu da, çünkü i eşittir Biz minimum değeri yoktur. 867 00:42:11,245 --> 00:42:12,870 Yani hem 0'a eşit anda bu. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Ve sonra içinden gideceğiz. 870 00:42:17,640 --> 00:42:19,270 Ve biz yine yineleme yapmak istiyorum. 871 00:42:19,270 --> 00:42:22,900 Şimdi buldum bu ne bizim asgari Biz yineleme yapmak istiyorum, bir 872 00:42:22,900 --> 00:42:25,190 o karşılaştırarak eğer tekrar sağa, görmek? 873 00:42:25,190 --> 00:42:40,440 Yani j, burada, gidiyor Eşit i, 0 olan. 874 00:42:40,440 --> 00:42:46,320 Ve sonra eğer dizi j artı ben, hangi daha az olarak, önümüzdeki bitti biridir 875 00:42:46,320 --> 00:42:49,270 ne şimdiki asgari daha değer takas etmek istediğiniz vardır. 876 00:42:49,270 --> 00:42:56,850 >> Yani sadece biz ettik diyelim 2, 5, 1, 8, olduğu gibi, var. 877 00:42:56,850 --> 00:43:01,610 Şu anda, ben eşittir 0 ve j, 0 ile eşittir. 878 00:43:01,610 --> 00:43:05,210 Ve bu bizim minimum değerdir. 879 00:43:05,210 --> 00:43:09,950 Dizi-j Eğer artı ben-- biri eğer öyleyse biz bakıyoruz biri peşinde 880 00:43:09,950 --> 00:43:13,450 , bir öncekinden daha büyüktür asgari olmaya gidiyor. 881 00:43:13,450 --> 00:43:18,120 >> Yani burada biz 5 görüyoruz daha az değildir. 882 00:43:18,120 --> 00:43:19,730 Yani 5 değil gidiyor. 883 00:43:19,730 --> 00:43:23,580 Biz 1 sağ, 2'den az olduğunu görüyoruz? 884 00:43:23,580 --> 00:43:32,970 Yani şimdi bizim minimum olduğunu biliyoruz 0, 1, 2, endeks değeri olacak. 885 00:43:32,970 --> 00:43:34,030 Evet? 886 00:43:34,030 --> 00:43:39,170 Ve sonra, buraya geldiğinizde Doğru değerleri takas edebilirsiniz. 887 00:43:39,170 --> 00:43:42,610 >> Yani siz sadece j yapıyorduk zaman daha önce, sen bir de aradılar değil 888 00:43:42,610 --> 00:43:43,260 ondan sonra. 889 00:43:43,260 --> 00:43:44,520 Sen aradılar Aynı değer, hangi 890 00:43:44,520 --> 00:43:46,290 Sadece bir şey yapmıyorum neden olduğunu. 891 00:43:46,290 --> 00:43:49,721 Bu herkese mantıklı mı, Neden biz artı orada 1 gerekiyordu? 892 00:43:49,721 --> 00:43:50,220 TAMAM. 893 00:43:50,220 --> 00:43:53,345 Şimdi yapmak yoluyla Sadece çalışmasına izin Emin kod kalanı doğrudur. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Neden oluyor? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ah, burada dk. 898 00:44:16,364 --> 00:44:17,780 Biz yanlış bir değer karşılaştırarak bulundu. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 Oh hayır. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> Oh evet, burada biz yanı sıra yanlış değerler takas. 903 00:44:33,482 --> 00:44:34,940 Biz i ve j bakarak çünkü. 904 00:44:34,940 --> 00:44:36,440 Bunlar biz kontrol edildi olanlardır. 905 00:44:36,440 --> 00:44:39,160 Biz aslında takas etmek istiyorum Asgari, mevcut asgari, 906 00:44:39,160 --> 00:44:40,550 ne olursa olsun, bir dışındadır. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Ve siz aşağı gördüğünüz gibi Burada, biz sıralanmış bir dizi var. 909 00:45:05,402 --> 00:45:07,110 Sadece yapmak zorunda Aslında o zaman 910 00:45:07,110 --> 00:45:09,350 biz kontrol edildi Biz karşılaştırarak değerleri 911 00:45:09,350 --> 00:45:11,226 Doğru değerlere bakarak değildi. 912 00:45:11,226 --> 00:45:13,850 Aynı biri aradılar Burada, aslında takas değil. 913 00:45:13,850 --> 00:45:17,135 Sen bir sonrakine bakmak zorunda ona ve sonra takas edebilirsiniz. 914 00:45:17,135 --> 00:45:19,260 Yani bu tür buydu önce kodu adamcağız. 915 00:45:19,260 --> 00:45:22,460 Ve ben burada yaptım herşey ayıklayıcı sizin için yapmış olabilir 916 00:45:22,460 --> 00:45:23,810 Ben sadece bunu yaptım Yönetim Kurulu, daha kolay çünkü 917 00:45:23,810 --> 00:45:26,320 çalışırken ziyade görmek için debugger yakınlaştırmak için. 918 00:45:26,320 --> 00:45:29,391 Bu herkese mantıklı mı? 919 00:45:29,391 --> 00:45:29,890 Güzel. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Pekala. 922 00:45:35,410 --> 00:45:41,070 Biz bahsediyoruz taşıyabilirsiniz asimptotik gösterimi, hangi 923 00:45:41,070 --> 00:45:44,580 demenin süslü bir yoludur bu tür tüm runtimes. 924 00:45:44,580 --> 00:45:47,650 Yani derste, David biliyorum, runtimes değindi. 925 00:45:47,650 --> 00:45:52,124 Ve o bütün formülü geçti ve runtimes nasıl hesaplanacağını. 926 00:45:52,124 --> 00:45:53,040 Bu konuda hiçbir endişe. 927 00:45:53,040 --> 00:45:54,660 Eğer gerçekten meraklı iseniz çalıştığını nasıl, 928 00:45:54,660 --> 00:45:55,810 bölümünden sonra benimle konuşmak için çekinmeyin. 929 00:45:55,810 --> 00:45:57,560 Biz üzerinden yürüyebilir Birlikte formülleri. 930 00:45:57,560 --> 00:46:00,689 Ama hepinizin gerçekten var biliyorum n üzerinde 2 karesi olduğunu 931 00:46:00,689 --> 00:46:01,980 n karesi ile aynı şeydir. 932 00:46:01,980 --> 00:46:04,710 En çok sayıda Çünkü üs, çoğu yetişir. 933 00:46:04,710 --> 00:46:06,590 Ve böylece bizim amaçlı, biz umurumda tüm 934 00:46:06,590 --> 00:46:09,470 büyüyen bu dev sayıdır. 935 00:46:09,470 --> 00:46:13,340 >> Peki en iyi durumda Seçim tür zamanı? 936 00:46:13,340 --> 00:46:15,830 Eğer sahip gidiyoruz Bir listede yineleme 937 00:46:15,830 --> 00:46:18,712 ve daha sonra üzerinden yineleme Bu listenin geri kalanı, 938 00:46:18,712 --> 00:46:20,420 kaç kere Eğer, büyük ihtimalle gidiyor 939 00:46:20,420 --> 00:46:24,612 by case-- bölgesindeki durum iyi, üzerinden çalıştırmak sorry--? 940 00:46:24,612 --> 00:46:27,070 Belki daha iyi bir soru sormak, en kötü durum nedir 941 00:46:27,070 --> 00:46:28,153 Seçim tür zamanı. 942 00:46:28,153 --> 00:46:29,366 HEDEF KİTLE: n karesi. 943 00:46:29,366 --> 00:46:30,740 ANDI PENG: Bu n sağ karesi oluyor. 944 00:46:30,740 --> 00:46:36,986 Bu gibi Yani kolay bir yolu düşünmek, Eğer döngüler için iç içe iki tane var her zaman, 945 00:46:36,986 --> 00:46:38,110 o n karesi alınacak gidiyor. 946 00:46:38,110 --> 00:46:40,386 Sen çünkü sadece bir kez daha üzerinden çalışan, 947 00:46:40,386 --> 00:46:42,260 geri gitmek zorunda etrafında ve bunun üzerinden çalıştırmak 948 00:46:42,260 --> 00:46:44,980 bir kez daha, her değeri içinde. 949 00:46:44,980 --> 00:46:48,640 Yani bu durumda, sen n koşuyoruz Zaman n, üzgünüm bu-- hangi karesi 950 00:46:48,640 --> 00:46:50,505 n Zaman n, n karesi eşittir hangi. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Ve sıralama da biraz anlamda benzersiz 953 00:46:56,360 --> 00:46:59,774 bu ise önemli değil değerler sırayla zaten. 954 00:46:59,774 --> 00:47:01,440 Hala zaten üzerinden çalıştırmak için gidiyor. 955 00:47:01,440 --> 00:47:03,872 Sadece bu 1, 2, 3, 4 oldu diyelim. 956 00:47:03,872 --> 00:47:07,080 Ne olursa olsun o oldu olsun veya olmasın Sipariş, hala ile koştu olurdu 957 00:47:07,080 --> 00:47:08,620 ve hala minimum değeri kontrol etti. 958 00:47:08,620 --> 00:47:10,100 Bu yapmış olur çek aynı sayıda 959 00:47:10,100 --> 00:47:12,780 her zaman, hatta eğer Aslında bir şey dokunmadı. 960 00:47:12,780 --> 00:47:16,940 >> Böyle bir durumda Yani, en iyi ve en kötü çalışma zamanları, aslında eşdeğerdir. 961 00:47:16,940 --> 00:47:19,160 Yani beklenen çalışma zamanı Seçim tür, 962 00:47:19,160 --> 00:47:23,790 hangi biz sembolü ile tayin teta, teta, bu durumda, 963 00:47:23,790 --> 00:47:24,790 Ayrıca n karesi olacaktır. 964 00:47:24,790 --> 00:47:26,480 Bütün bunlar üç n karesi olacaktır. 965 00:47:26,480 --> 00:47:29,653 Neden herkes açık mı Çalışma zamanı n karesi nedir? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Pekala. 968 00:47:33,980 --> 00:47:39,120 Yani ben sadece hızlı bir şekilde çalıştırmak için gidiyorum türlü geri kalanında. 969 00:47:39,120 --> 00:47:41,137 Algoritması kabarcık, hatırlamak sort-- 970 00:47:41,137 --> 00:47:43,220 Bu birincisi oldu Davut derste gitti. 971 00:47:43,220 --> 00:47:46,000 Esasen, size adım Tüm liste üzerinden 972 00:47:46,000 --> 00:47:48,950 ve seni swap-- Bir seferde ikisini karşılaştırın. 973 00:47:48,950 --> 00:47:51,350 Ve bir daha büyük ise Senden sadece onları takas. 974 00:47:51,350 --> 00:47:53,590 Bu büyük iseniz Yani, takas olur. 975 00:47:53,590 --> 00:47:56,180 Ben burada resmi var. 976 00:47:56,180 --> 00:47:59,100 >> Yani sadece 8, 6, 4, 2 vardı diyelim. 977 00:47:59,100 --> 00:48:00,571 Sen 8 ve 6 karşılaştırmak istiyorsunuz. 978 00:48:00,571 --> 00:48:01,570 Onları takas gerekiyordu. 979 00:48:01,570 --> 00:48:02,610 Sen 8 ve 4 karşılaştırmak istiyorsunuz. 980 00:48:02,610 --> 00:48:03,609 Onları takas gerekiyordu. 981 00:48:03,609 --> 00:48:07,000 Eğer 8 takas varsa ve 2, onları da değiştirin. 982 00:48:07,000 --> 00:48:10,760 Böyle bir anlamda Yani, gördüğünüz Uzun bir süre boyunca oynanan, 983 00:48:10,760 --> 00:48:13,730 nasıl kabarcık değerleri tür için olduğu biter, bunu neden diyoruz 984 00:48:13,730 --> 00:48:15,320 kabarcık sıralama. 985 00:48:15,320 --> 00:48:19,950 >> Biz sadece yeniden aracılığıyla aday olacağını İkinci geçiş ve üçüncü geçiren, 986 00:48:19,950 --> 00:48:21,150 ve bizim dördüncü pas. 987 00:48:21,150 --> 00:48:25,820 Esasen, kabarcık sıralama sadece çalışır Artık swapları yapmazlar kadar. 988 00:48:25,820 --> 00:48:31,109 Bu anlamda Yani, bu sadece bir Bunun için genel bir sözde kod. 989 00:48:31,109 --> 00:48:32,650 Endişeye gerek yok, bunların hepsi online olacak. 990 00:48:32,650 --> 00:48:34,990 Biz aslında bu üzerinde gitmek zorunda değilsiniz. 991 00:48:34,990 --> 00:48:38,134 >> Biz sadece bir sayaç başlatılamıyor 0 başlar değişken. 992 00:48:38,134 --> 00:48:39,800 Ve biz tüm dizi boyunca yineleme. 993 00:48:39,800 --> 00:48:43,420 Ve bir değer eğer bu bu-- eğer bir değer, bu değerin daha büyüktür 994 00:48:43,420 --> 00:48:44,610 Onları takas için gidiyoruz. 995 00:48:44,610 --> 00:48:46,860 Ve sonra sadece sensin devam edecek. 996 00:48:46,860 --> 00:48:47,970 Ve saymak için gidiyoruz. 997 00:48:47,970 --> 00:48:50,845 Ve sadece yapmaya devam edeceğiz Bu sayaç yüksek olduğunda 998 00:48:50,845 --> 00:48:53,345 anlamına gelir, 0, daha Her zaman takas var 999 00:48:53,345 --> 00:48:55,220 Eğer gitmek istediğini biliyorum sırt ve tekrar kontrol edin. 1000 00:48:55,220 --> 00:48:59,510 Sen biliyorsun kadar kontrolünü tutmak istiyorum Bu artık takas gerekmez. 1001 00:48:59,510 --> 00:49:05,570 >> Yani iyi ve en kötü ne Olgu kabarcık sıralama için runtimes? 1002 00:49:05,570 --> 00:49:09,300 Ve hint-- bu aslında farklı anlamda seçim tür gelen 1003 00:49:09,300 --> 00:49:11,810 Bu iki cevaplar aynı olmadığını. 1004 00:49:11,810 --> 00:49:14,709 Içinde neler olacağını düşünün bir olgu zaten sıralama eğer. 1005 00:49:14,709 --> 00:49:16,500 Ve ne düşündüğünüzü o olsaydı ne olurdu 1006 00:49:16,500 --> 00:49:18,372 bunun içinde bu kriteri değildi. 1007 00:49:18,372 --> 00:49:20,580 Ve ne tür çalıştırabilirsiniz Bu yüzden aracılığıyla bu oluyor. 1008 00:49:20,580 --> 00:49:22,954 Ben, 30 gibi, sizi vereceğim saniyeden düşünmek. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> TAMAM. 1011 00:49:53,540 --> 00:49:57,462 Herkes ne bir tahmin var mı kabarcık tür kötü durumda çalışma zamanı nedir? 1012 00:49:57,462 --> 00:49:57,962 Evet. 1013 00:49:57,962 --> 00:50:07,810 >> HEDEF KİTLE: Bu gibi n kat Would n eksi böyle 1 falan mı? 1014 00:50:07,810 --> 00:50:10,650 Gibi, çalışan her zaman, o tek takas az gibi, sadece var 1015 00:50:10,650 --> 00:50:10,960 ne olursa olsun o oldu. 1016 00:50:10,960 --> 00:50:12,668 >> ANDI'nin PENG: Evet, yani tamamen haklısın. 1017 00:50:12,668 --> 00:50:15,940 Ve bu iyi bir örnek aşağıdadır Bu sorunun cevabı aslında daha karmaşık oldu 1018 00:50:15,940 --> 00:50:17,240 birden biz vermek gerekir. 1019 00:50:17,240 --> 00:50:19,772 Bu yüzden ben run-- gidiyor Burada tüm bu silmek için gidiyoruz. 1020 00:50:19,772 --> 00:50:20,480 Herkes iyi mi? 1021 00:50:20,480 --> 00:50:21,869 Ben bu silebilir miyim? 1022 00:50:21,869 --> 00:50:22,368 TAMAM. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Sen n üzerinden çalıştırmak için gidiyoruz Zaman ilk kez, değil mi? 1025 00:50:30,320 --> 00:50:33,200 Ve onlar üzerinden çalıştırmak için gidiyoruz n eksi 1 ikinci kez, değil mi? 1026 00:50:33,200 --> 00:50:37,130 Ve sonra tutacaklar n madeni 2, vesaire, gidiyor. 1027 00:50:37,130 --> 00:50:40,210 David nerede bir konferans, bu yaptım Tüm bu değerleri toplasaydınız, 1028 00:50:40,210 --> 00:50:48,080 Eğer bir şeyi almak da-- Evet-- aslında sadece azaltan 2'ye üzerinde 1029 00:50:48,080 --> 00:50:49,784 n aşağı karesi. 1030 00:50:49,784 --> 00:50:51,700 Bir almak için gidiyoruz Orada garip kısmı. 1031 00:50:51,700 --> 00:50:53,892 Ve böylece sadece biliyorum n her zaman karesi 1032 00:50:53,892 --> 00:50:55,350 kesir önceliklidir. 1033 00:50:55,350 --> 00:50:58,450 Böylece bu durumda, en kötü Çalışma zamanı n karesi olacaktır. 1034 00:50:58,450 --> 00:51:00,210 O inen olsaydı Sipariş, seni düşünüyorum 1035 00:51:00,210 --> 00:51:02,530 Bir takas her zaman yapmak zorunda. 1036 00:51:02,530 --> 00:51:05,170 >> Potansiyel, ne olurdu, En iyi durumda çalışma zamanı? 1037 00:51:05,170 --> 00:51:08,580 Liste zaten olsaydı, diyelim sırayla, çalışma zamanı ne olurdu? 1038 00:51:08,580 --> 00:51:09,565 >> HEDEF KİTLE: n. 1039 00:51:09,565 --> 00:51:10,690 ANDI PENG: Tam, n var. 1040 00:51:10,690 --> 00:51:11,600 Ve neden n? 1041 00:51:11,600 --> 00:51:13,850 HEDEF KİTLE: Çünkü sen sadece Her bir kez kontrol etmek zorunda. 1042 00:51:13,850 --> 00:51:14,770 ANDI PENG: Kesinlikle. 1043 00:51:14,770 --> 00:51:17,150 Mümkün olan en iyi çalışma zamanında Yani Bu liste zaten olsaydı 1044 00:51:17,150 --> 00:51:20,270 sorted--, en 1, 2, 3 diyelim 4-- sen sadece aracılığıyla gitmek istiyorum, sen denetlemek 1045 00:51:20,270 --> 00:51:21,720 oh, hepsi başarmak, görecekti. 1046 00:51:21,720 --> 00:51:22,636 Ben takas yoktu. 1047 00:51:22,636 --> 00:51:23,370 Bitirdim. 1048 00:51:23,370 --> 00:51:26,500 Yani bu durumda, sadece n var: ya da adım sayısı sadece 1049 00:51:26,500 --> 00:51:29,870 İlk listede kontrol etmek vardı. 1050 00:51:29,870 --> 00:51:33,990 >> Ve sonra, şimdi vurmak Ekleme sıralama, 1051 00:51:33,990 --> 00:51:39,260 Algoritma bölmek için esasen Bir sıralı ve sıralanmamış kısmına. 1052 00:51:39,260 --> 00:51:42,810 Sonra, tek tek, sıralanmamış değerler 1053 00:51:42,810 --> 00:51:46,880 bunların uygun takılı Listenin başında pozisyonları. 1054 00:51:46,880 --> 00:51:52,120 >> Yani, örneğin, bir var 3 listesi, 5, 2, 6, 4 yeniden. 1055 00:51:52,120 --> 00:51:54,750 Biz şu anda olduğunu biliyorum ayıklanmamış biz sadece ettik çünkü 1056 00:51:54,750 --> 00:51:57,030 ona bakmaya başladı. 1057 00:51:57,030 --> 00:52:00,610 Biz bir göz atın ve biz biliyoruz İlk değer, doğru sıralanır? 1058 00:52:00,610 --> 00:52:04,190 Yalnızca bir dizi bakıyorsanız boyut, bir, sen o tür olduğunu biliyorum. 1059 00:52:04,190 --> 00:52:08,230 >> Öyleyse biz biliyoruz Diğer dört unsorted vardır. 1060 00:52:08,230 --> 00:52:10,980 Biz geçmesi ve biz bu değeri görüyoruz. 1061 00:52:10,980 --> 00:52:11,730 Hadi geri dönelim. 1062 00:52:11,730 --> 00:52:13,130 5 bu değeri görüyor musun? 1063 00:52:13,130 --> 00:52:14,110 Biz ona bir göz atın. 1064 00:52:14,110 --> 00:52:15,204 Biz 3 karşılaştırın. 1065 00:52:15,204 --> 00:52:17,870 Biz daha büyük olduğunu biliyorum 3, bu yüzden o sıralanmış olduğunu biliyorum. 1066 00:52:17,870 --> 00:52:22,940 Yani biz şimdi biliyoruz ki ilk iki sıralanır ve son üç değillerdir. 1067 00:52:22,940 --> 00:52:24,270 >> Biz 2 bakabilirsiniz. 1068 00:52:24,270 --> 00:52:25,720 Biz ilk 5 ile kontrol edin. 1069 00:52:25,720 --> 00:52:26,700 O 5 daha az mı? 1070 00:52:26,700 --> 00:52:27,240 O değil. 1071 00:52:27,240 --> 00:52:29,510 Yani biz aşağı seyir tutmak zorunda. 1072 00:52:29,510 --> 00:52:30,940 Sonra 3 kapalı 2 kontrol edin. 1073 00:52:30,940 --> 00:52:31,850 O daha az mı? 1074 00:52:31,850 --> 00:52:32,350 Hayır. 1075 00:52:32,350 --> 00:52:35,430 Yani 2 eklenecek olduğunu biliyorum ön içine 3 ve 5 1076 00:52:35,430 --> 00:52:38,200 hem dışarı itti gerekir. 1077 00:52:38,200 --> 00:52:42,190 6 ve 4 ile tekrar yapın. 1078 00:52:42,190 --> 00:52:48,962 Ve biz sadece, esasen kontrol tutmak biz sadece kontrol nerede, kontrol edin. 1079 00:52:48,962 --> 00:52:51,170 Ve bu sağ gelene kadar pozisyon, biz tür sadece 1080 00:52:51,170 --> 00:52:54,890 doğru pozisyonda takın, hangi onun adı nereden geldi olduğunu. 1081 00:52:54,890 --> 00:52:59,830 >> Yani bu sadece algoritma var, pseudocode başına, tür, 1082 00:52:59,830 --> 00:53:04,990 Biz uygulamak nasıl Bir ekleme sıralama. 1083 00:53:04,990 --> 00:53:05,954 Pseudocode burada. 1084 00:53:05,954 --> 00:53:06,620 Tüm çevrimiçi olduğunu. 1085 00:53:06,620 --> 00:53:10,720 Endişeye gerek yok siz iseniz Bu aşağı kopyalamaya çalışırken. 1086 00:53:10,720 --> 00:53:14,500 Yani bir kez daha, aynı sorum Ne iyi ve en kötü çalıştırıcıları olurdu 1087 00:53:14,500 --> 00:53:16,120 Ekleme sıralama için? 1088 00:53:16,120 --> 00:53:17,750 Bu son soruya çok benzer. 1089 00:53:17,750 --> 00:53:20,479 Ben, 30 gibi, sizi vereceğim saniye de bu konuda düşünmek için. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> Herkes istiyor mu Tamam Bana kötü runtime ver? 1092 00:53:50,071 --> 00:53:50,570 Evet. 1093 00:53:50,570 --> 00:53:51,490 >> HEDEF KİTLE: n karesi. 1094 00:53:51,490 --> 00:53:52,573 >> ANDI PENG: Bu n karesi oluyor. 1095 00:53:52,573 --> 00:53:53,730 Ve neden n karesi edilir? 1096 00:53:53,730 --> 00:53:57,562 >> İZLEYİCİ: in Çünkü Ters sipariş var 1097 00:53:57,562 --> 00:54:02,619 bu-- hangi n kez geçmesi n 1098 00:54:02,619 --> 00:54:03,660 ANDI PENG: Evet, kesinlikle. 1099 00:54:03,660 --> 00:54:06,610 Kabarcık tür Yani aynı şey. 1100 00:54:06,610 --> 00:54:08,720 Bu liste ise azalan, sen 1101 00:54:08,720 --> 00:54:11,240 İlk kez kontrol etmek zorunda olacak. 1102 00:54:11,240 --> 00:54:13,470 Sonra her ek değer, sen 1103 00:54:13,470 --> 00:54:16,390 sahip oluyor karşı kontrol etmek Doğru her değeri? 1104 00:54:16,390 --> 00:54:20,290 Ve böylece tamamen, sen yapmak için gidiyoruz bir n pas kez başka n, pas hangi 1105 00:54:20,290 --> 00:54:21,750 n karesi edilir. 1106 00:54:21,750 --> 00:54:22,860 Ne iyi durumda olacak? 1107 00:54:22,860 --> 00:54:24,360 Evet. 1108 00:54:24,360 --> 00:54:28,840 >> İZLEYİCİ: n eksi 1 nedeniyle İlki zaten karesi edilir. 1109 00:54:28,840 --> 00:54:30,270 >> ANDI PENG: Yani, yakındır. 1110 00:54:30,270 --> 00:54:31,850 Bu sorunun cevabı aslında n. 1111 00:54:31,850 --> 00:54:37,189 Birincisi ise nedeniyle sıralanmış, onu actually-- olmayabilir 1112 00:54:37,189 --> 00:54:38,980 biz sadece lucked bu örnek, bu 2 1113 00:54:38,980 --> 00:54:40,930 En küçük sayı oldu. 1114 00:54:40,930 --> 00:54:43,680 Ama bu her zaman böyle olmayacak. 1115 00:54:43,680 --> 00:54:48,040 2 zaten başlangıçta sıralanır ise ama sen, bakmak ve burada 1 var 1116 00:54:48,040 --> 00:54:49,144 1 bunu çarpmak için gidiyor. 1117 00:54:49,144 --> 00:54:51,060 Ve sonuna kadar gidiyor yukarı neyse çarptı. 1118 00:54:51,060 --> 00:54:56,250 >> En iyi senaryo Yani aslında sadece n olacak. 1119 00:54:56,250 --> 00:54:59,090 Eğer varsa 1, 2, 3, 4, 5, 6, 7, 8, sen 1120 00:54:59,090 --> 00:55:00,940 ile koşacağız Bu listenin tamamını kez 1121 00:55:00,940 --> 00:55:03,430 herşey para cezası olmadığını görmek için kontrol etmek. 1122 00:55:03,430 --> 00:55:07,390 Çalışan herkes açık mı hem de seçim zamanları? 1123 00:55:07,390 --> 00:55:09,960 Ben gidiyorum biliyorum Bu gerçekten hızlı. 1124 00:55:09,960 --> 00:55:13,330 Ama biliyor musun, eğer biliyor genel kavramlar, sen iyi olmalıdır. 1125 00:55:13,330 --> 00:55:16,070 TAMAM. 1126 00:55:16,070 --> 00:55:19,790 Yani, tıpkı belki sizi vereceğim, Bir dakika sizin komşular konuşmak için 1127 00:55:19,790 --> 00:55:21,890 ne sadece bazı temel farklar 1128 00:55:21,890 --> 00:55:23,540 sıralar bu tipleri arasında. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Biz yakında gidersiniz. 1131 00:56:25,570 --> 00:56:26,444 HEDEF KİTLE: Tamam, evet. 1132 00:56:26,444 --> 00:56:27,320 ANDI PENG: Evet. 1133 00:56:27,320 --> 00:56:28,380 TAMAM. 1134 00:56:28,380 --> 00:56:33,420 Serin, en bir sınıf olarak yeniden bir araya edelim. 1135 00:56:33,420 --> 00:56:34,330 TAMAM. 1136 00:56:34,330 --> 00:56:37,579 Yani bu tür bir oldu anlamda açık uçlu soru 1137 00:56:37,579 --> 00:56:39,120 onlara verilen cevapların çok şey var. 1138 00:56:39,120 --> 00:56:40,746 Ve biz kısaca bazıları üzerine gidersiniz. 1139 00:56:40,746 --> 00:56:43,411 Ben sadece sizi almak istedim farklılaşmış düşünmeye 1140 00:56:43,411 --> 00:56:44,530 tür üç tip. 1141 00:56:44,530 --> 00:56:47,440 Ve ben de, büyük duydum ne tür birleştirme mu sorum? 1142 00:56:47,440 --> 00:56:50,110 Büyük soru, çünkü ne gelecek koruyorsun. 1143 00:56:50,110 --> 00:56:52,850 >> Yani tür birleştirme Bu fonksiyonlar tek tür 1144 00:56:52,850 --> 00:56:56,100 Çok farklı, diğer türlü gelen. 1145 00:56:56,100 --> 00:56:58,180 Siz see-- gibi David o demo yaptın 1146 00:56:58,180 --> 00:57:01,130 o bütün serin olduğu yerde birleştirme nasıl görme sesleri 1147 00:57:01,130 --> 00:57:04,010 sıralama sonsuz gibi, koştu Diğer iki tip daha hızlı? 1148 00:57:04,010 --> 00:57:04,510 TAMAM. 1149 00:57:04,510 --> 00:57:07,580 Yani birleştirme nedeni var sıralama bu uçurumu uygulayan 1150 00:57:07,580 --> 00:57:11,020 ve biz ettik kavramını fethetmek derste çok konuşulacak. 1151 00:57:11,020 --> 00:57:14,550 Biz çalışmak ister bu anlamda akıllı, sen bölmek zaman değil, daha 1152 00:57:14,550 --> 00:57:18,120 ve sorunları fethetmek ve onları kırmak aşağı ve sonra onları biraraya koymak 1153 00:57:18,120 --> 00:57:19,930 İyi şeyler hep olur. 1154 00:57:19,930 --> 00:57:21,960 >> Birleştirme yolu So sıralama esas işleri 1155 00:57:21,960 --> 00:57:24,660 bir böler olmasıdır yarısında sıralanmamış dizi. 1156 00:57:24,660 --> 00:57:26,500 Ve o diziler iki yarısını var. 1157 00:57:26,500 --> 00:57:28,220 Ve bu sadece bu iki yarıyı sıralar. 1158 00:57:28,220 --> 00:57:31,750 Bu sadece, ikiye bölünmesi tutar yarısı yarısında herşey sıralanır kadar 1159 00:57:31,750 --> 00:57:33,680 ve daha sonra ardışık Hepsini bir araya koyar. 1160 00:57:33,680 --> 00:57:36,550 >> Yani gerçekten soyut. 1161 00:57:36,550 --> 00:57:38,750 Yani bu pseudocode sadece bir parçasıdır. 1162 00:57:38,750 --> 00:57:41,040 Bu mantıklı mı o çalışıyor yolu? 1163 00:57:41,040 --> 00:57:43,870 Yani sadece bir var diyelim n elemanlı dizi, değil mi? 1164 00:57:43,870 --> 00:57:45,450 Burada n, 2 den az ise, geri dönebilir. 1165 00:57:45,450 --> 00:57:49,040 Bildiğiniz Çünkü varsa tek bir şey, o sıralanması gerekir. 1166 00:57:49,040 --> 00:57:52,600 Else, sol yarısını sıralamak, ve o zaman doğru yarısını sıralamak, 1167 00:57:52,600 --> 00:57:54,140 ve sonra birleştirme. 1168 00:57:54,140 --> 00:57:56,979 >> Bu gerçekten çok kolay görünüyor Yani, gerçekte, bu konuda düşünme var 1169 00:57:56,979 --> 00:58:00,270 Zor tür. Eğer gibisin Çünkü, iyi, bu tür bir kendi üzerine çalışıyor. 1170 00:58:00,270 --> 00:58:00,769 Sağ? 1171 00:58:00,769 --> 00:58:02,430 Bu kendi üzerine çalışıyor. 1172 00:58:02,430 --> 00:58:05,479 Yani bu anlamda, David dokundu sınıfta yineleme sırasında. 1173 00:58:05,479 --> 00:58:07,270 Ve bu kavram daha bahsedeceğiz. 1174 00:58:07,270 --> 00:58:11,430 Bu o, bu iki satır var Burada, aslında sadece program 1175 00:58:11,430 --> 00:58:13,860 Bunu söylüyorum, kendisini çalıştırmak için Farklı girişi ile. 1176 00:58:13,860 --> 00:58:17,230 Yani oldukça kendini çalıştırmak daha n elemanlarının tamamı, 1177 00:58:17,230 --> 00:58:20,530 Eğer içine yıkmak sol yarım ve sağ yarım 1178 00:58:20,530 --> 00:58:22,680 ve sonra tekrar çalıştırın. 1179 00:58:22,680 --> 00:58:26,050 >> Ve sonra biz, görsel ona bakacağız Ben görsel bir öğrenci olduğum için. 1180 00:58:26,050 --> 00:58:27,270 Bu benim için daha iyi çalışır. 1181 00:58:27,270 --> 00:58:29,890 Yani biz burada bir görsel örneğe bakacağız. 1182 00:58:29,890 --> 00:58:36,237 >> Altı takımından biz bir dizi var diyelim elementler, 3, 5, 2, 6, 4, 1, sıralanır. 1183 00:58:36,237 --> 00:58:37,820 Pekâlâ, bu sayfada çok şey var. 1184 00:58:37,820 --> 00:58:43,179 Siz bakabilirsiniz Yani eğer Burada ilk adım, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 Eğer ikiye ayırabilirsiniz. 1186 00:58:44,220 --> 00:58:45,976 3, 5, 2, 6, 4, 1 vardır. 1187 00:58:45,976 --> 00:58:48,850 Bu sizi aren't-- biliyorum Onlar sıralanmış veya değil bilmiyorum, 1188 00:58:48,850 --> 00:58:52,517 böylece yarısında, onları parçalayarak tutmak, devre, devre sonunda kadar 1189 00:58:52,517 --> 00:58:53,600 Eğer sadece bir eleman var. 1190 00:58:53,600 --> 00:58:56,790 Ve bir unsur her zaman doğru, sıralanır? 1191 00:58:56,790 --> 00:59:01,560 >> Yani biz biliyoruz ki 3, 5, 2, 4, 6, 1, kendileri tarafından, sıralanır. 1192 00:59:01,560 --> 00:59:05,870 Ve şimdi biz onları birlikte tekrar koyabilirsiniz. 1193 00:59:05,870 --> 00:59:07,510 Yani biz 3, 5 biliyoruz. 1194 00:59:07,510 --> 00:59:08,510 Biz birlikte bu koymak. 1195 00:59:08,510 --> 00:59:09,617 Biz sıralı olduğunu biliyoruz. 1196 00:59:09,617 --> 00:59:10,450 Hala orada 2 kullanıcısının. 1197 00:59:10,450 --> 00:59:11,830 Birlikte 4 ve 6 koyabilirsiniz. 1198 00:59:11,830 --> 00:59:13,996 Biz, bu sıralanmış olduğunu biliyorum bu yüzden bir araya koymak. 1199 00:59:13,996 --> 00:59:14,940 Ve 1 var. 1200 00:59:14,940 --> 00:59:18,720 >> Ve sonra sadece bakmak Burada bu iki yarısı. 1201 00:59:18,720 --> 00:59:21,300 3, 5, 2, 2, 3, 5 sahiptir. 1202 00:59:21,300 --> 00:59:23,465 Sadece karşılaştırabilirsiniz Her şeyin başında. 1203 00:59:23,465 --> 00:59:26,340 Bu sıralanır Çünkü biliyoruz ki ve bu sıralanmış olduğunu biliyorum. 1204 00:59:26,340 --> 00:59:29,360 O zaman bile gerek yok 5 karşılaştırmak, sadece 3 karşılaştırın. 1205 00:59:29,360 --> 00:59:32,070 Ve 2 bu nedenle, 3'den daha düşük bir Eğer 2 sonunda gitmek gerekir biliyorum. 1206 00:59:32,070 --> 00:59:33,120 >> Oradaki aynı şey. 1207 00:59:33,120 --> 00:59:34,740 1 Buraya gitmek gerekir. 1208 00:59:34,740 --> 00:59:37,330 Gittiğiniz zaman Ve sonra koymak Birlikte bu iki değer, 1209 00:59:37,330 --> 00:59:39,950 Bu sıralanır biliyoruz ve Bunu sıralanır biliyoruz. 1210 00:59:39,950 --> 00:59:43,240 O zaman 1 ve 2, 1, 2'den küçük olduğunda. 1211 00:59:43,240 --> 00:59:45,570 Yani 1 söyler Bu ucunda gitmeli 1212 00:59:45,570 --> 00:59:47,480 Hatta 3 ya da 5 bakmadan. 1213 00:59:47,480 --> 00:59:50,100 Ve sonra 4'e, sadece can Burada doğru gidiyor, kontrol edin. 1214 00:59:50,100 --> 00:59:51,480 Sen 5 bakmak zorunda değilsiniz. 1215 00:59:51,480 --> 00:59:52,570 6 ile aynı şey. 1216 00:59:52,570 --> 00:59:55,860 Bilirsin 6-- sadece bu bakılması gerek yoktur. 1217 00:59:55,860 --> 00:59:57,870 >> Ve böylece bu şekilde, sen Sadece kendini kurtaran 1218 00:59:57,870 --> 00:59:59,526 adımları çok size karşılaştırarak yaparken. 1219 00:59:59,526 --> 01:00:02,150 Her karşılaştırmak zorunda değilsiniz diğer elementlerin karşı element. 1220 01:00:02,150 --> 01:00:05,230 Sadece olanları karşılaştırmak Eğer karşı karşılaştırmak gerekir. 1221 01:00:05,230 --> 01:00:06,870 Yani soyut bir kavram türüdür. 1222 01:00:06,870 --> 01:00:10,540 Endişeye gerek yok öyle değil eğer çok doğru henüz size isabet. 1223 01:00:10,540 --> 01:00:14,740 Ama genelde, bu nasıl bir birleştirme tür çalışır. 1224 01:00:14,740 --> 01:00:17,750 Sorular, hızlı soru, Ben geçmeden önce? 1225 01:00:17,750 --> 01:00:18,550 Evet. 1226 01:00:18,550 --> 01:00:22,230 >> HEDEF KİTLE: Yani sizi söyledi 1 ve 4 ve 6 1227 01:00:22,230 --> 01:00:23,860 ve koyun. 1228 01:00:23,860 --> 01:00:26,800 Böylece those-- değildir değildir Eğer onlara bakarak 1229 01:00:26,800 --> 01:00:28,544 değil bütün olarak ayrı unsurları olarak? 1230 01:00:28,544 --> 01:00:29,210 ANDI PENG: Evet. 1231 01:00:29,210 --> 01:00:32,020 Peki ne oluyor Bunu temelde 1232 01:00:32,020 --> 01:00:33,650 yepyeni bir dizi yaratıyor. 1233 01:00:33,650 --> 01:00:36,690 Yani, burada, ben olduğunu biliyorum büyüklüğü 3 iki dizileri, değil mi? 1234 01:00:36,690 --> 01:00:39,600 Yani biliyorum benim sıralı dizi Altı unsurları olması gerekir. 1235 01:00:39,600 --> 01:00:42,270 Yani sadece bir oluşturmak yeni bellek miktarı. 1236 01:00:42,270 --> 01:00:44,270 Yani bir tür gibisin bellek savurgan olma 1237 01:00:44,270 --> 01:00:46,186 ama bu önemli değil çok küçük olduğu için. 1238 01:00:46,186 --> 01:00:48,590 Yani 1 bakmak ve 2 bak. 1239 01:00:48,590 --> 01:00:50,770 Ve sen 1 2'den az olduğunu biliyorum. 1240 01:00:50,770 --> 01:00:53,840 Yani 1 gitmek gerektiğini biliyorum tüm bu başlangıcı. 1241 01:00:53,840 --> 01:00:55,850 >> Hatta gerek yok 3 ve 5 bak. 1242 01:00:55,850 --> 01:00:57,400 Yani 1 gidiyor biliyorum. 1243 01:00:57,400 --> 01:00:59,300 Sonra temelde 1 kesmek. 1244 01:00:59,300 --> 01:01:00,370 Bu bizim için ölü gibi, var. 1245 01:01:00,370 --> 01:01:03,690 Sonra biz sadece 2 var, 3, 5, ve daha sonra 4 ile 6. 1246 01:01:03,690 --> 01:01:06,270 Ve sonra, seni biliyor Karşılaştırmak 4 ve 2, 1247 01:01:06,270 --> 01:01:07,560 oh, 2 oraya gitmeli. 1248 01:01:07,560 --> 01:01:09,685 Yani 2 aşağı plop, bunu kesmek. 1249 01:01:09,685 --> 01:01:12,060 Yani o zaman sadece 3 var ve 4 ve 6 5. 1250 01:01:12,060 --> 01:01:14,650 Ve sen sadece onu doğrama tutmak dizinin koyun kadar. 1251 01:01:14,650 --> 01:01:17,110 >> HEDEF KİTLE: Yani sadece zaman konum [duyulamaz] karşılaştıran? 1252 01:01:17,110 --> 01:01:17,710 >> ANDI PENG: Kesinlikle. 1253 01:01:17,710 --> 01:01:19,590 Yani bu anlamda, sen Sadece karşılaştırma esas olarak 1254 01:01:19,590 --> 01:01:21,240 Diğer sayıda karşı bir numara. 1255 01:01:21,240 --> 01:01:22,990 Ve biliyorum çünkü o, seni olarak sıralanmış olduğunu 1256 01:01:22,990 --> 01:01:24,350 bakmak zorunda değilsiniz tüm numaraları. 1257 01:01:24,350 --> 01:01:25,870 Sadece İlki bakmak zorunda. 1258 01:01:25,870 --> 01:01:27,582 Ve sonra sadece plop olabilir Onları aşağı, bilirsin çünkü 1259 01:01:27,582 --> 01:01:29,640 ait oldukları gereken yere ait oldukları. 1260 01:01:29,640 --> 01:01:31,030 Evet. 1261 01:01:31,030 --> 01:01:32,920 İyi soru. 1262 01:01:32,920 --> 01:01:35,290 >> Ve sonra sizin varsa Biraz iddialı, 1263 01:01:35,290 --> 01:01:38,660 Bu kod bakmak için çekinmeyin. 1264 01:01:38,660 --> 01:01:40,680 Bu aslında Fiziksel uygulanması 1265 01:01:40,680 --> 01:01:42,150 Biz birleştirme sıralama yazardı nasıl. 1266 01:01:42,150 --> 01:01:44,070 Ve bunu çok kısa olduğunu görebilirsiniz. 1267 01:01:44,070 --> 01:01:46,310 Arkasında Ama fikirleri oldukça karmaşıktır. 1268 01:01:46,310 --> 01:01:50,865 Yani bu dışarı çizim gibi hissediyorum Ödevini bu gece, çekinmeyin. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> TAMAM. 1271 01:01:54,740 --> 01:01:58,070 Yani David de konuşmasında bu gitti. 1272 01:01:58,070 --> 01:02:00,660 En iyi durumda nelerdir çalıştırıcıları, en kötü durum runtimes, 1273 01:02:00,660 --> 01:02:05,680 ve birleştirme tür beklenen runtimes? 1274 01:02:05,680 --> 01:02:07,260 Birkaç saniye düşünmek. 1275 01:02:07,260 --> 01:02:11,198 Bu oldukça zor, ancak tür Bu konuda sezgisel düşünüyorsanız. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Pekala. 1278 01:02:23,054 --> 01:02:25,269 >> HEDEF KİTLE: En kötü durum n log n mı? 1279 01:02:25,269 --> 01:02:26,060 ANDI PENG: Kesinlikle. 1280 01:02:26,060 --> 01:02:29,380 Ve neden n log n olduğunu. 1281 01:02:29,380 --> 01:02:32,230 >> HEDEF KİTLE: Öyle değil mi çünkü o katlanarak hızlı olur 1282 01:02:32,230 --> 01:02:35,390 bu yüzden o bir fonksiyonu gibi yerine sadece basit n olma 1283 01:02:35,390 --> 01:02:37,529 karesi ya da bir şey? 1284 01:02:37,529 --> 01:02:38,320 ANDI PENG: Kesinlikle. 1285 01:02:38,320 --> 01:02:40,750 Peki nedeni Bu konuda çalışma zamanı n log 1286 01:02:40,750 --> 01:02:44,310 sen ne çünkü-- n Bu adımların hepsi yapıyorsun? 1287 01:02:44,310 --> 01:02:46,190 Sen sadece sağ, ikiye kesme değil mi? 1288 01:02:46,190 --> 01:02:48,750 Ve böylece biz yapıyoruz o yapıyor bütün bu log 1289 01:02:48,750 --> 01:02:53,150 yarısında bir sorun bölünmesi olduğunu, yarısında, yarısında, daha fazla devrede. 1290 01:02:53,150 --> 01:02:56,430 Ve bu anlamda, ne tür can Doğrusal modelini ortadan 1291 01:02:56,430 --> 01:02:57,510 biz kullanıyorum. 1292 01:02:57,510 --> 01:03:00,254 Eğer doğrayın zaman Çünkü yarıda işler, bu bir günlük var. 1293 01:03:00,254 --> 01:03:02,420 Bu sadece matematiksel var Bunu temsil yolu. 1294 01:03:02,420 --> 01:03:06,310 >> Ve sonunda, sonunda, sen Sadece son bir pas içinden yapma 1295 01:03:06,310 --> 01:03:07,930 Doğru, sırayla hepsini koymak için? 1296 01:03:07,930 --> 01:03:10,330 Ve böylece sadece varsa bir şey kontrol o n var. 1297 01:03:10,330 --> 01:03:13,420 Ve böylece ne tür konum İkisi birlikte çarparak. 1298 01:03:13,420 --> 01:03:17,660 Eğer bu son var gibi Yani var n bir günlüğü ile buraya n adet kontrol 1299 01:03:17,660 --> 01:03:18,390 tam buraya. 1300 01:03:18,390 --> 01:03:21,060 Ve sen çarpın eğer Onları, bu n log var. 1301 01:03:21,060 --> 01:03:26,100 >> Ve böylece en iyi ve en kötü durumda Olgu ve tüm n log n beklendiği. 1302 01:03:26,100 --> 01:03:27,943 Başka bir tür gibi de var. 1303 01:03:27,943 --> 01:03:30,090 Bu seçim tür gibi Bunun anlamda 1304 01:03:30,090 --> 01:03:32,131 Ne önemli değil sizin Liste sadece gidiyor, bir 1305 01:03:32,131 --> 01:03:34,801 Aynı şeyi her zaman yapmak. 1306 01:03:34,801 --> 01:03:35,300 TAMAM. 1307 01:03:35,300 --> 01:03:39,950 Olsa bile, siz gördüğünüz gibi Biz n through-- gidince sıralar 1308 01:03:39,950 --> 01:03:41,660 karesi, çok verimli değil. 1309 01:03:41,660 --> 01:03:47,060 Ve hatta bu n günlük n En verimli değil. 1310 01:03:47,060 --> 01:03:49,720 Siz merak ediyorsanız, sıralama mekanizmaları var 1311 01:03:49,720 --> 01:03:54,310 they o kadar verimli ki Neredeyse esasen düz çalışma zamanında. 1312 01:03:54,310 --> 01:03:55,420 >> Bazı günlüğünü n 's var. 1313 01:03:55,420 --> 01:03:58,190 Bazı günlük günlüğü n 's var. 1314 01:03:58,190 --> 01:04:00,330 Biz onların üzerine dokunmayın Şu anda bu sınıfta. 1315 01:04:00,330 --> 01:04:02,663 Ama siz fikriniz yoksa, ne, google çekinmeyin 1316 01:04:02,663 --> 01:04:04,392 En verimli ayırma mekanizmaları. 1317 01:04:04,392 --> 01:04:06,350 Ben orada, bilmiyorum Bazı gerçekten komik olanlar, 1318 01:04:06,350 --> 01:04:09,860 da-- bazı gerçekten var insanlar yapmak komik olanları. 1319 01:04:09,860 --> 01:04:12,210 Ve acaba onlar Hiç düşündüm. 1320 01:04:12,210 --> 01:04:15,730 Bazı yedek varsa Yani, google Zaman üzerine, bazı komik yolları nelerdir 1321 01:04:15,730 --> 01:04:17,730 Bu gibi people-- verimli ways-- insanlar 1322 01:04:17,730 --> 01:04:20,371 türlü uygulamak mümkün olmuştur. 1323 01:04:20,371 --> 01:04:20,870 TAMAM. 1324 01:04:20,870 --> 01:04:22,880 Ve burada sadece kullanışlı küçük bir grafik var. 1325 01:04:22,880 --> 01:04:26,850 Ben, o sınav 0 evvel, hepiniz biliyoruz Odanızda muhtemelen çalışıyor olacak 1326 01:04:26,850 --> 01:04:27,960 Bu ezberlemek. 1327 01:04:27,960 --> 01:04:30,940 Yani sizin için orada güzel. 1328 01:04:30,940 --> 01:04:37,120 Sadece made-- mantık unutma Neden bu numaraları meydana bulundu. 1329 01:04:37,120 --> 01:04:39,870 Hep kayıp ediyorsanız, sadece yapmak emin türlü ne olduğunu biliyoruz. 1330 01:04:39,870 --> 01:04:40,820 Ve içinden çalıştırabilirsiniz kafanızda onları 1331 01:04:40,820 --> 01:04:42,903 neden bu anlamaya cevaplar bu cevaplar. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Pekala. 1334 01:04:47,600 --> 01:04:49,680 Yani biz taşımak için gidiyoruz Sonunda, arama için, üzerinde. 1335 01:04:49,680 --> 01:04:51,638 Çünkü sizin gibi kim pset okudum, 1336 01:04:51,638 --> 01:04:55,175 arama da bir parçasıdır Bu haftaki sorunu ayarlar. 1337 01:04:55,175 --> 01:04:57,300 Sen uygulamak istenir aramalarda iki tür. 1338 01:04:57,300 --> 01:05:00,070 Bir doğrusal arama ve tek bir ikili arama motorudur. 1339 01:05:00,070 --> 01:05:01,760 >> Yani doğrusal arama oldukça kolaydır. 1340 01:05:01,760 --> 01:05:04,070 Sadece elemanı aramak istediğiniz Eğer alırsanız bir listenin görmek için. 1341 01:05:04,070 --> 01:05:05,444 Sadece yineleme yapmak zorunda. 1342 01:05:05,444 --> 01:05:08,170 Ve bir şey eşitse, Sadece doğru, dönebilirsiniz? 1343 01:05:08,170 --> 01:05:10,890 Ama biz çoğu olduğumuzu bahsediyoruz ilgilenen 1344 01:05:10,890 --> 01:05:14,550 ikili arama, hangi haklı olduğunu bölmek ve fethetmek hangi mekanizma 1345 01:05:14,550 --> 01:05:18,190 Davut derste gösteren oldu. 1346 01:05:18,190 --> 01:05:20,810 >> Telefon rehberi örneği hatırla O kadar getiren tutar olduğunu, 1347 01:05:20,810 --> 01:05:23,960 o tür mücadele biri Geçtiğimiz yıl biraz 1348 01:05:23,960 --> 01:05:27,530 Eğer yarıda sorunu bölmek nerede, yarısında, yarısında, tekrar ve tekrar, 1349 01:05:27,530 --> 01:05:30,730 Eğer aradığınızı bulana kadar? 1350 01:05:30,730 --> 01:05:33,727 Ve sen var hem de bunun zamanı. 1351 01:05:33,727 --> 01:05:35,810 Ve gördüğünüz, bu kadar önemli ölçüde daha verimli 1352 01:05:35,810 --> 01:05:39,080 arama başka tür daha. 1353 01:05:39,080 --> 01:05:41,880 >> Bu yüzden hakkında gitmek yolu bir ikili arama uygulanması 1354 01:05:41,880 --> 01:05:46,510 , biz bir dizi olsaydı, endeksi 0 ila 6, yedi elemanları, 1355 01:05:46,510 --> 01:05:49,790 Biz haklıydın--, ortada bakabilirsiniz üzgünüm, bizim soru varsa birinci-- 1356 01:05:49,790 --> 01:05:53,840 biz soru sormak istiyorum yapar Dizi, 7 öğe içeren 1357 01:05:53,840 --> 01:05:56,840 Açıkçası, insan olmak sahip olan ve Küçük bir dizi böyle, bizim için kolay 1358 01:05:56,840 --> 01:05:58,210 evet demek. 1359 01:05:58,210 --> 01:06:05,750 Ama yol bir ikili uygulamak Arama ortada bakmak olacaktır. 1360 01:06:05,750 --> 01:06:08,020 >> Biz endeksi 3 olduğunu biliyoruz Orta, çünkü biz 1361 01:06:08,020 --> 01:06:09,270 Yedi unsurlar olduğunu biliyoruz. 1362 01:06:09,270 --> 01:06:10,670 Ne 7 bölü 2? 1363 01:06:10,670 --> 01:06:12,850 Fazladan 1 olduğunu kesmek olabilir. 1364 01:06:12,850 --> 01:06:14,850 Sen ortasında 3 var. 1365 01:06:14,850 --> 01:06:17,590 Yani 7 eşit 3 dizi? 1366 01:06:17,590 --> 01:06:18,900 Bu doğru, değil mi? 1367 01:06:18,900 --> 01:06:21,050 Ama biz çeklerin birkaç yapabilirsiniz. 1368 01:06:21,050 --> 01:06:25,380 3 7 günden az ya da dizi 7'den büyük 3 dizi? 1369 01:06:25,380 --> 01:06:27,240 >> Ve biz daha az 7'den olduğunu biliyorum. 1370 01:06:27,240 --> 01:06:30,259 Yani bildiğimiz ah, o olmalı, o sol yarısında vermeye. 1371 01:06:30,259 --> 01:06:32,300 Biz olması gerektiğini biliyoruz Sağ yarısında, değil mi? 1372 01:06:32,300 --> 01:06:34,662 Yani biz sadece yarım dizi kesmek olabilir. 1373 01:06:34,662 --> 01:06:36,370 Biz bile gerek yok Artık bakmak. 1374 01:06:36,370 --> 01:06:38,711 Biz biliyoruz çünkü Bizim problem-- yarısı 1375 01:06:38,711 --> 01:06:41,210 Biz cevap olduğunu biliyoruz bizim sorunumuz sağ yarısı. 1376 01:06:41,210 --> 01:06:42,580 Yani biz şimdi o bak. 1377 01:06:42,580 --> 01:06:44,860 >> Yani şimdi biz bakmak geriye ne orta. 1378 01:06:44,860 --> 01:06:46,880 Bu endeks 5. 1379 01:06:46,880 --> 01:06:50,200 Biz yine aynı kontrol yapmak ve biz daha küçük olduğunu görüyoruz. 1380 01:06:50,200 --> 01:06:52,050 Yani biz bu sol için sabırsızlanıyoruz. 1381 01:06:52,050 --> 01:06:53,430 Ve sonra biz o çeki görüyoruz. 1382 01:06:53,430 --> 01:06:57,600 Dizi değeri de var 7 eşit endeksi 4? 1383 01:06:57,600 --> 01:06:58,260 İşte bu. 1384 01:06:58,260 --> 01:07:03,580 Bu yüzden, gerçek iade edebilirsiniz çünkü Bizim listede değer bulundu. 1385 01:07:03,580 --> 01:07:06,738 Ben geçti yol mu Herkese bu mantıklı? 1386 01:07:06,738 --> 01:07:08,760 TAMAM. 1387 01:07:08,760 --> 01:07:11,670 Ben gibi, belki sizi vereceğim üç, dört dakika anlamaya 1388 01:07:11,670 --> 01:07:13,270 nasıl bu pseudocode. 1389 01:07:13,270 --> 01:07:18,070 >> Yani bir yazmak istedim hayal döndürülen işlev olarak adlandırılan arama () 1390 01:07:18,070 --> 01:07:20,640 Bir değer, bir Boolean değeri, Bu gibi doğruydu ya da false-- 1391 01:07:20,640 --> 01:07:22,970 Bulduğunuz true değer, değil mi, eğer yanlış. 1392 01:07:22,970 --> 01:07:25,230 Ve sonra vardı değeri geçirilen bir 1393 01:07:25,230 --> 01:07:28,410 değerler, içine aradığını hangi array-- oh, ben kesinlikle koymak olduğunu 1394 01:07:28,410 --> 01:07:29,410 yanlış yerde olduğunu. 1395 01:07:29,410 --> 01:07:29,580 TAMAM. 1396 01:07:29,580 --> 01:07:31,829 Neyse ki olmalı değerlerin sağında olmuştur. 1397 01:07:31,829 --> 01:07:36,280 Sonra int n sayısı Bu dizideki elementlerin. 1398 01:07:36,280 --> 01:07:39,430 Nasıl hakkında çalışıyor gitmek bu sorunun pseudocode? 1399 01:07:39,430 --> 01:07:41,630 Sana gibileri vereceğim üç dakika bunu yapmak için. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Hayır, ben Sadece-- olduğunu düşünüyorum evet, sağ burada bir tane var. 1402 01:08:02,595 --> 01:08:03,261 İZLEYİCİ: I Can? 1403 01:08:03,261 --> 01:08:04,388 ANDI PENG: Evet, seni aldım. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 Bu çalışma var mı? 1406 01:08:11,050 --> 01:08:12,290 Tamam iyi. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> TAMAM. 1409 01:10:44,720 --> 01:10:47,630 Pekala çocuklar, biz konum bunu dizginlemek için gidiyor. 1410 01:10:47,630 --> 01:10:49,730 TAMAM. 1411 01:10:49,730 --> 01:10:54,020 Yani biz bu güzel var varsayıyorum İçinde n değerlerindeki küçük dizisi. 1412 01:10:54,020 --> 01:10:55,170 Ben çizgiler çizmek değil. 1413 01:10:55,170 --> 01:10:58,649 Ama biz hakkında nasıl gitmek Bu yazmaya çalışıyorum? 1414 01:10:58,649 --> 01:11:00,440 Herkes istiyor mu Bana ilk satırı ver? 1415 01:11:00,440 --> 01:11:02,814 Bana vermek istiyorsanız Bu pseudocode ilk satırı. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> HEDEF KİTLE: [duyulamaz] 1418 01:11:08,430 --> 01:11:10,138 HEDEF KİTLE: Sen istersin through-- yineleme 1419 01:11:10,138 --> 01:11:11,094 HEDEF KİTLE: Sadece başka bir döngü için? 1420 01:11:11,094 --> 01:11:11,760 HEDEF KİTLE: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> ANDI PENG: Yani bu biraz zor. 1423 01:11:17,780 --> 01:11:23,130 İstediğiniz about-- düşünün Bu döngü çalışmaya devam etmek 1424 01:11:23,130 --> 01:11:27,950 Tekrar tekrar ne zamana kadar? 1425 01:11:27,950 --> 01:11:30,819 >> HEDEF KİTLE: [duyulamaz] kadar değeri, bu değere eşittir. 1426 01:11:30,819 --> 01:11:31,610 ANDI PENG: Kesinlikle. 1427 01:11:31,610 --> 01:11:33,900 Yani aslında sadece write-- olabilir biz daha fazla kolaylaştırabilirsiniz. 1428 01:11:33,900 --> 01:11:35,630 Biz sadece doğru, bir while döngüsü yapabilirim? 1429 01:11:35,630 --> 01:11:39,380 Yani sadece loop-- olabilir Biz bir süre olduğunu biliyorum. 1430 01:11:39,380 --> 01:11:42,850 Ama şu an için, ben gidiyorum Ne aracılığıyla - "döngü" demek? 1431 01:11:42,850 --> 01:11:46,640 Döngü ne until-- Bizim biten durumu? 1432 01:11:46,640 --> 01:11:47,510 Ben bunu duydum düşünüyorum. 1433 01:11:47,510 --> 01:11:48,530 Birinin bunu söylemek duydum. 1434 01:11:48,530 --> 01:11:51,255 >> HEDEF KİTLE: Değerler orta eşittir. 1435 01:11:51,255 --> 01:11:52,255 ANDI PENG: daha söyle. 1436 01:11:52,255 --> 01:11:54,470 Kadar Veya: İZLEYİCİ değeri aradığınız 1437 01:11:54,470 --> 01:11:58,470 Orta değer eşittir. 1438 01:11:58,470 --> 01:12:00,280 >> ANDI PENG: orada burada değil ne olur? 1439 01:12:00,280 --> 01:12:03,113 Ne eğer aradığınız değer Bu dizide aslında değil mi? 1440 01:12:03,113 --> 01:12:05,890 HEDEF KİTLE: Sen 1 dönmek. 1441 01:12:05,890 --> 01:12:08,850 >> ANDI PENG: Ama biz ne istiyoruz Biz bir durum varsa kadar döngü? 1442 01:12:08,850 --> 01:12:09,350 Evet. 1443 01:12:09,350 --> 01:12:11,239 >> HEDEF KİTLE: Sadece bir değer var Kadar? 1444 01:12:11,239 --> 01:12:13,530 ANDI PENG: You can döngü until-- öylesine sen olduğunu biliyorum 1445 01:12:13,530 --> 01:12:15,714 Doğru, maksimum değere sahip olacak? 1446 01:12:15,714 --> 01:12:18,130 Ve sen gidiyoruz biliyorum sağ dk değeri var mı? 1447 01:12:18,130 --> 01:12:20,379 Ayrıca, bu şey, çünkü Ben, daha önce söylemeyi unuttum 1448 01:12:20,379 --> 01:12:22,640 olduğunu şey İkili arama hakkında kritik 1449 01:12:22,640 --> 01:12:24,182 diziniz zaten sıralanmış olmasıdır. 1450 01:12:24,182 --> 01:12:26,973 Yapmanın yolu yok çünkü Bu onlar sadece rastgele değerler iseniz. 1451 01:12:26,973 --> 01:12:29,190 Biri olmadığını bilmiyorum diğerinden daha büyük, değil mi? 1452 01:12:29,190 --> 01:12:32,720 >> Yani biliyorum senin max ve senin dakika sağ, burada? 1453 01:12:32,720 --> 01:12:35,590 Eğer ayar için gidiyoruz senin dakika ve mid-- içinde max 1454 01:12:35,590 --> 01:12:38,470 Sadece varsayalım senin orta değeri doğru var-- olduğunu 1455 01:12:38,470 --> 01:12:43,910 temelde gidiyoruz döngü minimum kadar 1456 01:12:43,910 --> 01:12:47,510 Doğru, senin max ile aynı ya da yaklaşık senin max senin dakika aynı değilse. 1457 01:12:47,510 --> 01:12:48,040 Sağ? 1458 01:12:48,040 --> 01:12:51,340 Bu olduğu zaman çünkü, bunu biliyorsun sonunda aynı değeri isabet ettik. 1459 01:12:51,340 --> 01:12:59,135 Yani min kadar döngü istiyorum , daha az ya da eşit olduğu aşağıdaki amaçlara hop 1460 01:12:59,135 --> 01:13:01,510 olmayan eşit ya da daha az, max Etrafta başka yoludur. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> Mantıklı mı? 1463 01:13:16,160 --> 01:13:18,810 O hakkı elde etmek için bir kaç denemeden aldı. 1464 01:13:18,810 --> 01:13:21,869 Ama döngü senin max değeri kadar esas olarak hemen hemen daha azdır 1465 01:13:21,869 --> 01:13:23,410 veya daha da az eşit değil mi? 1466 01:13:23,410 --> 01:13:25,201 Bildiğiniz o zaman Eğer yakınsama ettik. 1467 01:13:25,201 --> 01:13:29,290 HEDEF KİTLE: Ne zaman olur maksimum değer minimum daha az olması? 1468 01:13:29,290 --> 01:13:31,040 ANDI PENG: Eğer tutarsanız , ayarlayarak hangi 1469 01:13:31,040 --> 01:13:32,380 biz gidiyoruz ne bu yapıyor olması. 1470 01:13:32,380 --> 01:13:33,460 bu mantıklı mı? 1471 01:13:33,460 --> 01:13:35,750 Asgari ve azami sadece vardır biz muhtemelen tamsayılar 1472 01:13:35,750 --> 01:13:39,260 istediğiniz devam etmek oluşturmak için Biz arıyoruz nerede iz. 1473 01:13:39,260 --> 01:13:41,790 Dizi varolduğundan ne olursa olsun biz yapıyoruz ne. 1474 01:13:41,790 --> 01:13:45,030 Gibi, biz aslında fiziksel değiliz Doğru, dizinin kapalı doğrama? 1475 01:13:45,030 --> 01:13:47,261 Biz sadece ayar ediyoruz nerede arıyoruz. 1476 01:13:47,261 --> 01:13:48,136 bu mantıklı mı? 1477 01:13:48,136 --> 01:13:48,472 >> HEDEF KİTLE: Evet. 1478 01:13:48,472 --> 01:13:49,110 >> ANDI PENG: Tamam. 1479 01:13:49,110 --> 01:13:57,090 Bizim için döngü koşulu ise Yani, Bu döngü içinde ne istiyorsun? 1480 01:13:57,090 --> 01:13:58,700 Ne yapmak isteyen olacak? 1481 01:13:58,700 --> 01:14:02,390 Yani şimdi, elimizdeki maksimum ve min, sağ, 1482 01:14:02,390 --> 01:14:04,962 Muhtemelen burada bir yerde yukarı yarattı. 1483 01:14:04,962 --> 01:14:07,170 Biz muhtemelen istediğiniz gidiyoruz Doğru bir orta bulmak? 1484 01:14:07,170 --> 01:14:08,450 Nasıl olacak orta bulmak mümkün? 1485 01:14:08,450 --> 01:14:09,491 Matematiksel-- neler var 1486 01:14:09,491 --> 01:14:11,079 HEDEF KİTLE: Max artı 2 bölü min. 1487 01:14:11,079 --> 01:14:11,870 ANDI PENG: Kesinlikle. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 bu mantıklı mı? 1490 01:14:21,620 --> 01:14:25,780 Ve siz neden biz görüyorsunuz biz bunu neden sadece use-- vermedi 1491 01:14:25,780 --> 01:14:27,850 yerine yapmanın sadece n 2 bölü? 1492 01:14:27,850 --> 01:14:30,310 N değeri, çünkü bu Aynı kalmaya gidiyor. 1493 01:14:30,310 --> 01:14:30,979 Sağ? 1494 01:14:30,979 --> 01:14:34,020 Ama bizim en az ayarlamak gibi Maksimum değerler, onlar değiştirmek için gidiyoruz. 1495 01:14:34,020 --> 01:14:36,040 Sonuç olarak da, bizim orta Çok değişecek. 1496 01:14:36,040 --> 01:14:37,873 İstediğimiz İşte bu yüzden Burada bu hakkın yapmak. 1497 01:14:37,873 --> 01:14:38,510 TAMAM. 1498 01:14:38,510 --> 01:14:41,600 >> Ve sonra, şimdi biz evet our-- buldum. 1499 01:14:41,600 --> 01:14:44,270 >> HEDEF KİTLE: Sadece hızlı bir sorum ne zaman min ve max söylüyorlar, 1500 01:14:44,270 --> 01:14:46,410 biz varsayıyoruz Zaten sıralanmış oluyor? 1501 01:14:46,410 --> 01:14:48,400 >> ANDI PENG: Evet, bu aslında bir bir ikili arama için ön koşul, 1502 01:14:48,400 --> 01:14:49,816 Eğer varsa o olarak sıralanmış bilmek. 1503 01:14:49,816 --> 01:14:53,660 Bu yüzden sıralama Hangi, sen yazma senin Sorun ikili arama önce ayarlayın. 1504 01:14:53,660 --> 01:14:55,910 TAMAM. 1505 01:14:55,910 --> 01:14:58,876 Yani şimdi biz nerede bizim orta noktası biliyorum , burada ne yapmak istiyorsun nedir? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> HEDEF KİTLE: Biz karşılaştırmak istediğiniz diğeri söyledi. 1508 01:15:04,319 --> 01:15:05,110 ANDI PENG: Kesinlikle. 1509 01:15:05,110 --> 01:15:12,280 Yani karşılaştırmak için gidiyoruz değerine orta, değil mi? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 Ve bu ne anlatıyor bize karşılaştırmak? 1512 01:15:18,670 --> 01:15:22,226 Ne biz sonradan yapmak istiyorsun? 1513 01:15:22,226 --> 01:15:25,389 >> HEDEF KİTLE: değer büyükse orta yerine, biz bunu kesmek istiyorum. 1514 01:15:25,389 --> 01:15:26,180 ANDI PENG: Kesinlikle. 1515 01:15:26,180 --> 01:15:33,940 Değer büyükse yüzden orta yerine, biz konum 1516 01:15:33,940 --> 01:15:36,550 Bunları değiştirmek istediğiniz olacak Minimum ve maxes, değil mi? 1517 01:15:36,550 --> 01:15:38,980 Ne değiştirmek istiyorsun? 1518 01:15:38,980 --> 01:15:42,145 Bildiğimiz Yani değeri bir yerde Burada, biz değiştirmek için size ne? 1519 01:15:42,145 --> 01:15:44,758 Bizim değiştirmek istiyorum Minimum doğru, orta olmak? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Ve sonra başka, bu öyle ise Yarım, ne değiştirmek istiyorsun? 1522 01:15:54,292 --> 01:15:55,306 >> HEDEF KİTLE: Maksimum. 1523 01:15:55,306 --> 01:15:55,972 ANDI PENG: Evet. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Ve sonra sadece gidiyoruz Sağ döngü tutmak için? 1526 01:16:04,680 --> 01:16:08,920 Çünkü artık bir yineleme sonra aracılığıyla, burada max var. 1527 01:16:08,920 --> 01:16:10,760 Ve sonra bir orta yeniden hesaplayabilirsiniz. 1528 01:16:10,760 --> 01:16:11,990 Sonra da karşılaştırabilirsiniz. 1529 01:16:11,990 --> 01:16:14,766 Ve devam edeceksin dakika ve maxes kadar 1530 01:16:14,766 --> 01:16:15,890 esasen birbirine yaklaştı. 1531 01:16:15,890 --> 01:16:17,890 Bunu biliyor Ve o zaman bunun sonu isabet ettik. 1532 01:16:17,890 --> 01:16:20,280 Ve ya bunu buldum ya o noktada değil. 1533 01:16:20,280 --> 01:16:23,170 >> Bu herkese mantıklı mı? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 TAMAM. 1536 01:16:26,770 --> 01:16:27,900 Bu, oldukça önemli Eğer gerekecek çünkü 1537 01:16:27,900 --> 01:16:29,760 kodunuzu bu gece bunu yazmak için. 1538 01:16:29,760 --> 01:16:32,660 Ama siz çok iyi olması Eğer ne yapmaları gerektiğini duygusu, 1539 01:16:32,660 --> 01:16:34,051 hangisi iyi. 1540 01:16:34,051 --> 01:16:34,550 TAMAM. 1541 01:16:34,550 --> 01:16:38,840 Yani biz yedi hakkında var dakika bölümüne ayrıldı. 1542 01:16:38,840 --> 01:16:43,170 Yani biz hakkında konuşmak için gidiyoruz biz yapıyor olacak bu pset. 1543 01:16:43,170 --> 01:16:46,410 Böylece pset iki yarıya ayrılmıştır. 1544 01:16:46,410 --> 01:16:50,230 İlk yarı gerektirir Bir find uygulanması 1545 01:16:50,230 --> 01:16:54,210 hangi doğrusal bir arama yazmak, ikili arama ve sıralama algoritması. 1546 01:16:54,210 --> 01:16:56,690 >> Yani bu ilk Bir pset nerede zaman 1547 01:16:56,690 --> 01:17:00,050 ne denir biz sizi vererek olacağım Dağıtım kodu, kodu 1548 01:17:00,050 --> 01:17:02,740 Biz ön yazdım, ama sadece kapalı bazı parçaları bıraktı 1549 01:17:02,740 --> 01:17:04,635 sizin için yazma bitirmek için. 1550 01:17:04,635 --> 01:17:07,510 Bu bak sen guys, So Kod, gerçekten korkuyor alabilirsiniz. 1551 01:17:07,510 --> 01:17:08,630 Eğer, ahh, ben tıpkı ediyorsanız Bu ne yaptığını bilmiyorum, 1552 01:17:08,630 --> 01:17:11,670 Ben gibi görünüyor, bilmiyorum çok karmaşık, ahh, rahatla. 1553 01:17:11,670 --> 01:17:12,170 Tamam. 1554 01:17:12,170 --> 01:17:12,930 Spec okuyun. 1555 01:17:12,930 --> 01:17:16,920 Spec tam size açıklayacaktır Bu programların hepsi ne yapıyorsun. 1556 01:17:16,920 --> 01:17:20,560 >> Örneğin, generate.c bir programdır senin pset ile gelecek. 1557 01:17:20,560 --> 01:17:24,060 Aslında dokunmak yok, ama yok Eğer ne yaptığını anlamak gerekir. 1558 01:17:24,060 --> 01:17:28,550 Ve generate.c, bu yapıyor hepsi bu Ya rastgele sayılar üreten 1559 01:17:28,550 --> 01:17:32,400 veya bir gibi bunu bir tohum verebilir onu alır danışıklı sayı, 1560 01:17:32,400 --> 01:17:34,140 ve daha numaraları üretir. 1561 01:17:34,140 --> 01:17:37,170 Yani belirli bir yolu var generate.c uygulanması hangi 1562 01:17:37,170 --> 01:17:42,760 Sadece bir sayı demet yapabilir Eğer başka yöntemler üzerinde test etmek için. 1563 01:17:42,760 --> 01:17:45,900 >> Yani eğer istedim, için örneğin sizin bulmak sınamak, 1564 01:17:45,900 --> 01:17:48,970 Eğer generate.c çalıştırmak isteyeyim, , sayılar bir demet oluşturur 1565 01:17:48,970 --> 01:17:50,880 ve sonra yardımcıları işlevi çalıştırın. 1566 01:17:50,880 --> 01:17:53,930 Sen nerede yardımcıları işlevi aslında fiziksel kod yazma. 1567 01:17:53,930 --> 01:17:59,330 Ve bir kütüphane dosyası olarak yardımcıları düşünüyorum O bulmak çağırıyor yazıyoruz. 1568 01:17:59,330 --> 01:18:02,950 Böylece helpers.c içinde, sen olacak arama ve sıralama yapın. 1569 01:18:02,950 --> 01:18:06,500 >> Ve sonra aslında gidiyoruz Sadece birlikte hepsini koyun. 1570 01:18:06,500 --> 01:18:10,350 Nasıl spec anlatacağım Komut satırında koymak. 1571 01:18:10,350 --> 01:18:14,880 Ve olmadığını test etmek mümkün olacak veya değil sıralama ve arama çalışıyoruz. 1572 01:18:14,880 --> 01:18:15,870 Güzel. 1573 01:18:15,870 --> 01:18:18,720 Herkes zaten başladı ve karşılaşılan sorunlar veya sorular 1574 01:18:18,720 --> 01:18:20,520 bu ile şu anda var mı? 1575 01:18:20,520 --> 01:18:21,020 TAMAM. 1576 01:18:21,020 --> 01:18:21,476 >> HEDEF KİTLE: Bekleyin. 1577 01:18:21,476 --> 01:18:21,932 Bir sorum var. 1578 01:18:21,932 --> 01:18:22,844 >> ANDI PENG: Evet. 1579 01:18:22,844 --> 01:18:28,390 >> İZLEYİCİ: Ben yapmaya başladı helpers.c lineer arama 1580 01:18:28,390 --> 01:18:29,670 ve gerçekten çalışma değildi. 1581 01:18:29,670 --> 01:18:34,590 Ama daha sonra, biz sadece öğrendim silmek ve ikili arama yapmak zorundayız. 1582 01:18:34,590 --> 01:18:36,991 Bu işe yaramazsa Yani bu önemli mi? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> ANDI PENG: Kısa cevap hayır. 1585 01:18:41,510 --> 01:18:42,642 Ama beri Ben- konum 1586 01:18:42,642 --> 01:18:44,350 HEDEF KİTLE: Ama kimse Aslında kontrol. 1587 01:18:44,350 --> 01:18:46,058 ANDI PENG: Biz asla konum Bu göreceğiz. 1588 01:18:46,058 --> 01:18:49,590 Ama muhtemelen yapmak istiyorum emin arama çalışıyor. 1589 01:18:49,590 --> 01:18:51,700 Doğrusal Çünkü eğer arama çalışmıyor, 1590 01:18:51,700 --> 01:18:54,410 sonra şansını ikili vardır Arama yanı sıra işe gitmiyor. 1591 01:18:54,410 --> 01:18:56,646 Eğer benzer Çünkü her ikisi de mantık. 1592 01:18:56,646 --> 01:18:58,020 Ve hayır, gerçekten önemli değil. 1593 01:18:58,020 --> 01:19:01,300 Yani sadece onlar size döneceğiz sıralama ve ikili arama vardır. 1594 01:19:01,300 --> 01:19:02,490 Evet. 1595 01:19:02,490 --> 01:19:06,610 >> Ve ayrıca, çocuklar bir sürü vardı helpers.c derlemek için çalışıyor. 1596 01:19:06,610 --> 01:19:09,550 Aslında izin yok , bunu helpers.c çünkü 1597 01:19:09,550 --> 01:19:11,200 Bir ana fonksiyonu yoktur. 1598 01:19:11,200 --> 01:19:13,550 Ve böylece sadece gereken aslında derleme olmak 1599 01:19:13,550 --> 01:19:18,670 aramaları bulmak, çünkü üretmek ve bulmak helpers.c ve içindeki işlev görür. 1600 01:19:18,670 --> 01:19:20,790 Bu hata ayıklama yapar Yani popo bir ağrı. 1601 01:19:20,790 --> 01:19:22,422 Ama bu yapmamız gereken budur. 1602 01:19:22,422 --> 01:19:23,880 HEDEF KİTLE: Sadece Tamam, yapmak? 1603 01:19:23,880 --> 01:19:27,290 ANDI PENG: Sadece can evet, hem de tüm yapmak. 1604 01:19:27,290 --> 01:19:28,060 TAMAM. 1605 01:19:28,060 --> 01:19:32,570 Yani ne açısından bu kadar pset tüm yapmak istiyor. 1606 01:19:32,570 --> 01:19:35,160 Eğer herhangi bir sorunuz varsa, hissetmek bölümünden sonra bana sormak için ücretsiz. 1607 01:19:35,160 --> 01:19:37,580 Ben 20 dakika gibi, burada olacağım. 1608 01:19:37,580 --> 01:19:40,500 >> Ve evet, pset en Gerçekten o kadar kötü değil. 1609 01:19:40,500 --> 01:19:41,680 Sizler Tamam olmalıdır. 1610 01:19:41,680 --> 01:19:43,250 Bunlar, sadece yönergeleri izleyin. 1611 01:19:43,250 --> 01:19:47,840 Tür mantıklı bir duygusu var ne gerektiği gerçekleşiyor ve iyi olacak. 1612 01:19:47,840 --> 01:19:48,690 Çok Korkma. 1613 01:19:48,690 --> 01:19:50,220 Kod bir çok şey var zaten orada yazılı. 1614 01:19:50,220 --> 01:19:53,011 Eğer yapmazsam çok Korkma bütün bunlar ne anlama geldiğini anlamak. 1615 01:19:53,011 --> 01:19:54,749 Bir çok şey varsa, o tamamen iyi. 1616 01:19:54,749 --> 01:19:55,790 Ve çalışma saatleri geliyor. 1617 01:19:55,790 --> 01:19:57,520 Biz bir göz atın yardımcı olacağız. 1618 01:19:57,520 --> 01:20:00,810 >> HEDEF KİTLE: Ekstra ile fonksiyonları, biz o kadar görünüyorum? 1619 01:20:00,810 --> 01:20:03,417 >> ANDI'nin PENG: Evet, bu kod bulunmaktadır. 1620 01:20:03,417 --> 01:20:05,750 15 oyunun, yarım In o zaten sizin için yazılmış. 1621 01:20:05,750 --> 01:20:09,310 Yani bu fonksiyonlar Zaten kodu. 1622 01:20:09,310 --> 01:20:12,020 Evet. 1623 01:20:12,020 --> 01:20:12,520 Pekala. 1624 01:20:12,520 --> 01:20:14,000 Peki, iyi şanslar. 1625 01:20:14,000 --> 01:20:15,180 Bu iğrenç bir gün. 1626 01:20:15,180 --> 01:20:19,370 Yani umarım siz de hissetmiyorum içeride kalan ve kodlama kötü. 1627 01:20:19,370 --> 01:20:22,133