1 00:00:00,000 --> 00:00:10,982 2 00:00:10,982 --> 00:00:11,940 DAVID Malan: ყველა უფლება. 3 00:00:11,940 --> 00:00:16,470 ასე რომ, ეს არის CS50, და ეს არის ახლა დაწყების კვირაში სამი. 4 00:00:16,470 --> 00:00:19,960 >> ასე რომ, დღემდე, ჩვენ წერილობით პროგრამებს C 5 00:00:19,960 --> 00:00:23,210 რომ გამოიყურებოდეს პატარა მსგავსი რამ აქ. 6 00:00:23,210 --> 00:00:25,470 ამიტომ, ჩვენ მივიღეთ რამდენიმე მკვეთრი მოიცავს ზედა. 7 00:00:25,470 --> 00:00:28,490 ჩვენ მივიღეთ int, მთავარი, ბათილად, და შემდეგ რაღაც უნდა გავაკეთოთ შუა, 8 00:00:28,490 --> 00:00:30,590 გარკვეულ კოდი შიგნით რომ ფუნქცია. 9 00:00:30,590 --> 00:00:34,170 მაგრამ მთავარი იყო ის ფაქტი, რომ ჩვენ ვამბობდით, ბათილად აქ. 10 00:00:34,170 --> 00:00:39,320 ასე რომ, ბათილად, მთელი ამ დროის განმავლობაში, განსაზღვრავს რომ ეს პროგრამა, როდესაც აწარმოებს, 11 00:00:39,320 --> 00:00:41,300 შესაძლებელია მხოლოდ აწარმოებს მეშვეობით მისი სახელი. 12 00:00:41,300 --> 00:00:46,330 თქვენ არ შეგიძლიათ აკრიფოთ ნებისმიერი სხვა სიტყვები ან ციფრები, შემდეგ პროგრამის სახელი, როდესაც 13 00:00:46,330 --> 00:00:46,830 გაშვებული იგი. 14 00:00:46,830 --> 00:00:51,200 ასე, მაგალითად, თუ პროგრამა არ იყო შედგენილი ფაილი მოუწოდა hello, 15 00:00:51,200 --> 00:00:53,480 თქვენ შეიძლება არ მიესალმები, მაგრამ ეს არის ის. 16 00:00:53,480 --> 00:00:56,750 >> ერთადერთი გზა, რომ თქვენ ვერ შეყვანის ამ პროგრამის 17 00:00:56,750 --> 00:00:57,960 არის მოუწოდებენ ფუნქცია. 18 00:00:57,960 --> 00:00:59,790 მაგალითად, რა ფუნქცია ვყოფილვართ გამოყენებით დღემდე 19 00:00:59,790 --> 00:01:00,950 მიიღოს შეიტანენ შესახებ? 20 00:01:00,950 --> 00:01:02,117 >> აუდიტორია: მიიღეთ სიმებიანი. 21 00:01:02,117 --> 00:01:04,700 დავით Malan: იმისათვის რომ სიმებიანი, მიიღეთ int, ან თქვენ მინახავს სხვები, 22 00:01:04,700 --> 00:01:07,630 მაშინაც კი, თუ თქვენ არ გამოიყენება მათ ჯერ კიდევ, მოსწონს მიიღოს ხანგრძლივი და ასე შემდეგ. 23 00:01:07,630 --> 00:01:09,380 მაგრამ დავუშვათ, რომ ჩვენ რეალურად გვინდა დავიწყოთ 24 00:01:09,380 --> 00:01:12,760 წერილობით პროგრამებს, რომლებიც უფრო მრავალმხრივი და, სიმართლე გითხრათ, ცოტა უფრო მეტი 25 00:01:12,760 --> 00:01:15,090 როგორიცაა ბრძანებები, რომ თქვენ მიღების, იმედია, 26 00:01:15,090 --> 00:01:16,550 ცოტა მიეჩვია. 27 00:01:16,550 --> 00:01:18,560 Like cd ფართი Dropbox. 28 00:01:18,560 --> 00:01:20,800 ეს, რა თქმა უნდა, ცვლილებები თქვენი დირექტორია, ვთქვათ, 29 00:01:20,800 --> 00:01:23,590 თქვენ ჯონ ჰარვარდის მთავარი დირექტორია, თქვენი Dropbox საქაღალდეში. 30 00:01:23,590 --> 00:01:27,380 იმავდროულად, ბრძანება მოსწონს ეს ქმნის ახალ დირექტორია მოუწოდა pset2, 31 00:01:27,380 --> 00:01:30,290 როგორც თქვენ ალბათ უკვე ან მალე პრობლემა კომპლექტი ორი. 32 00:01:30,290 --> 00:01:33,970 რათა Hello, რა თქმა უნდა, არის ბრძანება, რომ აშენებს პროგრამა მოუწოდა hello 33 00:01:33,970 --> 00:01:35,770 ფაილის მოუწოდა hello dot გ. 34 00:01:35,770 --> 00:01:39,140 და თითოეულ ამ შემთხვევაში, ახლა, ჩვენ გვქონდა 35 00:01:39,140 --> 00:01:43,620 გთავაზობთ არგუმენტი ე.წ. ბრძანების, მოციმციმე სწრაფი, 36 00:01:43,620 --> 00:01:48,540 ასე რომ მიიღოს იცის რა უნდა ავაშენოთ, და ასე რომ mkdir იცის, რა ფოლდერში შექმნას, 37 00:01:48,540 --> 00:01:51,110 და ისე, რომ cd იცის სადაც გსურთ წასვლა. 38 00:01:51,110 --> 00:01:54,720 მაგრამ დღემდე, ჩვენ აიტაცეს , რომ მთავარი, თქვენი რა ფუნქცია, 39 00:01:54,720 --> 00:01:58,500 აქვს ბათილად გამოხატვის შიგნით იმ ფრჩხილებში, 40 00:01:58,500 --> 00:02:01,250 რაც იმას ნიშნავს, რომ ის არ შეიძლება რაიმე არგუმენტები. 41 00:02:01,250 --> 00:02:03,240 >> ასე რომ, დღეიდან, ის, რაც ჩვენ ვაპირებთ, რომ გავაკეთოთ 42 00:02:03,240 --> 00:02:06,270 ეს არის, ჩვენ ვაპირებთ დავიწყოთ მხარდამჭერი მსგავსი რამ კიდევ. 43 00:02:06,270 --> 00:02:08,990 ფაქტობრივად, ამ შემთხვევაში, რომელიც თქვენ არ ითხოვენ ხელით აკრიფოთ, 44 00:02:08,990 --> 00:02:11,130 რათა უკვე აკეთებს ამ ჩვენთვის არ არსებობს 45 00:02:11,130 --> 00:02:15,840 ერთი, მაგრამ ერთი, ორი, სამი strings შემდეგ პროგრამის დაასახელა 46 00:02:15,840 --> 00:02:16,850 clang. 47 00:02:16,850 --> 00:02:18,240 ასე რომ, როგორ მივაღწიოთ ამას? 48 00:02:18,240 --> 00:02:20,260 >> ისე, დღეიდან, იმ შემთხვევებში, როდესაც ჩვენ გვინდა 49 00:02:20,260 --> 00:02:22,855 რათა შეყვანის მეშვეობით ე.წ. ბრძანების, 50 00:02:22,855 --> 00:02:24,980 ჩვენ ვაპირებთ დავიწყოთ დასძინა აქ რა არის yellow-- 51 00:02:24,980 --> 00:02:30,520 შეცვლის ბათილად int argc მძიმით სიმებიანი argv ღია bracket ახლოს bracket. 52 00:02:30,520 --> 00:02:32,520 ახლა ეს არის საინტერესო რამდენიმე მიზეზის გამო. 53 00:02:32,520 --> 00:02:35,690 ერთი, ის აპირებს მოდით დავწეროთ პროგრამები, რომლებიც ცოტა უფრო დინამიური. 54 00:02:35,690 --> 00:02:37,570 მაგრამ, უფრო compellingly, ის აპირებს გახსნას 55 00:02:37,570 --> 00:02:40,340 ახლა საუბარი, როგორც რა კოლექტორები ნამდვილად 56 00:02:40,340 --> 00:02:43,300 გამოყენებული უნდა იქნას, თუ რა სიმებიანი მართლაც ქვევმოთ hood, 57 00:02:43,300 --> 00:02:47,320 სანამ მომავალ კვირას, როდესაც ჩვენ ვიწყებთ diving კიდევ ღრმა თუ როგორ მანქანა 58 00:02:47,320 --> 00:02:48,590 მიღების ყველა ამ პერსონალის მუშაობა. 59 00:02:48,590 --> 00:02:51,920 მაგრამ ახლა, მოდით დავხატოთ, ალბათ, სურათი. 60 00:02:51,920 --> 00:02:54,950 >> როდესაც ვწერთ პროგრამა ძირითადი განაცხადა 61 00:02:54,950 --> 00:02:58,810 ამ გზით, ისეთი, რომ მთავარი იღებს ორი არგუმენტები, int 62 00:02:58,810 --> 00:03:03,233 and-- რა ტიპის მონაცემის არის მეორე არგუმენტი? 63 00:03:03,233 --> 00:03:04,529 >> აუდიტორია: Array. 64 00:03:04,529 --> 00:03:05,320 დავით Malan: Array. 65 00:03:05,320 --> 00:03:09,170 ასე გამოიყურება ერთი შეხედვით მოსწონს ეს სიმებიანი, მაგრამ შეამჩნია კვადრატულ ფრჩხილებში. 66 00:03:09,170 --> 00:03:12,760 შეგახსენებთ, რომ ბოლო დროს ჩვენ გააცნო ცნება მასივი. 67 00:03:12,760 --> 00:03:16,210 და კოლექტორები გამოიყენოთ კვადრატულ ფრჩხილებში რამდენიმე კონტექსტში. 68 00:03:16,210 --> 00:03:19,160 თქვენ შეიძლება გამოიყენოთ კვადრატულ ფრჩხილებში წასვლას მასივი 69 00:03:19,160 --> 00:03:22,710 და მიიღოს კონკრეტული ელემენტის, როგორიცაა bracket 0 ან bracket 1 ან bracket 2. 70 00:03:22,710 --> 00:03:25,500 მაგრამ ჩვენ ვნახეთ, თუ მოკლედ, გასულ კვირას, რომ თქვენ ასევე 71 00:03:25,500 --> 00:03:28,790 გამოიყენოს ეს კვადრატულ ფრჩხილებში განაცხადოს ზომის მასივი, 72 00:03:28,790 --> 00:03:31,790 თუ იცით, წინასწარ რამდენი ints ან რამდენი strings ან რასაც თქვენ 73 00:03:31,790 --> 00:03:32,630 ნამდვილად გინდათ. 74 00:03:32,630 --> 00:03:34,790 გამოდის, რომ იქ მესამე კონტექსტში აქ 75 00:03:34,790 --> 00:03:37,890 რომ არ აქვს ნომერი შიგნით კვადრატული ფრჩხილები. 76 00:03:37,890 --> 00:03:41,920 როცა დააკონკრეტა, როგორც მე აქ, სახელი რაღაც argv, 77 00:03:41,920 --> 00:03:44,550 რომელიც მხოლოდ ლამაზი გზა განაცხადა, რომ არგუმენტი ვექტორი, რომელიც 78 00:03:44,550 --> 00:03:47,750 კიდევ ერთი ლამაზი გზა ამბობდა მასივი არგუმენტები, 79 00:03:47,750 --> 00:03:50,870 ღია bracket ახლო bracket მხოლოდ იმას ნიშნავს, რომ თქვენ არ არის აუცილებელი 80 00:03:50,870 --> 00:03:52,960 წინასწარ იცოდეს, თუ რამდენად დიდი მასივი იქნება, 81 00:03:52,960 --> 00:03:55,070 მაგრამ თქვენ იცით, იქნება მასივი. 82 00:03:55,070 --> 00:03:57,320 ასე რომ, თუ თქვენ არ იცით, ნომერი არ დააყენოს ის არსებობს, 83 00:03:57,320 --> 00:04:01,160 ღია bracket ახლო bracket იმას ნიშნავს, რომ argv არ არის ტექსტი, 84 00:04:01,160 --> 00:04:03,124 მაგრამ მასივი სტრიქონები. 85 00:04:03,124 --> 00:04:05,040 ასე რომ, სინტაქსურად, თუ ვფიქრობ, გასულ კვირას, 86 00:04:05,040 --> 00:04:09,460 ეს ძალიან ჰგავს ამბობდა რაღაც int ასაკის ღია bracket, 87 00:04:09,460 --> 00:04:10,984 და მაშინ რაიმე შემდგომ. 88 00:04:10,984 --> 00:04:12,150 ასე რომ, რას ჰგავს? 89 00:04:12,150 --> 00:04:13,399 მოდით რეალურად მიაპყროს სურათი. 90 00:04:13,399 --> 00:04:18,756 ასე რომ, როდესაც თქვენ აწარმოებს ამ პროგრამის მთავარი რომელმაც ორი არგუმენტები განსაზღვრული შიგნით 91 00:04:18,756 --> 00:04:21,339 იმ ფრჩხილებში, თქვენ არსებითად, სულ მცირე, ორი მოცულობით 92 00:04:21,339 --> 00:04:23,560 მეხსიერების გადმოგცეს ქვევმოთ hood. 93 00:04:23,560 --> 00:04:26,550 ერთი, როგორც მე ამახვილებს, რადგან ეს მართკუთხედი, აპირებს ეწოდოს argc. 94 00:04:26,550 --> 00:04:30,645 და ისევე, როგორც სწრაფი recap, რა არის მონაცემები ტიპის argc? 95 00:04:30,645 --> 00:04:31,270 ასე რომ, ეს int. 96 00:04:31,270 --> 00:04:33,480 ასე რომ, რიცხვი აპირებს წავიდეს argc-- მონაცვლეობით 97 00:04:33,480 --> 00:04:35,660 რომ დგას არგუმენტი რაოდენობა. 98 00:04:35,660 --> 00:04:38,887 იმავდროულად, მე შედგენილი argv როგორც მასივი. 99 00:04:38,887 --> 00:04:40,970 და მე არ ვიცი, , რამდენი ხანი იქნება, 100 00:04:40,970 --> 00:04:42,470 ასე დღევანდელი მიზნებისათვის dot dot dot. 101 00:04:42,470 --> 00:04:43,636 შესაძლოა, კიდევ ზოგიერთი სიგრძე. 102 00:04:43,636 --> 00:04:45,640 მაგრამ მე სურათები აქ მინიმუმ ოთხი ოთხკუთხედს. 103 00:04:45,640 --> 00:04:50,970 ასე argv ბლოკი მეხსიერება, რომელიც ინახავს string string string dot dot dot, 104 00:04:50,970 --> 00:04:53,950 და argc არის მხოლოდ ერთი ბლოკი მეხსიერების რიცხვი. 105 00:04:53,950 --> 00:04:55,710 >> ახლა, მოდით, ცოტა უფრო ზუსტი. 106 00:04:55,710 --> 00:04:59,200 თუ, როდესაც მაქვს strings ამ მასივი, მოუწოდა 107 00:04:59,200 --> 00:05:03,290 argv, მინდა კიდევ მათ ინდივიდუალურად, ისევე, როგორც გასულ კვირას, 108 00:05:03,290 --> 00:05:05,670 ჩვენ ვაპირებთ გამოვიყენოთ notation როგორიცაა argv bracket 0 109 00:05:05,670 --> 00:05:07,650 მიიღოს პირველი, რაც მასივი. 110 00:05:07,650 --> 00:05:10,440 Argv bracket 1 მისაღებად მეორე რამ, და ასე შემდეგ. 111 00:05:10,440 --> 00:05:14,597 აქ მთავარია, რომ ჩვენ ჯერ კიდევ 0 indexed-- ჩვენ მაინც დათვლის საწყისი 0. 112 00:05:14,597 --> 00:05:16,430 ასე რომ, ახლა მოდით რეალურად დააყენა რაღაც ამ. 113 00:05:16,430 --> 00:05:21,670 თუ მე უნდა შეადგინონ პროგრამა მოუწოდა გამარჯობა ფაილი სახელად hello dot c, 114 00:05:21,670 --> 00:05:24,340 და მაშინ აწარმოებს, რომ პროგრამა ერთად dot slash hello, 115 00:05:24,340 --> 00:05:28,380 რას აკეთებს ჩემი კომპიუტერი, ჩემი ლეპტოპი, ჰგავს ქვეშ hood 116 00:05:28,380 --> 00:05:31,300 ამ მომენტში მე აწარმოებს dot slash მიესალმები და დააჭიროთ? 117 00:05:31,300 --> 00:05:33,500 აი, ეს არის, ალბათ, რაც ჩვენ ვერ აღწერს 118 00:05:33,500 --> 00:05:37,010 შინაარსი თქვენი კომპიუტერის მეხსიერება, ან RAM-- წვდომის მეხსიერება. 119 00:05:37,010 --> 00:05:40,330 სხვა სიტყვებით, კომპიუტერი, რატომღაც თქვენ magically, 120 00:05:40,330 --> 00:05:45,360 აყენებს ნომერი 1 argc, AKA argcount, და ეს აყენებს ფაქტიურად სიმებიანი 121 00:05:45,360 --> 00:05:48,200 მიესალმები in argv bracket 0. 122 00:05:48,200 --> 00:05:51,750 მე არ ვიცი, გულწრფელად რომ ვთქვათ, რა არის in argv bracket 1 ან 2 ან 3, 123 00:05:51,750 --> 00:05:55,550 იმიტომ, რომ, თუ მომხმარებელს არ აქვს აკრეფილი არაფერი გარდა Hello, 124 00:05:55,550 --> 00:05:58,550 ჩვენ ვაპირებთ, რომ ვივარაუდოთ, რომ ამ ყველაზე მეტად სავარაუდოა, ნაგვის ღირებულებებს, 125 00:05:58,550 --> 00:05:59,700 ასე ვთქვათ. 126 00:05:59,700 --> 00:06:02,650 იმ მოცულობით მეხსიერება არსებობს, მაგრამ ეს არ არის ჩვენთვის, 127 00:06:02,650 --> 00:06:05,710 შევხედოთ მათ, იმიტომ, რომ argcount მხოლოდ ერთი. 128 00:06:05,710 --> 00:06:07,870 >> ახლა კი, ამ დროს, თუ მე წერენ აწარმოებს კიდევ ერთი პროგრამა, 129 00:06:07,870 --> 00:06:12,250 cd, რაც უფრო სწორად ბრძანება, თქვენი მოციმციმე prompt-- cd ფართი 130 00:06:12,250 --> 00:06:17,200 Dropbox-- როდესაც მე აწარმოებს, რომ, ფაქტობრივად, როდესაც cd პროგრამის გაშვება, argc, 131 00:06:17,200 --> 00:06:22,270 შიგნით ჩემი კომპიუტერის მეხსიერებაში, არის ყველაზე წამიერი მეორე ნომერი 2. 132 00:06:22,270 --> 00:06:25,936 და შემდეგ argv bracket o აქვს cd, argv bracket 1 აქვს Dropbox, 133 00:06:25,936 --> 00:06:28,560 და, რა თქმა უნდა ბრძანება ასრულებს, ასე რომ ყველა ამ მეხსიერების 134 00:06:28,560 --> 00:06:30,420 არსებითად მიდის და გამოიყენება რაღაც. 135 00:06:30,420 --> 00:06:32,270 და ამიტომაც ვამბობ მხოლოდ გაყოფილი მეორე. 136 00:06:32,270 --> 00:06:35,720 >> ამასობაში, თუ ჩვენ mkdir pset2, სურათზე ჩანს თითქმის იგივე, 137 00:06:35,720 --> 00:06:37,900 მაგრამ სხვადასხვა strings შიგნით argv. 138 00:06:37,900 --> 00:06:42,570 თუ ამის გაკეთება clang dash მიესალმები კომენტარი dot c, იგივე იდეა. 139 00:06:42,570 --> 00:06:47,060 უფრო პერსონალის შევსებული argv, და argc, რა თქმა უნდა, არის 4. 140 00:06:47,060 --> 00:06:49,150 ასე რომ, სხვა სიტყვებით, მიუხედავად იმისა, რომ ამ მასივი 141 00:06:49,150 --> 00:06:52,950 შეიძლება dot dot dot, ზოგიერთი ცვლადი სიგრძის, ასე ვთქვათ, 142 00:06:52,950 --> 00:06:56,720 თქვენ ყოველთვის ვიცი სად ბოლოს იგი , იმიტომ, რომ argc აპირებს გითხრათ 143 00:06:56,720 --> 00:07:00,120 რა მომენტში თქვენ უნდა შეწყვიტოს ეძებს ელემენტების argv. 144 00:07:00,120 --> 00:07:03,660 თქვენ შეგიძლიათ მხოლოდ შევხედოთ ოთხი სულ ამ შემთხვევაში. 145 00:07:03,660 --> 00:07:06,600 >> მოდით ახლა შევხედოთ, ალბათ, მარტივი პროგრამა. 146 00:07:06,600 --> 00:07:09,070 ერთი, რომ მხოლოდ ამბობს hello ვინმე მოსწონს Zamyla. 147 00:07:09,070 --> 00:07:12,620 ასე, რომ აცხადებენ, მე ვაპირებ წერენ პროგრამა რაღაც მომენტში მეშვეობით, რომელიც მე ვერ გავაკეთებ 148 00:07:12,620 --> 00:07:16,670 მიესალმები ფართი Zamyla, და შემდეგ მინდა ჩემი პროგრამა ამობეჭდოთ რაღაც 149 00:07:16,670 --> 00:07:18,520 სუპერ მარტივია როგორც "Hello, Zamyla". 150 00:07:18,520 --> 00:07:20,100 ახლა წარსულში ჩვენ გამოიყენება GetString. 151 00:07:20,100 --> 00:07:22,850 იგი წარსულში, თუნდაც თქვენ ახალი პროგრამირების, 152 00:07:22,850 --> 00:07:27,180 შანსი თქვენ შეიძლება whip up პროგრამა, რომელიც იყენებს GetString 153 00:07:27,180 --> 00:07:29,390 და შემდეგ იყენებს printf ვთქვა, hi to Zamyla. 154 00:07:29,390 --> 00:07:31,290 მაგრამ მოდით არ გამოიყენოს getString ამ დროს. 155 00:07:31,290 --> 00:07:37,510 ნება მომეცით ნაცვლად წასვლას Appliant და არ მოიცავს სტანდარტული I O dot h. 156 00:07:37,510 --> 00:07:41,160 მიადევნე თვალი ასევე მოიცავს CS50 dot h. 157 00:07:41,160 --> 00:07:44,730 ახლა int ძირითადი, და ახლა მე ვარ ამის გაკეთებას არ აპირებს ბათილად დღეს. 158 00:07:44,730 --> 00:07:51,200 ამის ნაცვლად, მე აპირებს int argc სიმებიანი argv ღია bracket ახლო bracket, 159 00:07:51,200 --> 00:07:52,640 არ აკონკრეტებენ ნომერი. 160 00:07:52,640 --> 00:07:54,644 და ახლა აქ არის ჩემი ე.წ. უნდა გააკეთოს. 161 00:07:54,644 --> 00:07:57,560 ის, რაც მე ვაპირებ ახლა, მე ვარ ვაპირებ ცოტა ნახტომი რწმენის, 162 00:07:57,560 --> 00:08:00,560 მე ვაპირებ ვივარაუდოთ, რომ მომხმარებლის მიერ აპირებს გამოიყენოს ეს პროგრამა სწორად, 163 00:08:00,560 --> 00:08:04,980 და მე უბრალოდ აპირებს არ printf hello,% sn. 164 00:08:04,980 --> 00:08:06,630 ასე რომ არაფერი ახალი იქ. 165 00:08:06,630 --> 00:08:11,470 მაგრამ მე მინდა ახლა უკვე რასაც სიტყვა პროფაილი სახის შემდეგ პროგრამის სახელი. 166 00:08:11,470 --> 00:08:16,970 ასე რომ, თუ მიესალმები ფართი Zamyla, I მინდა როგორმე პროგრამულად ხელმისაწვდომობა 167 00:08:16,970 --> 00:08:20,870 ციტირებას unquote "Zamyla". ასე რომ, შეიძლება წასვლას ჩემი არგუმენტი ვექტორი, 168 00:08:20,870 --> 00:08:25,980 ჩემი მასივი სიმები, და თუ ბრძანება, კვლავ, მიესალმები ფართი Zamyla, 169 00:08:25,980 --> 00:08:29,340 რა რაოდენობის მინდა დასვა argv აქ? 170 00:08:29,340 --> 00:08:29,840 აუდიტორია: 1. 171 00:08:29,840 --> 00:08:32,355 დავით Malan: 1, იმიტომ, bracket 0 გამოდის 172 00:08:32,355 --> 00:08:34,230 იქნება პროგრამის სახელი, როგორც დავინახეთ. 173 00:08:34,230 --> 00:08:37,789 ასე bracket 1 პირველი სიტყვა რომ მე, შესახებ, არ აკრეფილი. 174 00:08:37,789 --> 00:08:39,559 მე ვაპირებ წავიდეთ წინ და გადარჩენა ამ. 175 00:08:39,559 --> 00:08:42,830 მე ვაპირებ წასვლას ჩემი ფოლდერი სადაც მე განთავსებული ამ ფაილის. 176 00:08:42,830 --> 00:08:44,920 მე ვაპირებ მიიღოს hello 3. 177 00:08:44,920 --> 00:08:46,230 Comp IO ს OK. 178 00:08:46,230 --> 00:08:51,380 მიესალმები Zamyla შეიყვანეთ. 179 00:08:51,380 --> 00:08:54,480 რა გავაკეთო არასწორი? 180 00:08:54,480 --> 00:08:57,270 მე მოულოდნელი თავს მხოლოდ ერთი წუთით არ არსებობს. 181 00:08:57,270 --> 00:08:58,230 რა გავაკეთო არასწორი? 182 00:08:58,230 --> 00:08:59,220 >> აუდიტორია: სახელი. 183 00:08:59,220 --> 00:09:01,767 >> DAVID Malan: ფაილის ფაქტობრივად მოუწოდა hello3.c. 184 00:09:01,767 --> 00:09:03,850 და მე, რომ მხოლოდ თანმიმდევრულობა, რადგან ჩვენ 185 00:09:03,850 --> 00:09:06,550 ჰქონდა hello.c წელს წარსულში ონლაინ კოდი. 186 00:09:06,550 --> 00:09:11,550 მოდით დაფიქსირება ამ მიესალმები bracket dash 3 Zamyla. 187 00:09:11,550 --> 00:09:12,370 შევა. 188 00:09:12,370 --> 00:09:14,030 და ახლა ჩვენ გვაქვს hello, Zamyla. 189 00:09:14,030 --> 00:09:17,650 ამასობაში, მე შეიძლება შეცვალოს ეს შეიძლება Rob, ან მართლაც ნებისმიერ სხვა სიტყვა. 190 00:09:17,650 --> 00:09:19,230 >> მაგრამ განვიხილოთ კუთხეში შემთხვევაში. 191 00:09:19,230 --> 00:09:24,360 რა შეიძლება ველოდოთ მოხდება თუ მე არ აკრიფოთ არავის სახელი ყველა? 192 00:09:24,360 --> 00:09:25,270 >> აუდიტორია: Error. 193 00:09:25,270 --> 00:09:27,300 >> დავით Malan: შეცდომა გარკვეული, ალბათ. 194 00:09:27,300 --> 00:09:28,200 ვნახოთ. 195 00:09:28,200 --> 00:09:29,440 შევა. 196 00:09:29,440 --> 00:09:30,210 Null. 197 00:09:30,210 --> 00:09:33,870 ამიტომ printf, რომელიც ფაქტობრივად იმყოფება პატარა დამცავი us 198 00:09:33,870 --> 00:09:38,131 აქ, და სიტყვასიტყვით ბეჭდვა ღია paren null, მაგრამ უარესი რამ შეიძლება მოხდეს. 199 00:09:38,131 --> 00:09:40,130 და მხოლოდ იმის დემონსტრირება, რაღაც აბსოლუტურად 200 00:09:40,130 --> 00:09:42,800 არ უნდა გავაკეთოთ, მოდით წავიდეთ აქ და დაიწყოს გააღიზიანოს გარშემო. 201 00:09:42,800 --> 00:09:43,300 არა? 202 00:09:43,300 --> 00:09:46,410 თუ ვიცი, რომ სურათზე მეხსიერება, არსებითად, ეს, 203 00:09:46,410 --> 00:09:52,660 argv bracket 1 აქვს Zamyla, argv bracket 0 აქვს Hello, ან მიესალმები-3. 204 00:09:52,660 --> 00:09:55,400 რა არის bracket 2? 205 00:09:55,400 --> 00:09:58,210 ასე რომ, შემიძლია გითხრათ, რომ ეჭვქვეშ თავს, არა? 206 00:09:58,210 --> 00:10:00,460 შემიძლია უბრალოდ შეცვალოს 1 2. 207 00:10:00,460 --> 00:10:07,270 მე შემიძლია recompile მიესალმები 3, ./hello3 მოდით მიუახლოვდით და დააჭიროთ. 208 00:10:07,270 --> 00:10:08,270 Whoops. 209 00:10:08,270 --> 00:10:10,660 არარის ბრჭყალები. 210 00:10:10,660 --> 00:10:12,540 საინტერესო. 211 00:10:12,540 --> 00:10:15,530 ასე რომ, ერთგვარი მაგარი ვნახოთ რა არის აქ. 212 00:10:15,530 --> 00:10:17,130 >> ასე რომ, რა არის შიგნით ჩემი ლეპტოპი? 213 00:10:17,130 --> 00:10:20,390 გადავარჩინოთ იგი bracket 3. 214 00:10:20,390 --> 00:10:25,190 რათა hello3, მიესალმები-3. 215 00:10:25,190 --> 00:10:26,500 საინტერესო. 216 00:10:26,500 --> 00:10:30,560 და ახლა მოდით კიდევ მართლაც bold-- 50. 217 00:10:30,560 --> 00:10:34,340 ასე რომ, ეს ნამდვილად diving ღრმად ჩემს კომპიუტერის მეხსიერებაში. 218 00:10:34,340 --> 00:10:35,930 50 ინდექსები. 219 00:10:35,930 --> 00:10:41,950 ასე რომ hello 3 მიესალმები-3. 220 00:10:41,950 --> 00:10:42,680 საინტერესო. 221 00:10:42,680 --> 00:10:44,660 ყველა უფლება, ახლა მე მხოლოდ აპირებს მიიღოს უგუნური. 222 00:10:44,660 --> 00:10:47,331 წამო 5,000. 223 00:10:47,331 --> 00:10:47,830 ყველა უფლება. 224 00:10:47,830 --> 00:10:49,520 ნება მომეცით, recompile. 225 00:10:49,520 --> 00:10:51,460 რათა hello3, მიესალმები-3. 226 00:10:51,460 --> 00:10:55,780 227 00:10:55,780 --> 00:10:56,460 OK. 228 00:10:56,460 --> 00:10:59,250 ახლა ზოგიერთი თქვენთაგანი, შეიძლება შეიძლება ნათურა აპირებს off. 229 00:10:59,250 --> 00:11:01,900 რამდენი გაქვთ ჩანს ეს მესიჯი ადრე? 230 00:11:01,900 --> 00:11:03,440 OK. 231 00:11:03,440 --> 00:11:04,420 ასე რომ, რატომ? 232 00:11:04,420 --> 00:11:07,250 >> Odds are-- და იქ სხვადასხვა რამ შეიძლება გამოიწვიოს ეს, 233 00:11:07,250 --> 00:11:09,730 და აშკარად თქვენ კარგ company-- ჩვენ გვაქვს მკაფიოდ 234 00:11:09,730 --> 00:11:11,900 გამოიწვია, რასაც სეგმენტაცია ბრალია. 235 00:11:11,900 --> 00:11:15,890 და მოკლედ დღეს მე არ შეეხო სეგმენტი მეხსიერება 236 00:11:15,890 --> 00:11:17,060 რომ მე არ უნდა ჰქონდეს. 237 00:11:17,060 --> 00:11:19,970 სადაც სეგმენტი მხოლოდ იმას ნიშნავს, რომ ბლოკი მეხსიერების რომ მე არ უნდა ჰქონდეს. 238 00:11:19,970 --> 00:11:25,530 ახლა კომპიუტერი გარანტიას, რომ I აწარმოებს ./helloZamyla, რომ მე შეიძლება შეეხოთ argv 239 00:11:25,530 --> 00:11:27,760 შეიძლება bracket 0 და argv bracket 1. 240 00:11:27,760 --> 00:11:32,730 მაგრამ argc ღირებულების 2, რაც იმას ნიშნავს, რომ მე ვარ მხოლოდ allowed-- ეს ერთგვარი პატივი 241 00:11:32,730 --> 00:11:35,180 system-- შეეხოთ bracket 0 და bracket 1. 242 00:11:35,180 --> 00:11:37,990 თუ მე რაიმე შემდგომი, არსებობს აბსოლუტურად იქნება მეხსიერებაში არსებობს. 243 00:11:37,990 --> 00:11:40,660 ჩემი RAM არსებობს ფიზიკურად კომპიუტერი. 244 00:11:40,660 --> 00:11:42,080 მაგრამ ვინ იცის, რა არის იქ? 245 00:11:42,080 --> 00:11:44,450 რა თქმა უნდა, მე გაშვებული მრავალჯერადი პროგრამები ერთ დროს. 246 00:11:44,450 --> 00:11:46,910 მე შეიძლება seen-- თუ მე არ ამით მე Appliant 247 00:11:46,910 --> 00:11:49,937 მაგრამ ჩემს Mac ან PC-- მე შეიძლება ჩანს შინაარსი ელ. 248 00:11:49,937 --> 00:11:52,270 ალბათ მინახავს მყისიერი გაგზავნა მე გაგზავნილი ამ ბოლო პერიოდში. 249 00:11:52,270 --> 00:11:55,390 არაფერი რომ შეიძლება იყოს ხანგრძლივი გარშემო მეხსიერების 250 00:11:55,390 --> 00:11:59,180 შეიძლებოდა ყოფილიყო ხელმისაწვდომი გზით ამ თვითნებური კვადრატული ფრჩხილი ნოტაცია. 251 00:11:59,180 --> 00:12:02,850 ან, უარესი არ არის, რომ თქვენ შეიძლება ჰქონდეს ი ერთი ჩემი პაროლები 252 00:12:02,850 --> 00:12:05,859 რომ მე ცოტა ხნის წინ აკრეფილი, რომ პროგრამა ინახება მეხსიერებაში ისე, 253 00:12:05,859 --> 00:12:07,900 სინამდვილის ჩემთვის, და მაშინ უბრალოდ სახის დატოვა ეს 254 00:12:07,900 --> 00:12:09,910 in RAM სანამ მე წავედი, რომ პროგრამა. 255 00:12:09,910 --> 00:12:12,860 >> და მართლაც, ეს არის ერთ ერთი საფრთხე და ერთი უფლებამოსილება 256 00:12:12,860 --> 00:12:15,980 გამოყენებით ენა, როგორიცაა C. თქვენ უნდა სამორინეში 257 00:12:15,980 --> 00:12:18,860 მთელი შინაარსი პროგრამის მეხსიერებაში, 258 00:12:18,860 --> 00:12:21,340 და რა ცუდები შეგიძლიათ კი ამის გაკეთება იმ შემთხვევა 259 00:12:21,340 --> 00:12:23,807 განსაკუთრებით მაშინ, როდესაც მისაღებად ვებ პროგრამირების 260 00:12:23,807 --> 00:12:26,890 მიმართ სემესტრის ბოლოს, ჩვენ დავუბრუნდეთ ამ topic-- არის poke გარშემო, 261 00:12:26,890 --> 00:12:31,660 პოტენციურად, ვინმეს კომპიუტერის მეხსიერება და იპოვოს ისეთი ცნობისმოყვარე რამ 262 00:12:31,660 --> 00:12:32,570 როგორც დავინახეთ, არსებობს. 263 00:12:32,570 --> 00:12:36,900 ან უარესი არ არის, პაროლები, რომ მას შეუძლია შემდეგ გამოიყენოთ ცუდი რამ. 264 00:12:36,900 --> 00:12:40,240 >> ასე ნათლად არ უნდა გაკეთდეს, იმის გამო, რომ უცნაური ამბები ხდება. 265 00:12:40,240 --> 00:12:42,310 რა თქმა უნდა, ეს არის პროგრამა, crashing. 266 00:12:42,310 --> 00:12:44,580 ეს იქნება ექვივალენტი of Mac OS ან Windows 267 00:12:44,580 --> 00:12:46,770 პროგრამა ფანჯარა მხოლოდ გაქრობა. 268 00:12:46,770 --> 00:12:48,300 მოულოდნელი შეცდომა. 269 00:12:48,300 --> 00:12:50,840 ბრძანების ხაზი გარემო ჩვენ ვხედავთ რაღაც მსგავსი. 270 00:12:50,840 --> 00:12:54,480 მაგრამ სწორედ ამიტომ, არის მე უბრალოდ ეხება მეხსიერება რომ არ მეკუთვნის. 271 00:12:54,480 --> 00:12:57,090 >> ასე რომ, მოდით დასაცავად წინააღმდეგ ცოტა სხვაგვარად 272 00:12:57,090 --> 00:12:59,010 შევხედავთ ამ პროგრამის აქ. 273 00:12:59,010 --> 00:13:01,000 ასე რომ, კიდევ ერთხელ, ჩონჩხი ჩვენ ვნახეთ ადრე 274 00:13:01,000 --> 00:13:02,480 და მე ხაზგასმით ამ დროს int. 275 00:13:02,480 --> 00:13:05,900 და მთელი ამ ხნის მთავარ მართლაც დაბრუნდა ღირებულება. 276 00:13:05,900 --> 00:13:09,120 მიუხედავად იმისა, რომ ყველაზე მეტად ჩვენს ლექცია მაგალითები ჩვენ არასოდეს ერთხელ გამოიყენა 277 00:13:09,120 --> 00:13:10,990 დაბრუნდნენ არაფერს მთავარ. 278 00:13:10,990 --> 00:13:13,710 ჩვენ უბრალოდ დაწერა printf ახლოს Curly გაუწიოს და ეს არის ის. 279 00:13:13,710 --> 00:13:16,500 მაგრამ უფასოდ, რა შემდგენელი აკეთებს თქვენთვის, 280 00:13:16,500 --> 00:13:19,510 ეფექტურად, ბრუნდება 0 თქვენ. 281 00:13:19,510 --> 00:13:22,950 თურმე აღმოჩნდა და ეს პატარა counterintuitive-- რომ 0 არის კარგი. 282 00:13:22,950 --> 00:13:24,690 ეს იმას არ ნიშნავს ცრუ თავისთავად. 283 00:13:24,690 --> 00:13:29,080 0 არის კარგი, და ნებისმიერი არასამთავრობო 0 ღირებულება, მსოფლიო გადაწყვიტა, 284 00:13:29,080 --> 00:13:30,619 შეიძლება ნიშნავდეს შეცდომა. 285 00:13:30,619 --> 00:13:32,910 ასე რომ, თუ თქვენ ოდესმე არევა რაღაც up თქვენს კომპიუტერში, 286 00:13:32,910 --> 00:13:36,600 ან პროგრამის ახლახანს გარდაიცვალა თქვენ და თქვენ შემოსული ზოგიერთი მცდარი window 287 00:13:36,600 --> 00:13:40,360 თქვენს ეკრანზე და განაცხადა, რომ შეცდომა უარყოფითი 49 ან შეცდომა 23-- 288 00:13:40,360 --> 00:13:44,170 ერთი შეხედვით თვითნებური value--, რომ ის, რადგან პროგრამისტი მყარი კოდირებული 289 00:13:44,170 --> 00:13:49,370 ღირებულება, როგორიცაა უარყოფითი 49 ან დადებითი 23 წარმოადგენს ნებისმიერი ნომერი, ვთქვათ, 290 00:13:49,370 --> 00:13:53,340 საქართველოს 4 მილიარდი შესაძლო რამ რომ შეიძლება არასწორია პროგრამა. 291 00:13:53,340 --> 00:13:55,700 >> ასე როგორ შეიძლება მე მიიღოს უპირატესობა ამ თავს? 292 00:13:55,700 --> 00:13:58,970 ასევე, ნება მომეცით გახსენით პროგრამა რომ დავწერე წინასწარ, 293 00:13:58,970 --> 00:14:01,450 და poke გარშემო ონლაინ მოუწოდა hello 4. 294 00:14:01,450 --> 00:14:05,650 და ეს თითქმის იდენტურია, გარდა იმ მისი მივიღე ცოტა შეცდომის შემოწმება. 295 00:14:05,650 --> 00:14:09,660 ამ შემთხვევაში, მე კიდევ ერთხელ განაცხადა, მთავარ როგორც აღების ორი არგუმენტები, 296 00:14:09,660 --> 00:14:13,180 მაგრამ ამ დროს, on line 17, ცნობა მე ვაკეთებ ცოტა საღი აზრის ქვითარი. 297 00:14:13,180 --> 00:14:17,100 მე დარწმუნებული ვარ, რომ argc უდრის უდრის 2. 298 00:14:17,100 --> 00:14:18,960 იმიტომ, რომ თუ ის არის, რომ იმას ნიშნავს, რომ შეგიძლიათ უსაფრთხოდ 299 00:14:18,960 --> 00:14:21,420 შეეხოთ არა მხოლოდ bracket 0, მაგრამ bracket 1. 300 00:14:21,420 --> 00:14:24,330 და მე წავიდეთ წინ და ამობეჭდოთ, ამ შემთხვევაში, Zamyla ან რობ 301 00:14:24,330 --> 00:14:26,020 ან რასაც სიტყვა მე აკრეფილი გარეთ. 302 00:14:26,020 --> 00:14:28,020 და ახლა მხოლოდ მისაღებად ცოტა უფრო სწორად, 303 00:14:28,020 --> 00:14:31,910 მე ვაპირებ მკაფიოდ დაბრუნების 0 ნიშნავდეს, რომ ყველაფერი კარგად იქნება. 304 00:14:31,910 --> 00:14:33,300 არაფერი ცუდი მოხდა. 305 00:14:33,300 --> 00:14:38,590 >> მაგრამ კონვენციის, მე ვაპირებ დაბრუნდებიან 1, ან გულწრფელად ნებისმიერი არასამთავრობო 0 ღირებულება, 306 00:14:38,590 --> 00:14:40,160 თუ რაღაც წავიდა არასწორი. 307 00:14:40,160 --> 00:14:43,270 ახლა მომხმარებელს არ აპირებს ნამდვილად შეამჩნია, რა ხდება. 308 00:14:43,270 --> 00:14:50,410 მართლაც, თუ მე წასვლას ამ დირექტორიაში, ჩვენ მიუახლოვდით და მიიღოს hello 4, 309 00:14:50,410 --> 00:14:54,210 მიესალმები-4 Zamyla იქცევა როგორც ველოდები. 310 00:14:54,210 --> 00:14:58,570 მაგრამ თუ მე ნაცვლად არ აკრიფოთ არაფერი, არაფერი ჩანს, უნდა მოხდეს, 311 00:14:58,570 --> 00:14:59,680 მაგრამ ეს არ მისაწოდებლად. 312 00:14:59,680 --> 00:15:04,660 და თუ მე ნაცვლად, რომ რამე როგორც რობ არის proctor 313 00:15:04,660 --> 00:15:07,550 in Thayer-- გაზიარება თვითნებური ინფორმაცია. 314 00:15:07,550 --> 00:15:13,680 მაგრამ შეამჩნია, argv 1, 2, 3, 4, 5 უნდა არსებობდეს მეხსიერებაში. 315 00:15:13,680 --> 00:15:16,540 რომ, ძალიან, არ არის ჩემი პროგრამა მოელის, 316 00:15:16,540 --> 00:15:20,300 იმიტომ, რომ მე შემოწმდება თუ არა argc უდრის უდრის 2 თუ არა. 317 00:15:20,300 --> 00:15:22,140 ასე რომ, მე ახლა იცავდა წინააღმდეგ. 318 00:15:22,140 --> 00:15:25,290 >> ახლა, როგორც განზე, ჩვენ programmer-- უფრო სწორად, ჩვენ users-- 319 00:15:25,290 --> 00:15:29,670 არასოდეს, რომ 0 ან 1, მაგრამ გამოყენებით ინსტრუმენტი მოუწოდა Debugger, ან სხვა ინსტრუმენტები, 320 00:15:29,670 --> 00:15:32,250 როგორც ვნახავთ, სანამ ხანგრძლივი, პროგრამისტი 321 00:15:32,250 --> 00:15:36,590 შეგიძლიათ რეალურად ვხედავთ, თუ რა შეიძლება იყოს მიდის არასწორი შიგნით თქვენი პროგრამა. 322 00:15:36,590 --> 00:15:39,170 >> ასე რომ, ნებისმიერი შეკითხვა argc? 323 00:15:39,170 --> 00:15:40,873 Yeah. 324 00:15:40,873 --> 00:15:45,292 >> აუდიტორია: მე ვნახე, სადაც ისინი არ მქონდა ხასიათი, [INAUDIBLE] 325 00:15:45,292 --> 00:15:49,669 უბრალოდ განაცხადა, string ვარსკვლავი d, როგორიცაა ხასიათი ვარსკვლავი მძიმით. 326 00:15:49,669 --> 00:15:50,710 არიან ისინი ექვივალენტი აქ? 327 00:15:50,710 --> 00:15:51,626 >> დავით Malan: ისინი. 328 00:15:51,626 --> 00:15:55,080 ასე რომ, კითხვა, თქვენ უნდა ზოგჯერ ჩანს პროგრამები 329 00:15:55,080 --> 00:15:57,270 ასე რომ არ ამბობენ სიმებიანი argv bracket 330 00:15:57,270 --> 00:16:01,015 მაგრამ ნაცვლად ამბობენ, რომ რაღაც როგორიცაა char ვარსკვლავი argv bracket. 331 00:16:01,015 --> 00:16:03,140 და იქ კიდევ სხვა ვარიანტი, რომ თქვენ შეიძლება ვხედავთ. 332 00:16:03,140 --> 00:16:04,264 ისინი მართლაც ექვივალენტი. 333 00:16:04,264 --> 00:16:06,240 ახლა, ჩვენ გვაქვს ამ სახის ტრენინგი დისკები 334 00:16:06,240 --> 00:16:09,737 on სახით სიმებიანი CS50 ბიბლიოთეკა, მაგრამ მხოლოდ ერთი კვირის 335 00:16:09,737 --> 00:16:12,570 ანუ ჩვენ ვაპირებთ აღმოფხვრის ხელის შეშლა საერთოდ და, ფაქტობრივად, 336 00:16:12,570 --> 00:16:16,820 შეხედეთ რა char და ვარსკვლავი , და როგორ იმ ეხება მეხსიერება 337 00:16:16,820 --> 00:16:18,140 წარმომადგენლობა ზოგადად. 338 00:16:18,140 --> 00:16:19,540 ასე რომ, ჩვენ დავბრუნდებით რომ. 339 00:16:19,540 --> 00:16:21,540 >> სხვა შეკითხვებს ჩვენი argv ან argc? 340 00:16:21,540 --> 00:16:22,397 Yeah. 341 00:16:22,397 --> 00:16:24,438 აუდიტორია: რატომ დაბრუნდნენ შეცდომა [INAUDIBLE]? 342 00:16:24,438 --> 00:16:27,147 343 00:16:27,147 --> 00:16:29,230 დავით Malan: რატომ დაბრუნდეს შეცდომა only-- oh! 344 00:16:29,230 --> 00:16:31,813 წინა შემთხვევაში, როდესაც ჩვენ იყო futzing გარშემო მეხსიერება, 345 00:16:31,813 --> 00:16:35,110 რატომ მხოლოდ დაბრუნდება შეცდომა როდესაც მე ნამდვილად აკრეფილი დიდი რაოდენობით? 346 00:16:35,110 --> 00:16:36,620 მოკლე პასუხი არის, ჩვენ უბრალოდ გაუმართლა. 347 00:16:36,620 --> 00:16:39,240 ზოგადად, კომპიუტერის გამოყოფს მეხსიერება მოცულობით, 348 00:16:39,240 --> 00:16:42,900 და ეს მომცა დიდი საკმარისი ბლოკი, რომ მე მივიღე მოშორებით, გარეშე შენიშნეს, 349 00:16:42,900 --> 00:16:46,280 ეხება bracket 2, bracket 3, bracket 50, მაგრამ, როგორც კი მივიღებთ 350 00:16:46,280 --> 00:16:49,080 ჩემი გისურვებთ, მე გასცდა საზღვრების ბლოკი მეხსიერება 351 00:16:49,080 --> 00:16:50,520 ოპერაციული სისტემა მომცა. 352 00:16:50,520 --> 00:16:52,720 და მაშინ, როდესაც ეს დაამხო და განაცხადა, რომ არ არის. 353 00:16:52,720 --> 00:16:54,580 სეგმენტაცია შეცდომა. 354 00:16:54,580 --> 00:16:55,692 Yeah. 355 00:16:55,692 --> 00:16:58,890 >> აუდიტორია: როგორ კომპიუტერული ვიცი argc? 356 00:16:58,890 --> 00:17:02,390 >> დავით Malan: როგორ კომპიუტერული ვიცი argc? 357 00:17:02,390 --> 00:17:07,920 როდესაც თქვენ აწარმოებს პროგრამა, რომელიც პროგრამის, ბუნების მოციმციმე სწრაფი, 358 00:17:07,920 --> 00:17:11,359 ჩააბარეს მასივი სიტყვა, რომლებიც აკრეფილი 359 00:17:11,359 --> 00:17:13,300 ზოლზე, რომ იყო აკრეფილი ბრძანებათა ზოლზე. 360 00:17:13,300 --> 00:17:16,569 ასე რომ, ეს არის თქვენი ოპერაციული სისტემა, რომელიც არსებითად 361 00:17:16,569 --> 00:17:20,329 populates მთავარი არგუმენტები თქვენთვის. 362 00:17:20,329 --> 00:17:22,829 ასე რომ, ეს ერთი მომსახურება რომ თქვენ, ერთგვარი ფარულად 363 00:17:22,829 --> 00:17:24,869 ქვევმოთ hood of ოპერაციული სისტემა. 364 00:17:24,869 --> 00:17:27,118 გაქვთ სხვა კითხვები? 365 00:17:27,118 --> 00:17:27,618 Yeah. 366 00:17:27,618 --> 00:17:29,787 >> აუდიტორია: რა ძირითადი ნაგავსაყრელი ნიშნავს? 367 00:17:29,787 --> 00:17:31,370 დავით Malan: რა ძირითადი ნაგავსაყრელი ნიშნავს? 368 00:17:31,370 --> 00:17:32,950 ასე რომ, ეს კარგი კითხვაა. 369 00:17:32,950 --> 00:17:35,312 და ნება მომეცით დაბრუნდეს ეს ჩამონათვალი აქ. 370 00:17:35,312 --> 00:17:37,270 და თქვენ შეამჩნევთ, რომ მაქვს ახალი ფაილი არ არსებობს. 371 00:17:37,270 --> 00:17:41,670 ეს მართლაც მოუწოდა ძირითადი, და ეს რეალურად, როგორც წესი, ღირსეული ზომის ფაილი. 372 00:17:41,670 --> 00:17:45,300 რომელიც არსებითად ფოტოგრაფია შინაარსი ჩემი პროგრამის მეხსიერებაში 373 00:17:45,300 --> 00:17:46,902 ან RAM როდესაც ის შეეჯახა. 374 00:17:46,902 --> 00:17:49,110 და ეს იქნება სასარგებლო, პოტენციურად, დიაგნოსტიკური, 375 00:17:49,110 --> 00:17:52,850 ერთხელ ვსაუბრობთ მომავალი ლექცია და მონაკვეთის შესახებ გამართვის, 376 00:17:52,850 --> 00:17:55,730 იმიტომ, რომ თქვენ შეგიძლიათ რეალურად გავაკეთოთ ეკვივალენტი ციფრული გაკვეთის 377 00:17:55,730 --> 00:18:00,300 რომ ფაილი, რათა დაეხმაროს გაერკვნენ რა გააკეთეთ თქვენ არასწორი თქვენი პროგრამა. 378 00:18:00,300 --> 00:18:01,220 Yeah. 379 00:18:01,220 --> 00:18:04,450 >> აუდიტორია: არის argc ბრძანება თავად, ან თუ შეგიძლიათ, დაასახელოთ ის არაფერი? 380 00:18:04,450 --> 00:18:05,575 >> დავით Malan: კარგი კითხვაა. 381 00:18:05,575 --> 00:18:08,040 არის argc ბრძანება თავად, ან შეიძლება თქვენ დაარქვით რამე? 382 00:18:08,040 --> 00:18:09,290 ეს ნამდვილად არ იყო მოთხოვნა. 383 00:18:09,290 --> 00:18:13,500 ეს უბრალოდ ცვლადი სახელი ან არგუმენტი სახელი, 384 00:18:13,500 --> 00:18:15,481 და ასე აბსოლუტურად ჩვენ შეიძლება მოუწოდოს ამ foo, 385 00:18:15,481 --> 00:18:18,480 შეგვეძლო გვეწოდებინა ბარი, რომელიც, როგორც წესი, უნდა იყოს go-to სიტყვები, რომ კომპიუტერული 386 00:18:18,480 --> 00:18:19,860 მეცნიერი მიდის. 387 00:18:19,860 --> 00:18:22,820 მაგრამ კონვენციის, ჩვენ ვიყენებთ argc და argv. 388 00:18:22,820 --> 00:18:25,360 მაგრამ ეს მხოლოდ ადამიანის კონვენცია, მეტი არაფერი. 389 00:18:25,360 --> 00:18:25,860 ყველა უფლება. 390 00:18:25,860 --> 00:18:28,140 ასე რომ, თურმე, მე უკვე ვეუბნებოდი ცოტა თეთრი lie-- 391 00:18:28,140 --> 00:18:31,264 და გულწრფელად ვამბობ, მომავალში, თქვენ ნახავთ ჩვენ ვეუბნებით სხვა თეთრი ტყუილი. 392 00:18:31,264 --> 00:18:33,510 მაგრამ ახლა, ჩვენ ვაპირებთ კანი უკან ერთი მათგანი. 393 00:18:33,510 --> 00:18:37,310 ამ შემთხვევაში აქ როცა მე ადრე გაიქცა პროგრამა მოსწონს მიესალმები ან მიესალმები-3 394 00:18:37,310 --> 00:18:42,780 Zamyla, ჩვენ გვქონდა შინაარსი ჩემი კომპიუტერის მეხსიერებაში ეძებს დაახლოებით მოსწონს 395 00:18:42,780 --> 00:18:43,280 ეს. 396 00:18:43,280 --> 00:18:45,070 მაგრამ გავიხსენოთ, თუ რა სიმებიანი. 397 00:18:45,070 --> 00:18:49,279 რა ვამბობთ, რომ ერთი კვირის წინ, რა სიმებიანი რეალურად ქვევმოთ hood? 398 00:18:49,279 --> 00:18:50,320 აუდიტორია: Array სიმბოლო. 399 00:18:50,320 --> 00:18:52,111 დავით Malan: ეს მასივი სიმბოლო, არა? 400 00:18:52,111 --> 00:18:55,760 ასე რომ, ჩვენ შეიძლება მასივი strings, მაგრამ, თავის მხრივ, მხოლოდ 401 00:18:55,760 --> 00:18:57,150 მასივი სიმბოლო. 402 00:18:57,150 --> 00:19:00,010 ასე რომ, თუ მე ნამდვილად მინდა, რომ იყოს anal, როდესაც მე ასეთი სურათი, 403 00:19:00,010 --> 00:19:03,290 მე ნამდვილად უნდა ხატვის ეს პატარა, როგორც ეს, 404 00:19:03,290 --> 00:19:08,000 რომლის დროსაც თითოეული ამ ინდექსები ჩემი argv მასივი, 405 00:19:08,000 --> 00:19:11,432 არსებობს თავისთავად მთელი სიმებიანი რაც თავისთავად მასივი. 406 00:19:11,432 --> 00:19:13,140 და ახლა თეთრი ტყუილი ჩვენ ვეუბნებით დღეს 407 00:19:13,140 --> 00:19:15,181 არის, რომ სურათზე არ გამოიყურება საკმაოდ მსგავსი. 408 00:19:15,181 --> 00:19:19,110 ფაქტობრივად, პატარა მოედნები როგორც წესი, გარეთ დიდი მართკუთხედების 409 00:19:19,110 --> 00:19:19,610 არსებობს. 410 00:19:19,610 --> 00:19:21,280 მაგრამ ჩვენ დავბრუნდებით, რომ ხანგრძლივი. 411 00:19:21,280 --> 00:19:25,440 მაგრამ ეს მიესალმები წარმატებული 0, , რომ სპეციალური ხასიათის, რომ 412 00:19:25,440 --> 00:19:28,310 demarcates ბოლოს სიმებიანი, და ჩვენ მივიღეთ კიდევ ერთი შემდეგ 413 00:19:28,310 --> 00:19:29,360 Zamyla სახელი. 414 00:19:29,360 --> 00:19:30,900 ასე რომ, რას ნიშნავს ეს? 415 00:19:30,900 --> 00:19:33,410 >> ასევე, ნება მომეცით წავიდეთ წინ და გახსენით ორი სხვა მაგალითები 416 00:19:33,410 --> 00:19:35,220 , რომლებიც ხელმისაწვდომი ამჟამად. 417 00:19:35,220 --> 00:19:40,590 ეწოდება argv1.c და სხვა არის argv2. 418 00:19:40,590 --> 00:19:44,260 ეს სუპერ მარტივი პროგრამა, რომელიც განსხვავდება წარსულში პროგრამები 419 00:19:44,260 --> 00:19:47,260 და ახლა მე გამოყენებით argc და argv აქ. 420 00:19:47,260 --> 00:19:54,300 და ახლა მე ინტეგრირება მარყუჟის ხაზი 18, საწყისი i = 0 on მდე argc. 421 00:19:54,300 --> 00:19:56,850 და რა ვარ მე აპირებს ამ ხაზი კოდი აქ? 422 00:19:56,850 --> 00:19:58,270 ინგლისურ ენაზე. 423 00:19:58,270 --> 00:20:00,510 ეს აშკარად მეტყველებს გამოყენების argc. 424 00:20:00,510 --> 00:20:03,670 მაგრამ ინგლისურ, რას ეს გავაკეთო, თუ მე აწარმოებს ამ პროგრამის? 425 00:20:03,670 --> 00:20:04,366 ჰო? 426 00:20:04,366 --> 00:20:07,386 >> აუდიტორია: ეს აპირებს ბეჭდვა თქვენი ეკრანზე, როგორც არაერთხელ, როგორც თქვენ გსურთ. 427 00:20:07,386 --> 00:20:08,260 DAVID Malan: ზუსტად. 428 00:20:08,260 --> 00:20:10,480 ასე რომ, რასაც სიტყვა I ტიპის სწრაფი, ეს 429 00:20:10,480 --> 00:20:13,120 აპირებს regurgitate მათ ჩემთვის ერთი თითო ხაზზე. 430 00:20:13,120 --> 00:20:14,370 მოდით წავიდეთ წინ და ამის გაკეთება. 431 00:20:14,370 --> 00:20:17,862 ნება მომეცით წასვლას ჩემი დირექტორია და მიიღოს argv1 ./argv1. 432 00:20:17,862 --> 00:20:20,521 433 00:20:20,521 --> 00:20:21,770 და ახლა, მოდით შენარჩუნება ეს მარტივი. 434 00:20:21,770 --> 00:20:23,834 მოდით არაფერი პირველი. 435 00:20:23,834 --> 00:20:26,750 ეს მოხდა ამობეჭდოთ ერთი რამ, და რომ მართლაც პროგრამის დასახელება, 436 00:20:26,750 --> 00:20:28,240 იმიტომ, რომ ამ bracket 0. 437 00:20:28,240 --> 00:20:33,290 თუ მე ახლა ვიტყვი, foo, ის აპირებს ამ ორ, და თუ ვიტყვი, foo ბარი, 438 00:20:33,290 --> 00:20:35,580 ის აპირებს ამბობენ, რომ სამი რამ. 439 00:20:35,580 --> 00:20:37,740 ახლა, რომ გარკვეულწილად საინტერესო, ალბათ. 440 00:20:37,740 --> 00:20:41,450 მაგრამ გავიხსენოთ, რომ argv არის მასივი სტრიქონები, 441 00:20:41,450 --> 00:20:45,960 მაგრამ სიმებიანი მასივი სიმბოლო, ასე შეგვიძლია რამ up მაღალი დონის 442 00:20:45,960 --> 00:20:48,560 და ვრცელდება, ძირითადი ლოგიკა და კოდი, რომელიც 443 00:20:48,560 --> 00:20:51,160 გამოიყურება ცოტა მეტი cryptic, მართლაც. 444 00:20:51,160 --> 00:20:53,540 მაგრამ, რომელსაც აქვს წყობილი loop, რაღაც akin 445 00:20:53,540 --> 00:20:57,030 რა შეიძლება გავიხსენოთ Mario, მაგალითად, თუ ეს გზა. 446 00:20:57,030 --> 00:21:00,380 >> ამიტომ ახლა შეამჩნია on line 19, მე ერთხელ iterating მეტი ჩემი არგუმენტები, 447 00:21:00,380 --> 00:21:02,410 საწყისი 0 on მდე argc. 448 00:21:02,410 --> 00:21:05,510 და ახლა ხაზი 21-- ვარ სესხების შეასრულა გასულ კვირას 449 00:21:05,510 --> 00:21:11,090 მე ვუყურებ, თუ რა არის სიგრძის argv bracket i. 450 00:21:11,090 --> 00:21:12,920 მე შენახვის, რომ პასუხი n. 451 00:21:12,920 --> 00:21:18,230 და მაშინ მე ინტეგრირება საწყისი j on მდე n, სადაც j ინიციალიზაცია რომ 0. 452 00:21:18,230 --> 00:21:19,460 ასე რომ, კონვენციის დათვლა. 453 00:21:19,460 --> 00:21:22,335 მას შემდეგ, რაც თქვენ გამოიყენება i, თუ თქვენ გაქვთ წყობილი მარყუჟის, თქვენ ვერ გამოიყენებს მე კიდევ ერთხელ, 454 00:21:22,335 --> 00:21:25,770 წინააღმდეგ შემთხვევაში, თქვენ clobber, პოტენციურად, ღირებულება გარეთ შიდა loop. 455 00:21:25,770 --> 00:21:27,200 ამიტომ მე გამოყენებით j კონვენციას. 456 00:21:27,200 --> 00:21:28,020 ჩვენ შეიძლება გამოვიყენოთ k. 457 00:21:28,020 --> 00:21:31,080 თუ თქვენ გაქვთ ერთზე მეტი k, ალბათ, აქვს ძალიან ბევრი მობუდარი, როგორც წესი. 458 00:21:31,080 --> 00:21:33,800 მაგრამ ახლა შეამჩნია ჩემი printf ხაზი ოდნავ განსხვავებული. 459 00:21:33,800 --> 00:21:37,520 მე არ დაბეჭდვის% s, მე ბეჭდვის% c, რომელიც, რა თქმა უნდა, 460 00:21:37,520 --> 00:21:39,460 არის placeholder for char. 461 00:21:39,460 --> 00:21:40,770 >> და ახლა შეამჩნია ეს სინტაქსი. 462 00:21:40,770 --> 00:21:41,270 ახალი. 463 00:21:41,270 --> 00:21:42,630 ჩვენ არ მინახავს ადრე. 464 00:21:42,630 --> 00:21:47,290 მაგრამ ლოგიკურად, ეს მხოლოდ იმას ნიშნავს, მიიღეთ შ სიმებიანი argv 465 00:21:47,290 --> 00:21:50,067 და მიიღეთ jth რა? 466 00:21:50,067 --> 00:21:50,900 აუდიტორია: Character. 467 00:21:50,900 --> 00:21:52,800 დავით Malan: პერსონაჟი რომ სიმებიანი. 468 00:21:52,800 --> 00:21:57,100 ასე გამოყენებით კვადრატულ ფრჩხილებში მოყვება კვადრატულ ფრჩხილებში, 469 00:21:57,100 --> 00:22:00,390 ეს არის diving პირველი შევიდა argv ის სიმები, 470 00:22:00,390 --> 00:22:02,225 და შემდეგ მეორე კვადრატულ ფრჩხილებში დავუკავშირდეთ j 471 00:22:02,225 --> 00:22:06,580 არის diving შევიდა გმირები რომ კონკრეტულ სიმებიანი argv. 472 00:22:06,580 --> 00:22:09,562 და მაშინ, მხოლოდ კარგი ღონისძიება, მე დაბეჭდვის ახალი ხაზი აქ. 473 00:22:09,562 --> 00:22:12,020 ახლა ნება მომეცით წავიდეთ წინ და გახსნა up ოდნავ უფრო window 474 00:22:12,020 --> 00:22:13,600 ასე რომ, ჩვენ ვხედავთ, ამ მოქმედებაში. 475 00:22:13,600 --> 00:22:15,700 ნება მომეცით წასვლას, რომ საქაღალდეში. 476 00:22:15,700 --> 00:22:22,550 და ახლა ამის გაკეთება argv-2-- whoops-- რათა argv-2, ./argv 2. 477 00:22:22,550 --> 00:22:23,110 შევა. 478 00:22:23,110 --> 00:22:24,860 და ეს ცოტა რთული წაკითხვის ვერტიკალურად, 479 00:22:24,860 --> 00:22:27,920 მაგრამ ეს მართლაც სახელი პროგრამა, რომელსაც მოყვება ცარიელი ხაზი. 480 00:22:27,920 --> 00:22:30,210 ახლა ნება მომეცით წავიდეთ წინ და ამის გაკეთება foo. 481 00:22:30,210 --> 00:22:33,210 ასეთივე მძიმე წასაკითხი, მაგრამ ეს მართლაც დაბეჭდვის ერთი ხასიათი თითო ხაზზე. 482 00:22:33,210 --> 00:22:36,780 და თუ ბარი, ეს არის ბეჭდვის იმ ხაზს. 483 00:22:36,780 --> 00:22:40,140 ამიტომ takeaway აქ არ არის იმდენად რომ, wow, შევხედოთ ამ neat ახალი ხრიკი 484 00:22:40,140 --> 00:22:44,750 სადაც შეგიძლიათ მიიღოთ შინაარსი მასივი კონკრეტული პერსონაჟი, 485 00:22:44,750 --> 00:22:48,380 არამედ, თუ როგორ ჩვენ აღების ეს ძირითადი იდეები, როგორიცაა ინდექსირებას შევიდა მასივი, 486 00:22:48,380 --> 00:22:51,620 და შემდეგ ინდექსირებას შევიდა მასივი, რომელიც იყო, რომ მასივი, 487 00:22:51,620 --> 00:22:56,180 და მხოლოდ გამოყენებით იგივე იდეები ოდნავ უფრო დახვეწილი მაგალითები. 488 00:22:56,180 --> 00:22:59,560 მაგრამ საფუძვლები ნამდვილად არ შეიცვალა, მაშინაც კი, მას შემდეგ, რაც გასულ კვირას. 489 00:22:59,560 --> 00:23:02,350 >> ახლა ეს არის ერთგვარი დროული, რომ, გავიხსენოთ, რომ კვირის ნულოვანი 490 00:23:02,350 --> 00:23:04,110 ჩვენ ითამაშა, რომელზეც სატელეფონო წიგნი მოსწონს ეს. 491 00:23:04,110 --> 00:23:06,670 და მიუხედავად იმისა, რომ ეს არის აშკარად ფიზიკური ცალი ქაღალდის, 492 00:23:06,670 --> 00:23:09,150 შეგიძლიათ სახის ვფიქრობ სატელეფონო წიგნი, როგორც მასივი. 493 00:23:09,150 --> 00:23:12,770 რა თქმა უნდა, თუ იყო reimplement ამ ცალი ამ ცალი ქაღალდის 494 00:23:12,770 --> 00:23:15,260 კომპიუტერი, ალბათ, თქვენ უნდა გამოიყენოთ რაღაც 495 00:23:15,260 --> 00:23:20,270 მასივი შესანახად ყველა იმ სახელები და ნომრები ყველა გზა 496 00:23:20,270 --> 00:23:23,800 მეშვეობით ზ ასე რომ, ეს არის ლამაზი, რადგან ეს საშუალებას გვაძლევს შესაძლებლობას, 497 00:23:23,800 --> 00:23:28,310 ალბათ, განიხილოს, თუ როგორ შეიძლება რეალურად განახორციელოს რამე მაგდაგვარს. 498 00:23:28,310 --> 00:23:31,250 როგორც მთელი რიგი კარი აქ. 499 00:23:31,250 --> 00:23:36,380 ასე რომ, თუ მე could-- ჩვენ გვჭირდება ერთი მოხალისე მოდის up. 500 00:23:36,380 --> 00:23:36,980 ვნახოთ. 501 00:23:36,980 --> 00:23:40,650 უცხო სახე, ალბათ, უცხო სახე ალბათ. 502 00:23:40,650 --> 00:23:42,090 როგორ შესახებ ნარინჯისფერი? 503 00:23:42,090 --> 00:23:42,680 აქ. 504 00:23:42,680 --> 00:23:45,870 ფორთოხალი პერანგი, მოდის up. 505 00:23:45,870 --> 00:23:52,230 >> მოდით წავიდეთ წინ არის და ეს ნაბიჯი ამ კარს მხარეზე, 506 00:23:52,230 --> 00:23:54,020 გადაადგილება ამ გზას მომენტში. 507 00:23:54,020 --> 00:23:56,600 508 00:23:56,600 --> 00:23:57,760 რა გქვია? 509 00:23:57,760 --> 00:23:58,580 >> Ajay: 510 00:23:58,580 --> 00:23:58,655 >> დავით Malan: Ajay. 511 00:23:58,655 --> 00:23:58,680 დავით. 512 00:23:58,680 --> 00:23:59,451 კარგია თქვენთან შეხვედრა. 513 00:23:59,451 --> 00:23:59,950 ყველა უფლება. 514 00:23:59,950 --> 00:24:04,500 ასე რომ, ჩვენ გვაქვს უკან ამ ექვსი კარი ციფრული ეკრანზე 515 00:24:04,500 --> 00:24:07,810 ან, უფრო სწორად, შვიდი კარი ეკრანზე მთელი bunch of ნომრები. 516 00:24:07,810 --> 00:24:10,099 და მე გითხარით, არაფერი in advance-- შეთანხმდნენ? 517 00:24:10,099 --> 00:24:11,140 Ajay არაფერი წინასწარ. 518 00:24:11,140 --> 00:24:14,730 დავით Malan: ყველა მინდა, რომ ამის გაკეთება ახლა ის არის, ჩემთვის, ჩვენთვის, 519 00:24:14,730 --> 00:24:20,920 მართლაც, ნომერი 50, ერთი ნაბიჯი იმ დროს. 520 00:24:20,920 --> 00:24:21,830 >> Ajay: პუნქტების 50? 521 00:24:21,830 --> 00:24:22,580 >> DAVID Malan: ნომერი 50. 522 00:24:22,580 --> 00:24:24,746 და შეგიძლიათ გამოვლენა რა არის უკან თითოეულ ამ კარს 523 00:24:24,746 --> 00:24:27,930 უბრალოდ ეხება ეს თითი. 524 00:24:27,930 --> 00:24:31,364 რა იგი. [სიცილი] 525 00:24:31,364 --> 00:24:34,560 >> [ტაში] 526 00:24:34,560 --> 00:24:39,540 >> ძალიან კარგად გაკეთდეს. 527 00:24:39,540 --> 00:24:40,400 OK. 528 00:24:40,400 --> 00:24:44,090 ჩვენ გვაქვს მშვენიერი საჩუქარი პრიზი აქ. 529 00:24:44,090 --> 00:24:46,520 თქვენი არჩევანი ფილმები ჩვენ განიხილეს გასულ კვირას. 530 00:24:46,520 --> 00:24:47,362 >> Ajay: Oh, man. 531 00:24:47,362 --> 00:24:49,050 Oh, მე მინახავს Spaceballs. 532 00:24:49,050 --> 00:24:49,520 >> დავით Malan: Spaceballs. 533 00:24:49,520 --> 00:24:50,140 ყველა უფლება. 534 00:24:50,140 --> 00:24:53,790 ასე გამართავს მხოლოდ ერთი მომენტი. 535 00:24:53,790 --> 00:24:57,430 How-- მოდით ეს ვსწავლობთ მომენტში 536 00:24:57,430 --> 00:25:00,412 როგორ წავიდეთ შესახებ მოძიებაში ნომერი 50? 537 00:25:00,412 --> 00:25:01,370 Ajay: მე აირჩია შემთხვევით. 538 00:25:01,370 --> 00:25:03,420 DAVID Malan: ასე რომ თქვენ აირჩია შემთხვევით და გაუმართლა. 539 00:25:03,420 --> 00:25:03,790 Ajay: დიახ. 540 00:25:03,790 --> 00:25:04,456 დავით Malan: OK. 541 00:25:04,456 --> 00:25:05,050 შესანიშნავი. 542 00:25:05,050 --> 00:25:08,470 ასე რომ, ახლა, რომ თქვენ არ მიღებული გაუმართლა, რა 543 00:25:08,470 --> 00:25:10,210 შეიძლება მომხდარიყო უკან ეს კარები? 544 00:25:10,210 --> 00:25:12,930 ასე რომ, თუ მე წავიდეთ წინ და გამოვლენა ამ ნომრებზე აქ, 545 00:25:12,930 --> 00:25:15,180 ისინი რეალურად არიან შემთხვევითი მიზნით. 546 00:25:15,180 --> 00:25:17,750 და საუკეთესო თქვენ შეიძლება გაკეთდეს, სიმართლე გითხრათ, არის ის, რომ, საბოლოო ჯამში, 547 00:25:17,750 --> 00:25:19,410 უარეს შემთხვევაში, შემოწმების მათ ყველა. 548 00:25:19,410 --> 00:25:23,000 ასე რომ თქვენ გაქვთ სუპერ გაუმართლა, რომელიც არ არის ის რაც ჩვენ გვინდა მოვუწოდებთ ალგორითმი. 549 00:25:23,000 --> 00:25:24,730 დიახ, congrats. 550 00:25:24,730 --> 00:25:27,010 მაგრამ ახლა let's-- იუმორი ჩემთვის, თუ შეიძლება. 551 00:25:27,010 --> 00:25:28,310 მოდით წავიდეთ ამ tab აქ. 552 00:25:28,310 --> 00:25:31,460 და აქ ნომრები ნათლად რაც, როგორც ჩანს შემთხვევითი მიზნით, 553 00:25:31,460 --> 00:25:32,280 და იყვნენ ისინი. 554 00:25:32,280 --> 00:25:35,160 მაგრამ ახლა თუ მე ნაცვლად სარჩელის რომ უკან ამ კარს 555 00:25:35,160 --> 00:25:39,070 ნომრები, რომლებიც დალაგებულია. 556 00:25:39,070 --> 00:25:41,780 მიზანი არის ის, რომ ასევე მოგვაგნოთ ნომერი 50. 557 00:25:41,780 --> 00:25:45,910 მაგრამ ამის გაკეთება algorithmically და გვეუბნებიან, თუ როგორ ვაპირებთ ამის შესახებ. 558 00:25:45,910 --> 00:25:48,020 და თუ თქვენ მას, თქვენ გაქვთ ფილმი. 559 00:25:48,020 --> 00:25:49,520 თქვენ ვერ იპოვით მას, მისცეს მას უკან. 560 00:25:49,520 --> 00:25:52,720 561 00:25:52,720 --> 00:25:58,112 Ajay: ამიტომ, მე ვაპირებ, რათა შეამოწმოს მთავრდება პირველი, რათა დადგინდეს, თუ there's-- 562 00:25:58,112 --> 00:26:02,048 [სიცილი და ტაში] 563 00:26:02,048 --> 00:26:04,451 564 00:26:04,451 --> 00:26:05,492 დავით Malan: აი. 565 00:26:05,492 --> 00:26:17,080 566 00:26:17,080 --> 00:26:21,700 მოდით შევხედოთ ერთი საქართველოს Ajay მისი წინამორბედების მსგავსად, 567 00:26:21,700 --> 00:26:25,450 Sean, რომელიც იყო საკმაოდ გაუმართლა. 568 00:26:25,450 --> 00:26:28,670 OK, ასე რომ თქვენი ამოცანა აქ, Sean, არის შემდეგი. 569 00:26:28,670 --> 00:26:32,970 მე არ იმალება უკან ამ კარები ნომერი შვიდი, 570 00:26:32,970 --> 00:26:37,200 მაგრამ მოახერხა მოშორებით ზოგიერთი კარები ასევე არიან სხვა არასამთავრობო უარყოფითი რიცხვები. 571 00:26:37,200 --> 00:26:40,730 და თქვენი მიზანია, რომ ვიფიქროთ ამ ზედა გრაფაში ნომრები მხოლოდ მასივი. 572 00:26:40,730 --> 00:26:43,590 ჩვენ უბრალოდ თანმიმდევრობა ცალი ქაღალდი ნომრები მათ უკან. 573 00:26:43,590 --> 00:26:47,640 და თქვენი მიზანია, მხოლოდ გამოყენებით დაბრუნება მასივი აქ, ჩემთვის ნომერი შვიდი. 574 00:26:47,640 --> 00:26:51,200 და ჩვენ შემდეგ ვაპირებთ კრიტიკა როგორ წავიდეთ შესახებ ვაკეთებთ. 575 00:26:51,200 --> 00:26:52,920 მოგვაგნოთ ნომერი შვიდი, გთხოვთ. 576 00:26:52,920 --> 00:27:02,570 577 00:27:02,570 --> 00:27:03,070 პოსტები 578 00:27:03,070 --> 00:27:06,760 579 00:27:06,760 --> 00:27:08,179 5, 19, 13. 580 00:27:08,179 --> 00:27:16,752 581 00:27:16,752 --> 00:27:17,835 ეს არ შეასრულა კითხვაზე. 582 00:27:17,835 --> 00:27:21,420 583 00:27:21,420 --> 00:27:21,920 1. 584 00:27:21,920 --> 00:27:26,715 585 00:27:26,715 --> 00:27:29,840 ამ ეტაპზე თქვენი ანგარიში არ არის ძალიან კარგი, ასე რომ თქვენ შეიძლება ასევე შენარჩუნებას აპირებს. 586 00:27:29,840 --> 00:27:32,870 587 00:27:32,870 --> 00:27:33,370 3. 588 00:27:33,370 --> 00:27:38,570 589 00:27:38,570 --> 00:27:39,802 გაგრძელდება. 590 00:27:39,802 --> 00:27:42,510 სიმართლე გითხრათ, მე ვერ დაეხმარება, მაგრამ საინტერესოა, რა თქვენ კი ფიქრი. 591 00:27:42,510 --> 00:27:44,990 >> SEAN: მე შეუძლია მიიღოს მხოლოდ ყველაზე ზედიზედ. 592 00:27:44,990 --> 00:27:46,240 დავით Malan: მხოლოდ ყველაზე ზედიზედ. 593 00:27:46,240 --> 00:27:47,281 ასე რომ თქვენ გაქვთ სამი მარცხენა. 594 00:27:47,281 --> 00:27:48,310 ასე რომ, მე 7. 595 00:27:48,310 --> 00:27:54,758 596 00:27:54,758 --> 00:27:59,141 >> [აუდიტორია შეძახილებით წინადადებები] 597 00:27:59,141 --> 00:28:22,210 598 00:28:22,210 --> 00:28:26,130 ასე რომ, ორივე მათგანი იყო გასაოცარი ძალიან განსხვავებული მიზეზის გამო. 599 00:28:26,130 --> 00:28:29,150 ასე რომ, ჩვენ შეჩერდით მომენტში წინ, 600 00:28:29,150 --> 00:28:32,530 და გასაღები ინსაითი აქ იყო ეს კარი გვქონდა ნომრები 601 00:28:32,530 --> 00:28:37,390 მათ უკან რომ იყო დახარისხებული, იდეალური takeaway, რომელიც არის ის, რომ თქვენ ამის გაკეთება 602 00:28:37,390 --> 00:28:39,670 ფუნდამენტურად უკეთესი მეორე example-- 603 00:28:39,670 --> 00:28:42,380 და, მართლაც, რომ იყო შონ პირველი მცდელობა ერთად შემთხვევითი რიცხვების 604 00:28:42,380 --> 00:28:45,460 ისევე როგორც ადრე, მაგრამ, როგორც კი როგორც ეს ციფრები დახარისხებული, 605 00:28:45,460 --> 00:28:47,980 ისევე როგორც სატელეფონო წიგნი, რა შეგიძლიათ აშკარად გაკეთება? 606 00:28:47,980 --> 00:28:50,090 ან როგორ შეიძლება თქვენ ბერკეტი, რომ ცოდნა? 607 00:28:50,090 --> 00:28:51,530 Yeah. 608 00:28:51,530 --> 00:28:54,910 >> აუდიტორია: თქვენ წასვლა შუა ნაწილამდე იყვნენ [INAUDIBLE]. 609 00:28:54,910 --> 00:28:55,660 DAVID Malan: ჰო. 610 00:28:55,660 --> 00:28:56,160 ზუსტად. 611 00:28:56,160 --> 00:28:59,680 ასე რომ, Ajay პირველადი ინსტიქტი იყო რათა შეამოწმოს მთავრდება, როგორც მახსოვს, 612 00:28:59,680 --> 00:29:02,320 და მაშინ ჩვენ ერთგვარი მზა მაგალითად სწრაფად. 613 00:29:02,320 --> 00:29:05,220 მაგრამ თუ ჩვენ დავიწყეთ ამის გაკეთება უფრო მეთოდურად ერთად იმ ხაზები, 614 00:29:05,220 --> 00:29:07,860 მაგრამ დაწყებული ალბათ, შუა, რადგან ისინი დახარისხებული, 615 00:29:07,860 --> 00:29:10,900 როგორც კი ჩვენ გამოავლინოს ნომერი 16, ამიტომ ვიცი 616 00:29:10,900 --> 00:29:14,850 და მოდით ზუსტად that-- ჩვენ ამიტომ ვიცი, რომ 50, დღევანდელ შემთხვევაში, 617 00:29:14,850 --> 00:29:16,080 აქვს, მარჯვნივ. 618 00:29:16,080 --> 00:29:18,735 ამიტომ ისევე როგორც კვირაში ნულოვანი როდესაც ჩვენ დაწყვეტილია ტელეფონი წიგნი ნახევარი 619 00:29:18,735 --> 00:29:21,490 და დაუშინეს ნახევარში პრობლემა მოშორებით, იგივე იდეა აქ. 620 00:29:21,490 --> 00:29:23,680 ჩვენ შეგვიძლია სახიფათოა ამ ტაიმში პრობლემა დაშორებით. 621 00:29:23,680 --> 00:29:25,730 და, ალბათ, ის, რაც თქვენ შეიძლება გავაკეთოთ algorithmically, 622 00:29:25,730 --> 00:29:28,710 ერთხელ თქვენ იცით, რომ 50 უნდა იყოს უფლება, თუ ის სადმე, 623 00:29:28,710 --> 00:29:31,390 ცდილობენ იქ, შუა დარჩენილი კარი. 624 00:29:31,390 --> 00:29:33,450 რა თქმა უნდა, 50 უმაღლესი მეტი 42, ასე რომ შეგიძლიათ 625 00:29:33,450 --> 00:29:36,060 იმისათვის, რომ ეს დარჩენილი კვარტალში პრობლემა დაშორებით, 626 00:29:36,060 --> 00:29:38,510 და ბოლოს, იდენტიფიცირება რაღაც 50. 627 00:29:38,510 --> 00:29:41,050 მაგრამ, ისევე, როგორც სატელეფონო წიგნი, ამ ნომრებზე 628 00:29:41,050 --> 00:29:44,560 გადაეცათ us უკვე დახარისხებული მიზნით, რომელიც ტოვებს ჩვენთვის 629 00:29:44,560 --> 00:29:47,450 კითხვაზე, როგორ გინდა კიდევ რამ შევიდა დახარისხებული მიზნით? 630 00:29:47,450 --> 00:29:49,640 და, სიმართლე გითხრათ, რა ღირებულება? 631 00:29:49,640 --> 00:29:51,390 ეს არის ერთ ერთი რამ უნდა იყოს გადასცა სატელეფონო წიგნი 632 00:29:51,390 --> 00:29:54,810 და შემდეგ შთაბეჭდილების თქვენს მეგობრებს მოძიებაში ტელეფონის ნომერი ნამდვილად სწრაფად, არა? 633 00:29:54,810 --> 00:29:58,520 Tearing 32 გვერდებზე იმისათვის, რომ იპოვოს ადამიანს 4 მილიარდი გვერდები, 634 00:29:58,520 --> 00:30:00,470 ჩვენ ვთქვით, იყო ერთი უკიდურესი მაგალითი. 635 00:30:00,470 --> 00:30:03,320 მაგრამ რამდენ დროს დასჭირდა Verizon დასალაგებლად რომ სატელეფონო წიგნი? 636 00:30:03,320 --> 00:30:06,170 რამდენი დრო დასჭირდა us დასალაგებლად ამ შვიდი ნომრები? 637 00:30:06,170 --> 00:30:10,110 ეს არის საკითხი, რომელიც ჩვენ დღემდე სრულიად იგნორირებულია. 638 00:30:10,110 --> 00:30:12,330 >> ასე რომ, მოდით ამ კითხვაზე პასუხის გაცემა ახლა. 639 00:30:12,330 --> 00:30:15,920 და ჩვენ ყველა იმ ფილმების ახლა, მაგრამ ჩვენ გვაქვს გარკვეული სტრესი ბურთები. 640 00:30:15,920 --> 00:30:19,480 თუ, ვთქვათ, რვა მოხალისეები არ იბადება შემოგვიერთდება აქ? 641 00:30:19,480 --> 00:30:24,100 მოდით წავიდეთ წინ და ამის გაკეთება, რა ოთხ თქვენ, სამი აქ? 642 00:30:24,100 --> 00:30:25,290 კიდევ რამდენიმე ახალი სახეები. 643 00:30:25,290 --> 00:30:27,220 და ოთხი იქ? 644 00:30:27,220 --> 00:30:30,760 და ახლა მოდით არ კომპენსაცია აქ და რვა მეტი აქ ბოლომდე. 645 00:30:30,760 --> 00:30:32,060 მოდის up. 646 00:30:32,060 --> 00:30:32,560 ყველა უფლება. 647 00:30:32,560 --> 00:30:37,480 რა გვაქვს აქ თითოეული თქვენგანი ნომერი. 648 00:30:37,480 --> 00:30:40,055 თუ გსურთ წასვლა წინ, მიიღოს ამ ნომერზე. 649 00:30:40,055 --> 00:30:40,763 რა გქვია? 650 00:30:40,763 --> 00:30:41,950 >> ARTIE: Artie. 651 00:30:41,950 --> 00:30:43,100 >> დავით Malan: Artie, okay. 652 00:30:43,100 --> 00:30:44,297 თქვენ ნომერი 1. 653 00:30:44,297 --> 00:30:45,310 >> ამინ: ამინ. 654 00:30:45,310 --> 00:30:46,060 დავით Malan: ამინ. 655 00:30:46,060 --> 00:30:46,820 დავით. 656 00:30:46,820 --> 00:30:47,530 თქვენ ნომერი 2. 657 00:30:47,530 --> 00:30:49,100 და წავიდეთ წინ, რადგან მე გადასცემს თქვენ ფურცლებზე, 658 00:30:49,100 --> 00:30:52,130 გამოდიან საკუთარი თავი თვალწინ მუსიკა დგას იმავე მიზნით, როგორც იქ. 659 00:30:52,130 --> 00:30:52,660 >> ANDY: Hi, Andy. 660 00:30:52,660 --> 00:30:53,970 >> დავით Malan: Andy, ეს არის ლამაზი, რომ ნახოთ თქვენ. 661 00:30:53,970 --> 00:30:54,520 ნომერი 3. 662 00:30:54,520 --> 00:30:55,310 >> JACOB: Jacob. 663 00:30:55,310 --> 00:30:56,760 >> დავით Malan: იაკობი, ნომერი 4. 664 00:30:56,760 --> 00:30:57,549 სტუმარს ბორტზე. 665 00:30:57,549 --> 00:30:58,090 GRANT: Grant. 666 00:30:58,090 --> 00:30:58,881 დავით Malan: Grant. 667 00:30:58,881 --> 00:31:00,348 ნომერი 5. 668 00:31:00,348 --> 00:31:01,200 >> Alanna: Alanna. 669 00:31:01,200 --> 00:31:02,766 >> დავით Malan: Alanna, ნომერი 6. 670 00:31:02,766 --> 00:31:03,589 >> FRANCES: ფრენსის. 671 00:31:03,589 --> 00:31:04,880 დავით Malan: საფრანგეთი, ნომერი 7. 672 00:31:04,880 --> 00:31:05,200 და? 673 00:31:05,200 --> 00:31:05,830 >> RACHEL: Rachel. 674 00:31:05,830 --> 00:31:06,815 >> დავით Malan: Rachel, ნომერი 8. 675 00:31:06,815 --> 00:31:07,100 ყველა უფლება. 676 00:31:07,100 --> 00:31:08,766 წავიდეთ წინ და მიიღოს თავს ამ მიზნით. 677 00:31:08,766 --> 00:31:11,440 ნება მიბოძეთ ერთი დარჩენილი მუსიკა სტენდი ადგილი. 678 00:31:11,440 --> 00:31:13,670 სადაც თქვენ უნდა დავდგეთ? 679 00:31:13,670 --> 00:31:14,170 OK. 680 00:31:14,170 --> 00:31:18,710 წავიდეთ წინ და მხოლოდ თქვენს ნომრები , სადაც დამსწრე შეგიძლიათ ნახოთ მათ, 681 00:31:18,710 --> 00:31:20,340 მუსიკა დავდგეთ წინაშე გარე. 682 00:31:20,340 --> 00:31:27,240 და იმედია, ჩვენი პირველი საღი აზრის ქვითარი აქ 4, 2, 6. 683 00:31:27,240 --> 00:31:27,890 Oh-oh. 684 00:31:27,890 --> 00:31:29,070 დაველოდოთ წუთში. 685 00:31:29,070 --> 00:31:31,140 ჩვენ არ გვაქვს 8. 686 00:31:31,140 --> 00:31:35,180 მე უნდა გამოსახლება თქვენ მაგალითად რატომღაც. 687 00:31:35,180 --> 00:31:35,680 პოსტები 688 00:31:35,680 --> 00:31:36,940 არა, OK. 689 00:31:36,940 --> 00:31:37,890 ვნახოთ. 690 00:31:37,890 --> 00:31:38,880 ჩვენ შეგვიძლია ამის გაკეთება. 691 00:31:38,880 --> 00:31:39,440 დგას. 692 00:31:39,440 --> 00:31:43,970 693 00:31:43,970 --> 00:31:45,740 იქ ჩვენ წავიდეთ. 694 00:31:45,740 --> 00:31:46,800 სწორი. 695 00:31:46,800 --> 00:31:47,360 ყველა უფლება. 696 00:31:47,360 --> 00:31:50,260 ასე რომ, ახლა ჩვენ გვაქვს 8, 1, 3, 7, 5. 697 00:31:50,260 --> 00:31:50,760 OK. 698 00:31:50,760 --> 00:31:51,360 შესანიშნავი. 699 00:31:51,360 --> 00:31:54,400 >> ასე რომ, კითხვა ხელთ არის, რა ღირებულება, და მეშვეობით, რაც საშუალებას, 700 00:31:54,400 --> 00:31:58,580 ჩვენ რეალურად ახარისხებენ ნომრები აქ ასე რომ, ჩვენ შეგვიძლია სახის მუშაობა უკან, 701 00:31:58,580 --> 00:32:02,759 საბოლოო ჯამში, და decide-- ეს ნამდვილად შთამბეჭდავი, ნამდვილად ეფექტური, 702 00:32:02,759 --> 00:32:04,550 რომ მე შემიძლია გაყოფა და დაპყრობა სატელეფონო წიგნი? 703 00:32:04,550 --> 00:32:06,716 ეს ნამდვილად ეფექტური, რომ შემიძლია გათიშე და დაიპყროთ 704 00:32:06,716 --> 00:32:08,600 ის ციფრული ცალი ქაღალდის დაფაზე, 705 00:32:08,600 --> 00:32:14,500 თუ შესაძლოა, ის აპირებს ეღირება us ბედი დრო და ენერგია, ან CPU ციკლები 706 00:32:14,500 --> 00:32:17,340 რეალურად მიიღონ ჩვენი მონაცემებით გარკვეული დახარისხებული მიზნით? 707 00:32:17,340 --> 00:32:18,930 ასე რომ, მოდით ამ შეკითხვას. 708 00:32:18,930 --> 00:32:22,077 >> ასე რომ, პირველ რიგში, ამ ნომრებზე საკმაოდ ბევრი შემთხვევითი მიზნით, 709 00:32:22,077 --> 00:32:24,160 და მე ვაპირებ შესთავაზოს ერთი ალგორითმი ან პროცესის 710 00:32:24,160 --> 00:32:25,970 ჩვენ შეგვიძლია დასალაგებლად ეგ. 711 00:32:25,970 --> 00:32:28,100 მე ვაპირებ მივუდგეთ ეს საკმაოდ გულუბრყვილოდ. 712 00:32:28,100 --> 00:32:30,730 და მე ვაპირებ აღიაროს ის, რომ ასეთი ბევრი ჩემთვის 713 00:32:30,730 --> 00:32:32,890 გადაიტანოთ ჩემი აზრით გარშემო მთელი მონაცემთა მითითებული ერთდროულად. 714 00:32:32,890 --> 00:32:33,640 მაგრამ იცით რა? 715 00:32:33,640 --> 00:32:37,450 მე ვაპირებ, რომ გარკვეული ძალიან მარტივია ზღვრული აფიქსირებს. 716 00:32:37,450 --> 00:32:41,152 4 და 2 მწყობრიდან, თუ მიზანია წასვლა 1 მდე 8. 717 00:32:41,152 --> 00:32:41,860 ასე რომ თქვენ იცით, რა? 718 00:32:41,860 --> 00:32:43,776 მე ვაპირებ, რომ თქვენ ბიჭები სვოპ, თუ თქვენ ჩართოთ 719 00:32:43,776 --> 00:32:46,380 ფიზიკური პოზიციები და ცალი ქაღალდის. 720 00:32:46,380 --> 00:32:47,894 ახლა 4 და 6, ამ მიზნით. 721 00:32:47,894 --> 00:32:49,060 მე ვაპირებ დატოვოს ის იყოს. 722 00:32:49,060 --> 00:32:50,227 6 და 8, იმ მიზნით. 723 00:32:50,227 --> 00:32:51,185 აპირებს დატოვოთ უპასუხოდ. 724 00:32:51,185 --> 00:32:52,170 8 and1, მწყობრიდან. 725 00:32:52,170 --> 00:32:54,790 თუ ორი არ იბადება შევცვალე. 726 00:32:54,790 --> 00:32:57,300 ახლა 8 და 3,, თუ თქვენ ბიჭები შეიძლება მოკლე. 727 00:32:57,300 --> 00:32:59,320 8 და 7, თუ თქვენ ბიჭები შეიძლება მოკლე. 728 00:32:59,320 --> 00:33:01,790 და 8, 5,, თუ თქვენ ბიჭები შეიძლება მოკლე. 729 00:33:01,790 --> 00:33:03,980 >> ახლა, მე გაკეთდეს? 730 00:33:03,980 --> 00:33:05,200 არა, რა თქმა უნდა. 731 00:33:05,200 --> 00:33:07,880 მაგრამ მე მივიღე ვითარების უკეთ, არა? 732 00:33:07,880 --> 00:33:09,430 რა იყო თქვენი სახელით კიდევ ერთხელ, ნომერი 8? 733 00:33:09,430 --> 00:33:10,055 >> RACHEL: Rachel. 734 00:33:10,055 --> 00:33:12,850 დავით Malan: ასე რეიჩელ აქვს ეფექტურად bubbled up საკმაოდ შორს, 735 00:33:12,850 --> 00:33:15,660 ყველა გზა ბოლომდე ჩემი მასივი ნომრები აქ. 736 00:33:15,660 --> 00:33:17,310 და ისე, რომ პრობლემა არის სახის მოგვარდება. 737 00:33:17,310 --> 00:33:21,670 ახლა, აშკარად, 2 მაინც უნდა გადავიდეს ცოტა, 4 და 6 და 1. 738 00:33:21,670 --> 00:33:24,420 მაგრამ, როგორც ჩანს, მიღებული პატარა დაახლოება გადაწყვეტა. 739 00:33:24,420 --> 00:33:26,790 ასე რომ, მოდით გამოიყენოს ეს იგივე გულუბრყვილო ევრისტიკული ერთხელ. 740 00:33:26,790 --> 00:33:27,690 2 და 4, OK. 741 00:33:27,690 --> 00:33:28,810 4 და 6, OK. 742 00:33:28,810 --> 00:33:29,930 6 და 1 მმ მმ. 743 00:33:29,930 --> 00:33:32,230 მოდით swap. 744 00:33:32,230 --> 00:33:33,200 6 და 3 მმ მმ. 745 00:33:33,200 --> 00:33:34,420 მოდით swap. 746 00:33:34,420 --> 00:33:35,580 6 და 7 OK. 747 00:33:35,580 --> 00:33:36,590 7 და 5, nope. 748 00:33:36,590 --> 00:33:37,790 მოდით swap. 749 00:33:37,790 --> 00:33:38,470 და ახლა 7 და 8. 750 00:33:38,470 --> 00:33:39,862 და რა არის თქვენი სახელი კვლავ? 751 00:33:39,862 --> 00:33:40,570 FRANCES: ფრენსის. 752 00:33:40,570 --> 00:33:41,445 დავით Malan: Frances. 753 00:33:41,445 --> 00:33:44,230 ასე რომ, ახლა Frances არის კიდევ უკეთესი პოზიცია, რადგან ახლა, 7 და 8 754 00:33:44,230 --> 00:33:46,440 სწორად bubbled up დაბრუნება. 755 00:33:46,440 --> 00:33:47,510 ასე რომ 2 და 4, OK. 756 00:33:47,510 --> 00:33:48,720 4 და 1, მოდით swap. 757 00:33:48,720 --> 00:33:50,410 4 და 3, მოდით swap. 758 00:33:50,410 --> 00:33:51,550 4 და 6, თქვენ OK. 759 00:33:51,550 --> 00:33:53,340 6 და 5, მოდით swap. 760 00:33:53,340 --> 00:33:54,590 და ახლა ბიჭები არიან კარგი. 761 00:33:54,590 --> 00:33:55,780 ჩვენ თითქმის არ არსებობს. 762 00:33:55,780 --> 00:33:57,706 2 და 1, მწყობრიდან, ასე რომ სვოპ. 763 00:33:57,706 --> 00:33:59,080 და ახლა ნება მომეცით გავაკეთოთ საღი აზრის ქვითარი. 764 00:33:59,080 --> 00:34:03,080 2 და 3, 3 და 4, 4 და 5, 5 და 6, 6 და 7, 8. 765 00:34:03,080 --> 00:34:05,060 OK, ასე რომ ჩვენ გავაკეთეთ. 766 00:34:05,060 --> 00:34:09,310 >> მაგრამ რა ღირებულება არ მინდა ახარისხებენ, აქ? 767 00:34:09,310 --> 00:34:13,960 ისე, რამდენი ნაბიჯები საერთოდ მე პოტენციურად მიიღოს, როდესაც დახარისხება ეგ? 768 00:34:13,960 --> 00:34:15,710 ასევე, ჩვენ დავბრუნდებით ამ კითხვაზე. 769 00:34:15,710 --> 00:34:18,030 მაგრამ, სიმართლე გითხრათ, თუ თქვენ გაქვთ ცოტა შეწუხებული, რომ ის, 770 00:34:18,030 --> 00:34:22,270 სახის გამოვლენის, რომ ეს არ იყო შესაძლოა, ყველაზე ეფექტური ალგორითმი. 771 00:34:22,270 --> 00:34:25,230 და მართლაც, სიმართლე გითხრათ, მე ოფლიანობა მით უფრო, ფეხით უკან და მეოთხე. 772 00:34:25,230 --> 00:34:26,639 რომ არ გრძნობს, განსაკუთრებით ეფექტური. 773 00:34:26,639 --> 00:34:27,805 მოდით ცდილობენ რაღაც. 774 00:34:27,805 --> 00:34:31,870 თუ ბიჭები აღადგინოთ თავი ამ რვა ღირებულებებს. 775 00:34:31,870 --> 00:34:32,969 კარგ საქმეს. 776 00:34:32,969 --> 00:34:36,570 >> მოდით შევხედოთ ელექტრონულად, მხოლოდ ერთი წუთით ადრე, ჩვენ ვცდილობთ, რაღაც, 777 00:34:36,570 --> 00:34:38,179 რა მოხდა. 778 00:34:38,179 --> 00:34:41,330 აქ, თქვენ შესახებ, რომ ნახოთ ვიზუალიზაცია ამ რვა ადამიანი 779 00:34:41,330 --> 00:34:44,719 რომლის დროსაც ლურჯი და წითელი ბარები წარმოადგენს ნომრები. 780 00:34:44,719 --> 00:34:46,670 გრძელია ბარი, მით უფრო დიდია რიცხვი. 781 00:34:46,670 --> 00:34:48,510 მოკლე ბარი, პატარა ნომერი. 782 00:34:48,510 --> 00:34:51,560 და რას ვაპირებთ, რომ არის შემთხვევითი მიზნით, რვა მათგანი. 783 00:34:51,560 --> 00:34:55,830 თქვენ ვაპირებთ, ამ ბარები მიღების დალაგებულია, რომ იმავე ალგორითმი, 784 00:34:55,830 --> 00:34:59,890 ან მითითებული ინსტრუქციები, რომელიც ჩვენ მოვუწოდებთ ამიერიდან bubble sort. 785 00:34:59,890 --> 00:35:04,000 ასე, ყოველ მეორე ან ასე, ორი ბარები განათების წითელი, 786 00:35:04,000 --> 00:35:05,590 მიმდინარეობს შედარებით კომპიუტერი. 787 00:35:05,590 --> 00:35:08,630 და მაშინ, თუ დიდი ბარი და პატარა ბარი მწყობრიდან, 788 00:35:08,630 --> 00:35:11,220 ისინი მიმდინარეობს გაცვალეს ჩემთვის. 789 00:35:11,220 --> 00:35:15,120 >> ახლა ეს არის ძალიან tedious უყურებს ამ, რა თქმა უნდა, 790 00:35:15,120 --> 00:35:18,630 ძალიან დიდი ხნის განმავლობაში, მაგრამ შეამჩნევს takeaway-- დიდი ბარები გადასვლის უფლება, 791 00:35:18,630 --> 00:35:20,460 პატარა ბარები გადასვლის მარცხენა. 792 00:35:20,460 --> 00:35:23,380 მოდით შეწყვეტთ ამ პროცესში და დაჩქარდეს ეს 793 00:35:23,380 --> 00:35:27,330 უნდა იყოს ბევრად უფრო სწრაფად, ასე რომ შეგიძლიათ მიიღეთ მაღალი დონის გრძნობა რა, 794 00:35:27,330 --> 00:35:29,970 მართლაც, bubble sort აკეთებს. 795 00:35:29,970 --> 00:35:33,150 რა თქმა უნდა, ეს bubbling მდე მარჯვენა მხარეს სიაში, 796 00:35:33,150 --> 00:35:35,260 ან მასივი, დიდი ბარი. 797 00:35:35,260 --> 00:35:40,020 და პირიქით, პატარა ბარები bubbling მათი გზა ქვემოთ მარცხენა, 798 00:35:40,020 --> 00:35:42,950 თუმცა უფრო დიდი ტემპით ვიდრე ჩვენ ადრე გააკეთა. 799 00:35:42,950 --> 00:35:45,850 ასე რომ, რთული ვხედავ ადამიანებს, მაგრამ ვიზუალურად ეს მართლაც რა 800 00:35:45,850 --> 00:35:46,540 ხდებოდა. 801 00:35:46,540 --> 00:35:49,110 >> მაგრამ მოდით ცდილობენ ფუნდამენტურად განსხვავებული მიდგომა არის. 802 00:35:49,110 --> 00:35:52,387 შევეცადოთ სხვადასხვა ალგორითმი, რომლითაც ჩვენ თქვენ 803 00:35:52,387 --> 00:35:59,640 ბიჭები დაიწყოს ეს ორიგინალური პოზიციებზე, რომელიც ამ მიზნით აქ. 804 00:35:59,640 --> 00:36:00,827 და მოდით წავიდეთ წინ არის. 805 00:36:00,827 --> 00:36:02,910 და მე ვაპირებ, რომ რამე თუნდაც მარტივი, არა? 806 00:36:02,910 --> 00:36:06,710 ამ დროის განმავლობაში შევცვალე pairwise ერთხელ და ისევ, თითქმის პატარა ჭკვიანი. 807 00:36:06,710 --> 00:36:10,460 მოდით კიდევ უფრო გულუბრყვილოდ, სადაც, თუ მინდა დასალაგებლად ამ FOLKS, 808 00:36:10,460 --> 00:36:12,560 ნება მომეცით უბრალოდ შეინახოს ეძებს პატარა ელემენტს. 809 00:36:12,560 --> 00:36:14,570 ასე რომ, ახლა, არის 4 ყველაზე პატარა ნომერი მე ვნახე. 810 00:36:14,570 --> 00:36:15,695 მე ვაპირებ გვახსოვდეს, რომ. 811 00:36:15,695 --> 00:36:17,750 არა, 2 არის უკეთესი, და გვახსოვდეს, რომ. 812 00:36:17,750 --> 00:36:20,730 1 კი პატარა. 813 00:36:20,730 --> 00:36:21,970 3, 7, 5. 814 00:36:21,970 --> 00:36:22,470 OK. 815 00:36:22,470 --> 00:36:23,750 One-- რა არის თქვენი სახელი კვლავ? 816 00:36:23,750 --> 00:36:24,400 >> ARTIE: Artie. 817 00:36:24,400 --> 00:36:24,610 >> დავით Malan: Artie. 818 00:36:24,610 --> 00:36:25,460 ასე რომ, Artie, წავიდეთ წინ. 819 00:36:25,460 --> 00:36:27,043 მე ვაპირებ გაიყვანოს თქვენ გარეთ ხაზი. 820 00:36:27,043 --> 00:36:28,400 თუ თქვენ ვერ დავბრუნდებით აქ. 821 00:36:28,400 --> 00:36:30,790 და მე უნდა მიიღოს ოთახი მისთვის. 822 00:36:30,790 --> 00:36:32,040 ჩვენ გვაქვს გადაწყვეტილება წერტილი აქ. 823 00:36:32,040 --> 00:36:36,000 როგორ შეგვიძლია ოთახი Artie აქ დასაწყისში, სადაც ნომერი 1 ამოცნობა? 824 00:36:36,000 --> 00:36:36,770 >> აუდიტორია: Shift. 825 00:36:36,770 --> 00:36:38,950 >> დავით Malan: OK, ჩვენ შეგვეძლო გადაეტანა ყველას. 826 00:36:38,950 --> 00:36:40,860 მაგრამ შესთავაზოს ოპტიმიზაცია. 827 00:36:40,860 --> 00:36:43,410 რომ გრძნობს, ცოტა შემაშფოთებელი ჩემთვის ვთხოვო ოთხი ადამიანი 828 00:36:43,410 --> 00:36:44,620 გადატანა ყველა გზა down. 829 00:36:44,620 --> 00:36:45,520 რა შეიძლება გავაკეთო? 830 00:36:45,520 --> 00:36:46,360 >> აუდიტორია: Switch მათ. 831 00:36:46,360 --> 00:36:46,850 >> დავით Malan: Switch მათ. 832 00:36:46,850 --> 00:36:47,900 და რა არის თქვენი სახელი კვლავ? 833 00:36:47,900 --> 00:36:48,441 >> JACOB: Jacob. 834 00:36:48,441 --> 00:36:50,330 დავით Malan: იაკობი, გადაადგილება. 835 00:36:50,330 --> 00:36:54,440 ბევრად უფრო ეფექტური მხოლოდ აქვს Jacob swap ადგილას Artie, 836 00:36:54,440 --> 00:36:56,710 როგორც ეწინააღმდეგებოდა აიძულა ოთხივე ეგ, 837 00:36:56,710 --> 00:36:58,734 დიდი მადლობა, რომ მათი სწორი პოზიცია. 838 00:36:58,734 --> 00:37:01,150 რა არის ლამაზი შესახებ Artie ახლა, ის თავის სწორი პოზიცია. 839 00:37:01,150 --> 00:37:02,060 მოდით ეს კიდევ ერთხელ გავაკეთოთ. 840 00:37:02,060 --> 00:37:03,730 2, რომ მცირე რაოდენობის მე ვნახე. 841 00:37:03,730 --> 00:37:05,690 3, 7, 5. 842 00:37:05,690 --> 00:37:06,190 OK. 843 00:37:06,190 --> 00:37:07,467 2 ნამდვილად პატარა. 844 00:37:07,467 --> 00:37:08,550 არ აქვს რაიმე სამუშაოს. 845 00:37:08,550 --> 00:37:09,320 მოდით ეს კიდევ ერთხელ. 846 00:37:09,320 --> 00:37:10,070 6. 847 00:37:10,070 --> 00:37:10,640 პატარა? 848 00:37:10,640 --> 00:37:11,140 8. 849 00:37:11,140 --> 00:37:11,590 Nope. 850 00:37:11,590 --> 00:37:11,720 4? 851 00:37:11,720 --> 00:37:12,220 Ooh. 852 00:37:12,220 --> 00:37:13,420 მიადევნე თვალი მახსოვს 4. 853 00:37:13,420 --> 00:37:13,950 3. 854 00:37:13,950 --> 00:37:15,110 მიადევნე თვალი მახსოვს 3. 855 00:37:15,110 --> 00:37:16,080 7, 5. 856 00:37:16,080 --> 00:37:18,490 ყველაზე პატარა ნომერი მე ჩანს ეს უღელტეხილი 3. 857 00:37:18,490 --> 00:37:20,340 თუ გსურთ გამოდი. 858 00:37:20,340 --> 00:37:21,986 სადაც ჩვენ უნდა დააყენოს თქვენ? 859 00:37:21,986 --> 00:37:22,860 და რა გქვია? 860 00:37:22,860 --> 00:37:23,530 >> Alanna: Alanna. 861 00:37:23,530 --> 00:37:25,780 >> დავით Malan: Alanna, ჩვენ აპირებთ უნდა გამოსახლება თქვენ. 862 00:37:25,780 --> 00:37:28,670 მაგრამ ეს არის უფრო ეფექტური, მხოლოდ სვოპ ორი ადამიანი, 863 00:37:28,670 --> 00:37:31,850 ვიდრე რამდენიმე ადამიანი რეალურად იტყვის მეტი. 864 00:37:31,850 --> 00:37:32,850 ახლა მოდით ეს კიდევ ერთხელ გავაკეთოთ. 865 00:37:32,850 --> 00:37:34,980 მე ვაპირებ აირჩიოთ 4, ისე გამოდი. 866 00:37:34,980 --> 00:37:36,540 და ვინ უნდა გადავიდეს? 867 00:37:36,540 --> 00:37:37,750 ნომერი 8, რა თქმა უნდა. 868 00:37:37,750 --> 00:37:40,260 თუ მე ახლა 5 ნომერი, გამოდი. 869 00:37:40,260 --> 00:37:42,104 ნომერი 8 აპირებს მიიღოს გამოასახლეს ერთხელ. 870 00:37:42,104 --> 00:37:43,770 მე ახლა აპირებს იპოვოს ნომერი 6 ადგილი. 871 00:37:43,770 --> 00:37:44,410 7 ადგილი. 872 00:37:44,410 --> 00:37:45,080 8 ადგილი. 873 00:37:45,080 --> 00:37:48,590 >> რაც ჩვენ გავაკეთეთ ახლა არის რაღაც მოუწოდა შერჩევის დალაგების, 874 00:37:48,590 --> 00:37:52,560 და თუ ჩვენ ვიზუალიზაციისთვის, ეს არის აპირებს ვგრძნობ ცოტა განსხვავებული. 875 00:37:52,560 --> 00:37:56,800 მოდით წავიდეთ წინ და ამ მენიუ აქ, ამ visualization-- 876 00:37:56,800 --> 00:38:02,920 მოდით შეცვალოს ეს, რომელთა მიზანია მოდის, Firefox. 877 00:38:02,920 --> 00:38:07,610 მოდით შეცვალოს ეს შერჩევის ჯიშია. 878 00:38:07,610 --> 00:38:11,830 და მოდით დაჩქარდეს, როგორც ადრე, და დაიწყოს ვიზუალიზაცია არის. 879 00:38:11,830 --> 00:38:13,990 და ეს ალგორითმი აქვს სხვადასხვა ფიქრობს იგი. 880 00:38:13,990 --> 00:38:16,480 თითოეულ iteration, სიმართლე გითხრათ, ეს კიდევ უფრო მარტივია. 881 00:38:16,480 --> 00:38:18,385 მე უბრალოდ შერჩევის პატარა ელემენტს. 882 00:38:18,385 --> 00:38:21,510 ახლა, სიმართლე გითხრათ, მე მივიღე ცოტა გაუმართლა, რომ დროს, რომ ეს დახარისხებული სუპერ სწრაფი. 883 00:38:21,510 --> 00:38:22,660 ელემენტები იყო შემთხვევითი. 884 00:38:22,660 --> 00:38:25,520 ეს არ არის, როგორც ჩვენ საბოლოოდ ვხედავ, ფუნდამენტურად სწრაფად. 885 00:38:25,520 --> 00:38:29,400 მაგრამ ვნახოთ, მესამე და საბოლოო მივუდგეთ აქ, რა ხდება. 886 00:38:29,400 --> 00:38:36,230 მოდით წავიდეთ წინ და აღადგინოთ თქვენ ბიჭები ერთი საბოლოო დრო უნდა იყოს ამ მიზნით აქ. 887 00:38:36,230 --> 00:38:38,450 >> და ახლა, მე ვაპირებ ცოტა უფრო ჭკვიანი, 888 00:38:38,450 --> 00:38:40,220 უბრალოდ გარშემო ჩვენი ალგორითმები. 889 00:38:40,220 --> 00:38:41,230 მე ვაპირებ ამის გაკეთება. 890 00:38:41,230 --> 00:38:43,140 მე ვაპირებ წასვლა არ უკან და მეოთხე იმდენად. 891 00:38:43,140 --> 00:38:44,900 სიმართლე გითხრათ, მე ვარ დაღლილი ყველა ამ traversing. 892 00:38:44,900 --> 00:38:47,691 მე უბრალოდ აპირებს მიიღოს ის, რაც მე ვარ მოცემულია დასაწყისში სიაში, 893 00:38:47,691 --> 00:38:49,460 და მე ვაპირებ დასალაგებლად რომ მაშინ და იქ. 894 00:38:49,460 --> 00:38:50,140 ასე რომ აქ ვართ. 895 00:38:50,140 --> 00:38:51,030 ნომერი 4. 896 00:38:51,030 --> 00:38:53,680 მე ვაპირებ ჩადეთ ნომერი 4 შევიდა დახარისხებული სია. 897 00:38:53,680 --> 00:38:54,180 კეთდება. 898 00:38:54,180 --> 00:38:58,300 I აცხადებენ, და მხოლოდ იმისათვის, რომ ეს კიდევ უფრო ნათელია, ეს ნაწილი ჩემი სია დალაგებულია. 899 00:38:58,300 --> 00:39:02,610 ეს სახის სულელური პრეტენზია, მაგრამ ნამდვილად 4 დალაგებულია სიაში ზომა ერთი. 900 00:39:02,610 --> 00:39:04,210 ახლა, მე აპირებს ნომერი 2. 901 00:39:04,210 --> 00:39:07,670 ნომერი 2, მე ახლა აპირებს ჩადეთ ადგილას. 902 00:39:07,670 --> 00:39:08,680 ასე რომ სად 2 ეკუთვნის? 903 00:39:08,680 --> 00:39:09,824 ცხადია, მეტი აქ. 904 00:39:09,824 --> 00:39:11,490 ასე რომ წავიდეთ წინ და გადავა უკან, თუ ეს შესაძლებელი იქნებოდა. 905 00:39:11,490 --> 00:39:14,406 და რატომ არ ბიჭებს უბრალოდ მიიღოს თქვენი მუსიკა დგას ამ დროს. 906 00:39:14,406 --> 00:39:17,020 და მოდით იძულებით ჩადეთ თქვენ შევიდა დასაწყისში სიაში. 907 00:39:17,020 --> 00:39:17,936 ასე რომ ცოტა უფრო მეტი მუშაობა. 908 00:39:17,936 --> 00:39:20,890 მე უნდა გადავიდეს Jacob გარშემო, და რა გქვია? 909 00:39:20,890 --> 00:39:21,420 >> ამინ: ამინ. 910 00:39:21,420 --> 00:39:22,270 >> დავით Malan: ამინ. 911 00:39:22,270 --> 00:39:24,350 მაგრამ მაინც მე არ წავიდეთ უკან და მეოთხე. 912 00:39:24,350 --> 00:39:25,739 მე უბრალოდ აღების რამ როგორც მე. 913 00:39:25,739 --> 00:39:27,530 მე უბრალოდ ჩასმა მათ სწორი ადგილი. 914 00:39:27,530 --> 00:39:29,220 6, ეს არის რეალურად საკმაოდ მარტივია. 915 00:39:29,220 --> 00:39:31,510 მოდით ჩადეთ თქვენ იქ, თუ უბრალოდ სურდა გადაადგილება ოდნავ. 916 00:39:31,510 --> 00:39:32,870 ნომერი 8, ასევე საკმაოდ მარტივია. 917 00:39:32,870 --> 00:39:33,741 აი აქ. 918 00:39:33,741 --> 00:39:34,240 რა იგი. 919 00:39:34,240 --> 00:39:37,590 ნომერი 1, ჩვენ შეგვიძლია არა მხოლოდ სვოპ Amin აქ, 920 00:39:37,590 --> 00:39:39,340 იმიტომ, რომ ის აპირებს არეულობას up მიზნით. 921 00:39:39,340 --> 00:39:40,660 ამიტომ, ჩვენ უნდა ვიყოთ უფრო ჭკვიანი. 922 00:39:40,660 --> 00:39:42,770 ასე რომ, Artie, თუ შეიძლება უკან up მომენტში. 923 00:39:42,770 --> 00:39:46,550 მოდით წავიდეთ წინ და გადაიტანოს ახლა, განსხვავებით ჩვენი წინა ალგორითმები, 924 00:39:46,550 --> 00:39:50,910 იმისათვის, რომ ოთახი Artie სწორედ აქ დასაწყისში. 925 00:39:50,910 --> 00:39:54,690 ასე რომ, დღის ბოლომდე, მე სახის აკეთებს იმას, რაც მინდოდა, რათა თავიდან ავიცილოთ ადრე. 926 00:39:54,690 --> 00:39:57,770 და ჩემი ალგორითმი არის ერთგვარი საქართველოს შეცვალა, ინტელექტუალურად 927 00:39:57,770 --> 00:39:59,070 საწყისი რაც თავდაპირველად იყო. 928 00:39:59,070 --> 00:40:01,240 მე უბრალოდ აკეთებს გადასვლის სხვადასხვა წერტილი. 929 00:40:01,240 --> 00:40:02,291 ახლა მე 3. 930 00:40:02,291 --> 00:40:02,790 ოჰ, რა. 931 00:40:02,790 --> 00:40:04,039 ჩვენ ყველაფერი უნდა გავაკეთოთ უფრო მეტი მუშაობა კვლავ. 932 00:40:04,039 --> 00:40:05,060 ასე რომ, მოდით დააყენებს თქვენ გარეთ. 933 00:40:05,060 --> 00:40:09,360 მოდით გადაადგილება 8, 6, 4 oh oh-- და 3 აპირებს წავიდეს უფლება არსებობს. 934 00:40:09,360 --> 00:40:11,490 ასე რომ მინიმუმ მცირე დანაზოგების ამ დროს. 935 00:40:11,490 --> 00:40:13,100 7, არ არის ძალიან ბევრი სამუშაოა ჩასატარებელი. 936 00:40:13,100 --> 00:40:15,370 ასე რომ, თუ გსურთ პოპ უკან, მოდით ჩადეთ თქვენ. 937 00:40:15,370 --> 00:40:17,440 და ბოლოს, 5, თუ თქვენ გსურთ პოპ უკან, 938 00:40:17,440 --> 00:40:22,610 უნდა გადაიტანოს თქვენ, თქვენ, სანამ მეხუთე ადგილი. 939 00:40:22,610 --> 00:40:25,670 >> ასე რომ, ახლა, რომ ეს ერთი მაღალი დონის გრაფიკული, 940 00:40:25,670 --> 00:40:31,080 მოდით ეს ალგორითმი ვიზუალიზაცია ერთი დამატებითი დრო. 941 00:40:31,080 --> 00:40:33,580 ასე რომ, ეს უნდა მოვუწოდებთ Insertion ჯიშია. 942 00:40:33,580 --> 00:40:37,700 ჩვენ აწარმოებს მას, ისევე როგორც სწრაფი და დაიწყოს აქ. 943 00:40:37,700 --> 00:40:39,580 და ეს, ძალიან, აქვს სხვადასხვა შეგრძნებას. 944 00:40:39,580 --> 00:40:42,180 ეს ერთგვარი უკეთესობისაკენ და უკეთესი, მაგრამ ეს არასოდეს არ არის სრულყოფილი 945 00:40:42,180 --> 00:40:44,630 სანამ მე წასვლა და გლუვი ის ხარვეზი. 946 00:40:44,630 --> 00:40:47,860 რადგან, კიდევ ერთხელ, მე მხოლოდ აღების რა მე უტარდება მარცხნიდან მარჯვნივ. 947 00:40:47,860 --> 00:40:50,350 ასე რომ, მე არ მიიღოს ისე გაუმართლა რომ ყველაფერი იყო სრულყოფილი. 948 00:40:50,350 --> 00:40:54,190 სწორედ ამიტომ, ჩვენ გვქონდა ამ პატარა mispositions რომ ფიქსირებული დროთა განმავლობაში. 949 00:40:54,190 --> 00:40:58,890 >> ასე რომ, ყველა ამ ალგორითმები, როგორც ჩანს, აწარმოებს ოდნავ განსხვავებული ტემპით. 950 00:40:58,890 --> 00:41:02,030 დაკავშირებით, რომელიც იტყვით არის საუკეთესო და უსწრაფესი აქამდე? 951 00:41:02,030 --> 00:41:03,450 Bubble sort, პირველი? 952 00:41:03,450 --> 00:41:05,000 შერჩევის დალაგების, მეორე? 953 00:41:05,000 --> 00:41:08,450 Insertion დალაგების, მესამე? 954 00:41:08,450 --> 00:41:10,710 მე მესმის გარკვეული შერჩევის ჯიშები. 955 00:41:10,710 --> 00:41:13,280 სხვა აზრები? 956 00:41:13,280 --> 00:41:16,880 >> გამოდის, რომ ყველა ამ ალგორითმები 957 00:41:16,880 --> 00:41:22,400 ფუნდამენტურად ისევე, როგორც ეფექტური როგორც თითოეულ other-- ან, პირიქით, ისევე როგორც 958 00:41:22,400 --> 00:41:25,980 არაეფექტური და ერთმანეთს, იმიტომ, რომ ჩვენ ფუნდამენტურად 959 00:41:25,980 --> 00:41:28,120 უკეთესია, ვიდრე სამივე ეს ალგორითმები. 960 00:41:28,120 --> 00:41:29,990 და რომ ცოტა თეთრი ტყუილი, ძალიან. 961 00:41:29,990 --> 00:41:32,580 როდესაც ვამბობ, რომ, როგორც ეფექტური ან, როგორც არაეფექტური, 962 00:41:32,580 --> 00:41:35,040 ეს არის ის, როგორც მინიმუმ, სუპერ დიდი ღირებულებები n. 963 00:41:35,040 --> 00:41:38,450 როდესაც ჩვენ გვაქვს მხოლოდ რვა ადამიანი აქ, ან იქნებ 50 ან იმდენად ბარები ეკრანზე, 964 00:41:38,450 --> 00:41:41,645 თქვენ აბსოლუტურად შეამჩნევთ განსხვავებები მათ შორის სამი ალგორითმები. 965 00:41:41,645 --> 00:41:44,020 მაგრამ, როგორც N, იმ ადამიანების რიცხვი, ან რაოდენობის ნომრები, 966 00:41:44,020 --> 00:41:46,350 ან რაოდენობის ხალხი ტელეფონი წიგნი, ან რაოდენობის ვებ გვერდები 967 00:41:46,350 --> 00:41:48,230 in Google-ის მონაცემთა ბაზაში იღებს უფრო დიდი და უფრო დიდი, 968 00:41:48,230 --> 00:41:51,650 ჩვენ ვხედავთ, რომ სამივე ალგორითმები საკმაოდ ცუდი. 969 00:41:51,650 --> 00:41:54,060 და ჩვენ შეგვიძლია გავაკეთოთ ფუნდამენტურად უკეთესად რომ. 970 00:41:54,060 --> 00:41:56,830 >> მოდით შევხედოთ, საბოლოოდ, რა ეს ალგორითმები შეიძლება 971 00:41:56,830 --> 00:41:59,520 ჟღერს, როგორც იმ კონტექსტში რამდენიმე სხვა 972 00:41:59,520 --> 00:42:03,550 ასევე გზა ამ ვიზუალიზაციის 973 00:42:03,550 --> 00:42:06,860 რომ გააცნობს გვაძლევს პუნქტების ალგორითმები. 974 00:42:06,860 --> 00:42:10,330 მოდით წავიდეთ წინ და მივულოცო ჩვენი მონაწილეების აქ, ვინც 975 00:42:10,330 --> 00:42:11,690 დახარისხებული თავს ძალიან კარგად. 976 00:42:11,690 --> 00:42:15,124 თუ გსურთ მიიღოს მოსაყვანად საჩუქრად მიართვა. 977 00:42:15,124 --> 00:42:16,540 თქვენ შეგიძლიათ შეინახოთ თქვენი ისევე. 978 00:42:16,540 --> 00:42:19,460 979 00:42:19,460 --> 00:42:22,520 და რას დავინახავთ, უფრო სწორად, გვესმის, ახლა, 980 00:42:22,520 --> 00:42:25,710 ის არის, რომ ჩვენ ამით ხმები თითოეულ ამ ბარები 981 00:42:25,710 --> 00:42:28,660 და გაიგივებას პროგრამული უზრუნველყოფა, სხვადასხვა სიხშირის ხმა, 982 00:42:28,660 --> 00:42:33,970 შეგიძლიათ გადაიტანოთ თქვენი გონება უფრო audioly დაახლოებით რა თითოეული ეს ყველაფერი 983 00:42:33,970 --> 00:42:34,470 ჰგავს. 984 00:42:34,470 --> 00:42:39,325 პირველი, რაც Insertion დალაგების 985 00:42:39,325 --> 00:42:44,275 >> [ტონა] 986 00:42:44,275 --> 00:42:47,245 987 00:42:47,245 --> 00:42:49,720 >> ეს არის bubble sort. 988 00:42:49,720 --> 00:42:54,175 >> [ტონა] 989 00:42:54,175 --> 00:43:17,250 990 00:43:17,250 --> 00:43:18,222 >> შერჩევის ჯიშია. 991 00:43:18,222 --> 00:43:22,596 >> [ტონა] 992 00:43:22,596 --> 00:43:33,570 993 00:43:33,570 --> 00:43:35,150 >> რაღაც მოუწოდა შერწყმა ჯიშია. 994 00:43:35,150 --> 00:43:38,140 >> [ტონა] 995 00:43:38,140 --> 00:43:49,510 996 00:43:49,510 --> 00:43:51,278 >> Gnome ჯიშია. 997 00:43:51,278 --> 00:43:56,390 >> [ტონა] 998 00:43:56,390 --> 00:44:08,240 999 00:44:08,240 --> 00:44:09,430 >> სწორედ ეს CS50. 1000 00:44:09,430 --> 00:44:13,360 ვნახავთ თქვენ ოთხშაბათს. 1001 00:44:13,360 --> 00:44:16,671 >> მთხრობელი: და ახლა, "Deep აზრები "მიერ Daven Farnham. 1002 00:44:16,671 --> 00:44:19,910 1003 00:44:19,910 --> 00:44:21,590 რატომ არის იგი for loop? 1004 00:44:21,590 --> 00:44:23,200 რატომ არ უკეთესი? 1005 00:44:23,200 --> 00:44:25,970 მინდა მიიღოს ხუთი loop. 1006 00:44:25,970 --> 00:44:28,720 >> [სიცილი]