1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [ნაწილი 3] [Less კომფორტული] 2 00:00:03,000 --> 00:00:05,000 >> [Nate Hardison] [ჰარვარდის უნივერსიტეტის] 3 00:00:05,000 --> 00:00:08,000 >> [ეს არის CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:10,000 >> ყველა უფლება, მოდით დავიწყოთ. 5 00:00:10,000 --> 00:00:13,000 კეთილი იყოს კვირა 4 of CS50. 6 00:00:13,000 --> 00:00:19,000 თუ ბიჭები გახსენით ბრაუზერი და გახსენით pset 3, 7 00:00:19,000 --> 00:00:23,000 Scramble ერთად CS50, ჩვენ ვაპირებთ დავიწყოთ აპირებს 8 00:00:23,000 --> 00:00:26,000 მეშვეობით მონაკვეთზე კითხვები არსებობს. 9 00:00:26,000 --> 00:00:32,000 ისევე, როგორც გასულ კვირას, ჩვენ უნდა მომუშავე CS50 სივრცეები, 10 00:00:32,000 --> 00:00:35,000 თუ თქვენ ასევე გაიყვანოს, რომ ისევე, 11 00:00:35,000 --> 00:00:43,000 და თუ წავიდეთ წინ და ეწვევა ამ ბმულს, რომ მაქვს აქ ზედა. 12 00:00:43,000 --> 00:00:45,000 დროა დავიწყოთ. 13 00:00:45,000 --> 00:00:51,000 გვაქვს ჩვენი პატარა hi პროგრამა აქ. არაფერი გიჟები. 14 00:00:51,000 --> 00:00:55,000 ერთი პირველი რამ მინდა ვუყოთ შენ დღეს წავიდეთ მეტი რამდენიმე გადაწყვეტილებები 15 00:00:55,000 --> 00:00:58,000 რათა პრობლემა Set 1, სახის მაგალითად გადაწყვეტილებები, 16 00:00:58,000 --> 00:01:03,000 უბრალოდ, ასე რომ თქვენ შეგიძლიათ მიიღოთ შეგრძნებას, თუ რა სახის კოდი პერსონალის წერს, 17 00:01:03,000 --> 00:01:07,000 რა სახის კოდი სხვა სტუდენტებს წერის, 18 00:01:07,000 --> 00:01:10,000 და თქვენ შეხედეთ, რადგან ვიცი, რომ ეს უცნაური 19 00:01:10,000 --> 00:01:14,000 როდესაც თქვენ წარმოადგინოს გადაწყვეტა პრობლემა კომპლექტი და კიდევ კომენტარი 20 00:01:14,000 --> 00:01:18,000 საკუთარ ვერსია, მაგრამ ზოგჯერ ეს სასარგებლოა, თუ რამდენად სხვა ხალხი ეს, 21 00:01:18,000 --> 00:01:22,000 განსაკუთრებით ვინც კი კარგია ეძებს. 22 00:01:22,000 --> 00:01:27,000 უმეტესწილად, მე ნამდვილად შთაბეჭდილება მოახდინა გადაწყვეტილებები, რომ თქვენ ბიჭები წარმოებული. 23 00:01:27,000 --> 00:01:31,000 მე ჯერ არ დაწყებულა ეძებს თქვენი პრობლემა Set 2S, მაგრამ თუ ისინი არაფერი პირველი, 24 00:01:31,000 --> 00:01:34,000 ეს არაფერს ნიშნავს, მაგრამ კარგი რამ. 25 00:01:34,000 --> 00:01:40,000 >> თუ გადავხედავთ ჩემი ვერსიებიდან, დავიწყოთ ყველა გზა ქვემოთ ცვლილებათა 1, 26 00:01:40,000 --> 00:01:47,000 და ჩვენ ვაპირებთ მიიღოს სწრაფი შევხედოთ Mario გადაწყვეტა. 27 00:01:47,000 --> 00:01:54,000 თუ თქვენ დახევის ეს ყველაფერი, ამ პროგრამების, რომ ჩვენ ვაპირებთ წარმოადგინოს სწორია. 28 00:01:54,000 --> 00:01:56,000 არ იყო კორექტულობის საკითხებთან ერთად ეს პრობლემები, არამედ, 29 00:01:56,000 --> 00:01:59,000 ჩვენ გვინდა გაიგო ცოტა შესახებ სხვადასხვა დიზაინის საკითხებზე 30 00:01:59,000 --> 00:02:03,000 რომლებიც გამოიყენება აქ. 31 00:02:03,000 --> 00:02:08,000 ერთი რამ, რომ იყო საინტერესო შესახებ გადაწყვეტა 32 00:02:08,000 --> 00:02:11,000 არის ის, რომ ეს გამოიყენეს ახალი შენება მოუწოდა ფუნტი განსაზღვრა, 33 00:02:11,000 --> 00:02:15,000 ზოგჯერ ასევე შეეხო როგორც hash განსაზღვრავს. 34 00:02:15,000 --> 00:02:18,000 ნება მომეცით მიუახლოვდით აქ. 35 00:02:18,000 --> 00:02:24,000 # განსაზღვრავს გაძლევთ საშუალებას მისცემს სახელები ამ ნომრებზე თქვენს პროგრამას. 36 00:02:24,000 --> 00:02:28,000 ამ შემთხვევაში, მაქსიმალური სიმაღლე პირამიდის in Mario 37 00:02:28,000 --> 00:02:34,000 იყო 23 და ვიდრე აყენებს 23 ჩემი კოდი- 38 00:02:34,000 --> 00:02:37,000 ჩვენ ეხება, რომ როგორც მძიმე კოდირებას 23 - 39 00:02:37,000 --> 00:02:43,000 ნაცვლად ამ აძლევს სახელი MAX_HEIGHT რომ ნომერი, 40 00:02:43,000 --> 00:02:48,000 ასე რომ ქვევით აქ ჩემი do-ხოლო loop 41 00:02:48,000 --> 00:02:51,000 შეგიძლიათ რეალურად ეხება MAX_HEIGHT 42 00:02:51,000 --> 00:02:55,000 ნაცვლად გამოსული ხმების 23 შემოსული 43 00:02:55,000 --> 00:02:57,000 [სტუდენტური] რა არის უპირატესობა კეთების რომ? 44 00:02:57,000 --> 00:02:59,000 სწორედ დიდი კითხვაზე. 45 00:02:59,000 --> 00:03:03,000 ერთი არის readability. 46 00:03:03,000 --> 00:03:08,000 უპირატესობა გამოყენებისას # განსაზღვროს არის readability. 47 00:03:08,000 --> 00:03:11,000 როდესაც მე კითხულობს ამ კოდექსის მე ვხედავ რა ხდება. 48 00:03:11,000 --> 00:03:15,000 >> მე ვხედავ ამ მდგომარეობის აქ რომ ჩვენ ტესტირების 49 00:03:15,000 --> 00:03:19,000 ამისთვის სიმაღლე მყოფი <0, რომელიც ჩვენ შეგვიძლია ასევე განისაზღვრა 50 00:03:19,000 --> 00:03:22,000 უნდა იყოს მინიმალური სიმაღლე ან min სიმაღლე. 51 00:03:22,000 --> 00:03:25,000 სხვა უპირატესობა არის ის, რომ მე შეიძლება მაშინ წაიკითხა დანარჩენი ხაზის ვიხილოთ 52 00:03:25,000 --> 00:03:30,000 რომ ჩვენ ასევე შემოწმების დავრწმუნდეთ, რომ სიმაღლე არ არის მეტია მაქსიმალური სიმაღლე, 53 00:03:30,000 --> 00:03:35,000 იმიტომ, რომ ჩვენ ვაპირებთ გავაგრძელოთ ხოლო სიმაღლე მეტია მაქსიმალური სიმაღლე. 54 00:03:35,000 --> 00:03:40,000 სხვა უპირატესობა თუ მე დააშორებს ცოტა აქ- 55 00:03:40,000 --> 00:03:49,000 თუ აწარმოებს ამ პროგრამის და მე გაუშვით, თქმით, 23 სწორედ ახლა, 56 00:03:49,000 --> 00:03:52,000 იგი ამობეჭდოთ ყველა 23 რიგები ისევე რომ. 57 00:03:52,000 --> 00:03:54,000 მაგრამ აცხადებენ მინდოდა შეცვლის მაქსიმალური სიმაღლე, 58 00:03:54,000 --> 00:03:57,000 და ახლა მინდა ზღუდავს მაქსიმალური სიმაღლე პირამიდების 59 00:03:57,000 --> 00:04:06,000 უნდა იყოს მხოლოდ ამბობენ-man, რომ იყო ხმაურიანი. 60 00:04:06,000 --> 00:04:14,000 # Include , # define MAX_HEIGHT, 61 00:04:14,000 --> 00:04:18,000 და ვთქვათ გვინდოდა დააყენეთ ტოლია 10. 62 00:04:18,000 --> 00:04:22,000 ახლა ამ ეტაპზე, ყველა მე უნდა გაეკეთებინათ იყო შეცვლის ამ ერთ ადგილას. 63 00:04:22,000 --> 00:04:27,000 შემიძლია recompile კოდი, და ახლა თუ მე ვცდილობ და აკრიფოთ 12, 64 00:04:27,000 --> 00:04:30,000 მას შეეკითხება მომეცით კიდევ ერთხელ. 65 00:04:30,000 --> 00:04:33,000 ამ შემთხვევაში, ჩვენ მხოლოდ გამოყენებით MAX_HEIGHT ერთხელ. 66 00:04:33,000 --> 00:04:37,000 ეს არ არის, რომ დიდი hassle წავიდეთ 67 00:04:37,000 --> 00:04:40,000 და შეცვალოს იგი ხოლო loop თუ საჭიროა. 68 00:04:40,000 --> 00:04:44,000 მაგრამ სადაც თქვენ referencing იგივე ჯადოსნური ნომერი 69 00:04:44,000 --> 00:04:47,000 უსასრულოდ, ეს # განსაზღვრავს მექანიზმი მართლაც მოსახერხებელი 70 00:04:47,000 --> 00:04:52,000 იმიტომ, რომ თქვენ მხოლოდ შეცვლის ერთ დროს ზედა file-ის, როგორც წესი, სადაც თქვენ დააყენა მათ- 71 00:04:52,000 --> 00:04:57,000 და ენის percolates მეშვეობით დანარჩენი ფაილი. 72 00:04:57,000 --> 00:05:02,000 >> სხვა რამ მინდოდა აღვნიშნო ამ დავალების რომ მეგონა ჩანდა მართლაც კარგია, 73 00:05:02,000 --> 00:05:05,000 ერთი იყო ნეიმინგი of ცვლადები. 74 00:05:05,000 --> 00:05:14,000 ხედავთ აქ რომ გვაქვს მთელი ცვლადები ეწოდება გრაფაში და ე.წ. სიმაღლე. 75 00:05:14,000 --> 00:05:20,000 სივრცეები, ჰეშები, ის ეხმარება მიიღოს კოდი ცოტა მეტი იკითხება, 76 00:05:20,000 --> 00:05:25,000 ხდის უფრო გასაგები რა რეალურად მიმდინარეობს. 77 00:05:25,000 --> 00:05:31,000 ეს არის განსხვავებით გამოყენებით, ვთქვათ, შემთხვევითი ასოები 78 00:05:31,000 --> 00:05:35,000 ან უბრალოდ gobbledygook საერთოდ. 79 00:05:35,000 --> 00:05:39,000 საბოლოო რამ მე აღვნიშნო, რომ ამისთვის მარყუჟების, 80 00:05:39,000 --> 00:05:45,000 ხშირად ამ iterator ცვლადები, ეს მრიცხველები, რომ გამოიყენოთ თქვენი ამისთვის მარყუჟების, 81 00:05:45,000 --> 00:05:51,000 ეს სტანდარტი და ჩვეულებრივი უნდა დაიწყოს მათ არც მე და შემდეგ კ და მერე K 82 00:05:51,000 --> 00:05:54,000 და მიმდინარეობს იქიდან თუ გჭირდებათ მეტი ცვლადის, 83 00:05:54,000 --> 00:05:56,000 და ეს მხოლოდ კონვენციას. 84 00:05:56,000 --> 00:05:58,000 უამრავი კონვენციებს. 85 00:05:58,000 --> 00:06:00,000 ეს დამოკიდებულია პროგრამირების ენა თქვენ იყენებთ. 86 00:06:00,000 --> 00:06:04,000 მაგრამ C, ჩვენ, როგორც წესი, იწყება მე. 87 00:06:04,000 --> 00:06:08,000 ეს არ აქვს აზრი გამოიყენოს, ვთქვათ, ან ბ 88 00:06:08,000 --> 00:06:13,000 დამოკიდებულია სიტუაცია. 89 00:06:13,000 --> 00:06:15,000 ეს არის ის ამ ერთ. 90 00:06:15,000 --> 00:06:25,000 თუ თქვენ ახლა დახევის up ცვლილებათა 2, დაინახავთ სხვა Mario, 91 00:06:25,000 --> 00:06:29,000 და ეს ერთი არის მსგავსი მეორე, რომ ჩვენ უბრალოდ დაინახა, 92 00:06:29,000 --> 00:06:32,000 მაგრამ ჯერ რაღაც სახის cool. 93 00:06:32,000 --> 00:06:38,000 თუ დავაკვირდებით ამ სექციაში უფლება აქ შიგნით შიდა ამისთვის მარყუჟის, 94 00:06:38,000 --> 00:06:44,000 ისინი გამოყენებით ზოგიერთი გიჟები ეძებს სინტაქსი აქ უფლება ამ მხრივაც. 95 00:06:44,000 --> 00:06:47,000 ამას უწოდებენ ternary ოპერატორს. 96 00:06:47,000 --> 00:06:53,000 ეს თუ სხვაგან განაცხადი შემოკლება ერთ ხაზი. 97 00:06:53,000 --> 00:06:57,000 მდგომარეობა არის ამ ნაწილის ფარგლებში ფრჩხილებში. 98 00:06:57,000 --> 00:07:05,000 ეს ექვივალენტურია ამბობდა თუ j <სიმაღლე - I - 1. 99 00:07:05,000 --> 00:07:10,000 და მაშინ რა შინაარსი, რომ თუ ბლოკი იქნება არიან სივრცეში 100 00:07:10,000 --> 00:07:16,000 და შემდეგ შინაარსი რა სხვაგან იქნება არიან ამ #. 101 00:07:16,000 --> 00:07:20,000 ეს არსებითად მინიჭების სივრცეში ამ ცვლადში. 102 00:07:20,000 --> 00:07:24,000 ეს აყენებს სივრცეში შინაარსი ბლოკი ცვლადი, 103 00:07:24,000 --> 00:07:29,000 თუ ეს მდგომარეობა დაკმაყოფილებულია და, თუ მდგომარეობა არ შეხვდა, 104 00:07:29,000 --> 00:07:32,000 მაშინ ბლოკის ცვლადი იღებს ამ #. 105 00:07:32,000 --> 00:07:37,000 და მაშინ, რა თქმა უნდა, ნაცვლად მშენებლობა მთელი სიმებიანი 106 00:07:37,000 --> 00:07:43,000 და ბეჭდვა ყველაფერს დასასრულს ამ გადაწყვეტა ბეჭდავს მას ერთი ხასიათი დროს. 107 00:07:43,000 --> 00:07:48,000 Pretty cool. 108 00:07:48,000 --> 00:07:53,000 >> კიდევ ერთი წყვილი რამ შევხედოთ. ჩვენ გადაადგილება უნდა ხარბ. 109 00:07:53,000 --> 00:07:58,000 ახლა თუ შევხედავთ ხარბ, ამ პირველი გადაწყვეტა 110 00:07:58,000 --> 00:08:00,000 იყენებს ამ # განსაზღვრავს საკმაოდ მწირი. 111 00:08:00,000 --> 00:08:06,000 გვაქვს ერთი მუდმივი განსაზღვრული თითოეული სხვადასხვა ციფრები ამ პროგრამაში. 112 00:08:06,000 --> 00:08:12,000 გვაქვს ერთი ცენტი თითო დოლარი, ერთი მეოთხედი, dimes, nickels და pennies, 113 00:08:12,000 --> 00:08:15,000 და ახლა თუ ჩვენ გადახვევა down და წაიკითხა კოდი, 114 00:08:15,000 --> 00:08:22,000 ვხედავთ სტანდარტული do-ხოლო loop ბეჭდვის ყველაფერს. 115 00:08:22,000 --> 00:08:25,000 სახის Crux ამ პრობლემის იყო იმაში, რომ 116 00:08:25,000 --> 00:08:29,000 თქვენ საჭირო კონვერტირება float, რომ თქვენ წაიკითხოთ საწყისი მომხმარებელს მთელი რიცხვი 117 00:08:29,000 --> 00:08:32,000 ზუსტად გავაკეთოთ მათემატიკის, და ეს იმიტომ 118 00:08:32,000 --> 00:08:36,000 ერთად მცურავი პუნქტიანი ნომრები, როგორც ჩვენ ვისაუბრეთ ლექციების მოკლედ, 119 00:08:36,000 --> 00:08:41,000 ეს შეუძლებელია ზუსტად წარმოადგენენ თითოეული ღირებულება ხმების ხაზი 120 00:08:41,000 --> 00:08:47,000 რადგან არსებობს უსასრულოდ ბევრი ღირებულებების შორის 3 და, ვთქვათ, 3.1 კი. 121 00:08:47,000 --> 00:08:54,000 თქვენ შეგიძლიათ 3,01 და 3,001 და 3,0001, და შეგიძლიათ შეინახოთ აპირებს. 122 00:08:54,000 --> 00:09:00,000 თურმე როდესაც თქვენ მუშაობა ფული, თქვენ ხშირად აკონვერტირებთ ეს 123 00:09:00,000 --> 00:09:05,000 შევიდა მთელი ფორმატში ასე რომ თქვენ არ კარგავს pennies და რომ მსგავსი საქმიანობები. 124 00:09:05,000 --> 00:09:09,000 Doing რომ და დამრგვალება იყო გასაღები. 125 00:09:09,000 --> 00:09:14,000 ეს გადაწყვეტილება გამოიყენა შესანიშნავად პირდაპირი, დიდი ალგორითმი, 126 00:09:14,000 --> 00:09:17,000 რაც decremented ხმების ცენტი დარჩენილი, პირველი მიერ კვარტლები, 127 00:09:17,000 --> 00:09:19,000 შემდეგ dimes, შემდეგ nickels, შემდეგ pennies, 128 00:09:19,000 --> 00:09:24,000 და დასძინა, რომ რაოდენობის მონეტები ყოველ ჯერზე. 129 00:09:24,000 --> 00:09:31,000 >> კიდევ ერთი გამოსავალი, რომ ჩვენ დავინახავთ, როგორც მე დააშორებს და წასვლა ცვლილებათა 4, 130 00:09:31,000 --> 00:09:40,000 ჰქონდა ძალიან ჰგავს დასაწყისში არამედ გამოიყენება div და mod 131 00:09:40,000 --> 00:09:44,000 უფლება მეტი აქ გამოთვლა ხმების ცენტი. 132 00:09:44,000 --> 00:09:50,000 ეს, რაოდენობის მეოთხედი უდრის ხმების ცენტი იყოფა 25, 133 00:09:50,000 --> 00:09:53,000 და მიზეზი ამ მუშაობს იმიტომ ვაკეთებთ მთელი განყოფილება, 134 00:09:53,000 --> 00:09:58,000 ამიტომ discarding ნებისმიერი ნაშთი. 135 00:09:58,000 --> 00:10:02,000 [სტუდენტური] გვაქვს კომენტარზე ძებნა? 136 00:10:02,000 --> 00:10:05,000 ეს მართლაც დამოკიდებული. 137 00:10:05,000 --> 00:10:08,000 [სტუდენტური] თქვენ კომენტირებისას ზე მეტი კოდი უფლება აქ. 138 00:10:08,000 --> 00:10:16,000 ჰო, და ა.შ. არსებობს bunch სხვადასხვა ფილოსოფიებს ამ. 139 00:10:16,000 --> 00:10:21,000 ჩემი პირადი ფილოსოფია არის ის, რომ თქვენი კოდი მართლაც სიმართლეს, 140 00:10:21,000 --> 00:10:24,000 მოსწონს თქვენი კოდი არის ის, რაც სინამდვილეში შესრულებაში კომპიუტერზე, 141 00:10:24,000 --> 00:10:29,000 და ასე რომ თქვენი კოდი უნდა იყოს, როგორც იკითხება როგორც შესაძლებელი არ საჭიროებს როგორც ბევრი კომენტარი. 142 00:10:29,000 --> 00:10:33,000 რომ განაცხადა, როდესაც თქვენ აკეთებთ რამ, რომლებიც სახის სახიფათო მათემატიკურად 143 00:10:33,000 --> 00:10:38,000 ან algorithmically, კარგია კომენტარის იმ ასე რომ თქვენ შეგიძლიათ 144 00:10:38,000 --> 00:10:43,000 დაამატოთ დამატებითი განზომილება, ზედმეტი შრე ვინც კითხულობს თქვენს კოდი. 145 00:10:43,000 --> 00:10:49,000 ამ გადაწყვეტილებების, ხშირად ისინი კომენტარი მეტი მძიმედ მხოლოდ იმიტომ 146 00:10:49,000 --> 00:10:52,000 ჩვენ გვინდა, რომ სწრაფად გავრცელება მათ და აქვს ხალხს აირჩიოთ მათ up 147 00:10:52,000 --> 00:10:56,000 და წაიკითხეთ მათ საკმაოდ ადვილად. 148 00:10:56,000 --> 00:11:05,000 მაგრამ ნამდვილად, მე თანახმა რომ ეს არის მძიმე. 149 00:11:05,000 --> 00:11:07,000 [სტუდენტური] მაგრამ როდესაც ეჭვი, წასვლა მძიმე? 150 00:11:07,000 --> 00:11:10,000 როდესაც ეჭვი, წასვლა მძიმე. 151 00:11:10,000 --> 00:11:17,000 ზოგიერთი ადამიანი იქნება ხანდახან ამბობენ დაბრუნების 0 ან რამე მაგდაგვარს. 152 00:11:17,000 --> 00:11:20,000 მიმაჩნია, რომ ეს სასაცილოა კომენტარი. 153 00:11:20,000 --> 00:11:22,000 ცხადია, რომ ის, რაც ხდება. 154 00:11:22,000 --> 00:11:25,000 მე არ გვჭირდება ინგლისური მითხრა, რომ. 155 00:11:25,000 --> 00:11:28,000 ზოგჯერ ადამიანი დაწერს პერსონალის როგორიცაა "kthxbai!" 156 00:11:28,000 --> 00:11:32,000 სწორედ სახის cute არამედ არ- 157 00:11:32,000 --> 00:11:35,000 ეს არ არის სწორი განსხვავება შორის კომენტირებისას რაოდენობა თუ არა. 158 00:11:35,000 --> 00:11:41,000 იმ სახის კომენტარი უბრალოდ ჰა, ჰა. 159 00:11:41,000 --> 00:11:43,000 ზემოთ. 160 00:11:43,000 --> 00:11:48,000 >> ამ ეტაპზე, დავიწყოთ მუშაობა პრობლემა უცნობია 3 მონაკვეთზე კითხვები. 161 00:11:48,000 --> 00:11:52,000 თუ ბიჭები დახევის ეს ყველაფერი ისევ და ისევ, 162 00:11:52,000 --> 00:11:55,000 როგორც გასულ კვირას, ჩვენ არ ვაპირებთ, რომ უყუროთ შორტები ამ სექციაში. 163 00:11:55,000 --> 00:12:00,000 ჩვენ მოგცემთ ბიჭებს რომ საკუთარ დროს და ვისაუბროთ კითხვები. 164 00:12:00,000 --> 00:12:05,000 მაგრამ ახლა ამ სექციაში ჩვენ ვაპირებთ გაატაროთ ცოტა მეტი დრო 165 00:12:05,000 --> 00:12:11,000 ვსაუბრობთ ნაკლები კოდირების საფუძვლები 166 00:12:11,000 --> 00:12:15,000 ისე, როგორც გასულ კვირას, და ამის ნაცვლად, ჩვენ ვაპირებთ ფოკუსირება უფრო 167 00:12:15,000 --> 00:12:22,000 ცოტა უფრო თეორიულად, ისე ვსაუბრობთ ორობითი ძებნა და შემდეგ დახარისხება. 168 00:12:22,000 --> 00:12:27,000 იმ, ვინც უკვე შემდეგ ერთად ლექცია, 169 00:12:27,000 --> 00:12:30,000 შეიძლება ვინმეს მომეცით recap, თუ რა განსხვავება არის 170 00:12:30,000 --> 00:12:35,000 შორის ბინარული ძებნის და ხაზოვანი ძებნა? 171 00:12:35,000 --> 00:12:37,000 რა ხდება? დარწმუნებული. 172 00:12:37,000 --> 00:12:42,000 ხაზოვანი ძებნა ეძებს მეშვეობით ყოველ ელემენტს დახარისხებული სია 173 00:12:42,000 --> 00:12:45,000 ერთი ერთი ერთი ერთი, 174 00:12:45,000 --> 00:12:50,000 და ბინარული ძებნა ყოფს სიაში შევიდა 2 ჯგუფები, 175 00:12:50,000 --> 00:12:57,000 ამოწმებს თუ გასაღებები ღირებულება, რომ თქვენ ეძებს მეტია ან ნაკლებია, ვიდრე შუაში ღირებულება 176 00:12:57,000 --> 00:13:00,000 რომ თქვენ მხოლოდ ი, და თუ ნაკლები, ეს მიდის ერთად ქვედა სიაში 177 00:13:00,000 --> 00:13:03,000 და მაშინ ყოფს, რომ ერთხელ, იგივეს ფუნქცია 178 00:13:03,000 --> 00:13:07,000 ყველა გზა ქვემოთ, სანამ ის პოულობს შუაში უნდა იყოს ტოლი ღირებულების თავად. 179 00:13:07,000 --> 00:13:10,000 მარჯვენა. 180 00:13:10,000 --> 00:13:12,000 >> რატომ აღელვებს? 181 00:13:12,000 --> 00:13:20,000 რატომ ვსაუბრობთ ორობითი ძებნა წინააღმდეგ ხაზოვანი ძებნა? 182 00:13:20,000 --> 00:13:22,000 Yeah. 183 00:13:22,000 --> 00:13:24,000 ორობითი არის ბევრი უფრო სწრაფად, ასე რომ, თუ თქვენ გაორმაგება ზომა პრობლემა 184 00:13:24,000 --> 00:13:27,000 სჭირდება კიდევ ერთი ნაბიჯია, ვიდრე ორჯერ მეტი. 185 00:13:27,000 --> 00:13:29,000 სწორედ. 186 00:13:29,000 --> 00:13:31,000 სწორედ დიდი პასუხი. 187 00:13:31,000 --> 00:13:36,000 ხაზოვანი ძებნა ძალიანაა შემოწმების ერთ ელემენტს დროს, 188 00:13:36,000 --> 00:13:39,000 და როგორც ვნახეთ წლის პირველივე დღიდან ლექცია 189 00:13:39,000 --> 00:13:42,000 როდესაც დავით გაიარა მისი სატელეფონო წიგნი მაგალითად 190 00:13:42,000 --> 00:13:45,000 და ამოღებული ერთი გვერდი სატელეფონო წიგნაკი დროს 191 00:13:45,000 --> 00:13:47,000 და ინახება აკეთებს, რომ მეტი და უსასრულოდ, 192 00:13:47,000 --> 00:13:51,000 ის აპირებს მას მართლაც ხანგრძლივი დრო, რათა იპოვოს ვინმეს ტელეფონის წიგნი, 193 00:13:51,000 --> 00:13:55,000 თუ არ, რა თქმა უნდა, ის ეძებდა ვინმეს ზუსტად იმ დასაწყისში ანბანი. 194 00:13:55,000 --> 00:14:00,000 ერთად ორობითი ძებნა, შეგიძლიათ ბევრი უფრო სწრაფად, 195 00:14:00,000 --> 00:14:05,000 და ეს არ არის მხოლოდ ორჯერ სწრაფად ან 3 ჯერ სწრაფად ან 4 ჯერ სწრაფად. 196 00:14:05,000 --> 00:14:13,000 მაგრამ პრობლემა იღებს პატარა და პატარა და პატარა ბევრად უფრო სწრაფად. 197 00:14:13,000 --> 00:14:17,000 საილუსტრაციოდ, ჩვენ დავიწყებთ საუბარს, რა ხდება 198 00:14:17,000 --> 00:14:21,000 როდესაც ჩვენ წერენ ორობითი ძებნა. 199 00:14:21,000 --> 00:14:27,000 პრობლემის მხრივ არის, რომ თუ მაქვს მასივი ნომრები, 200 00:14:27,000 --> 00:14:40,000 ამბობენ, 1, 2, 3, 5, 7, 23, 45, 78, 12323, 201 00:14:40,000 --> 00:14:47,000 და შემდეგ 9 ერთად ტონა 0S მას შემდეგ, 202 00:14:47,000 --> 00:14:52,000 ჩვენ გვინდა, რომ სწრაფად გაერკვნენ მართლაც სწრაფად რა არის 203 00:14:52,000 --> 00:14:57,000 ამ მასივი ნომრები. 204 00:14:57,000 --> 00:15:00,000 მე ვიცი ეს, როგორც ჩანს, ცოტა სულელური და ცოტა contrived, 205 00:15:00,000 --> 00:15:02,000 რადგან ახლა ეს. 206 00:15:02,000 --> 00:15:05,000 ჩვენ გვყავს მასივი, რომ არ გააჩნია ძალიან ბევრი ელემენტები მასში, 207 00:15:05,000 --> 00:15:08,000 და თუ ვთხოვ ერთი თქვენ უნდა გაერკვნენ თუ არა 208 00:15:08,000 --> 00:15:11,000 23 არის მასივი, შეგიძლიათ გააკეთოთ, რომ საკმაოდ სწრაფად 209 00:15:11,000 --> 00:15:16,000 მხოლოდ glancing ამ და მეუბნებოდა დიახ ან არა. 210 00:15:16,000 --> 00:15:20,000 ანალოგური განიხილოს არის წარმოიდგინეთ, თუ ამ იყო, ვთქვათ, 211 00:15:20,000 --> 00:15:27,000 Excel-თან 10,000 რიგები, 20,000 რიგები. 212 00:15:27,000 --> 00:15:31,000 რა თქმა უნდა, შეგიძლიათ გააკეთოთ ბრძანება F ან კონტროლის F და მოუთმენლად up რაღაც. 213 00:15:31,000 --> 00:15:33,000 თქვენ ასევე შეგიძლიათ გამოიყენოთ ფილტრები და ძებნა პერსონალის, 214 00:15:33,000 --> 00:15:37,000 მაგრამ თუ ჰქონდა გაეცნონ რომ ფაილი ხაზის მიერ ხაზს, 215 00:15:37,000 --> 00:15:40,000 დასჭირდება თქვენ დიდი ხნის საპოვნელად. 216 00:15:40,000 --> 00:15:42,000 ეს სახის როგორიცაა სატელეფონო წიგნი მაგალითად, ძალიან, სადაც 217 00:15:42,000 --> 00:15:44,000 არავინ გამოიყურება მეშვეობით სატელეფონო წიგნი ერთ გვერდზე დროს. 218 00:15:44,000 --> 00:15:47,000 როგორც წესი, ისინი გახსნა მას ახლო, 219 00:15:47,000 --> 00:15:50,000 ან იმ შემთხვევაში, თუ ბევრი ტელეფონი წიგნები და ლექსიკონები სადაც 220 00:15:50,000 --> 00:15:54,000 თქვენ ნამდვილად არ ეს keyed პირველ წერილში, 221 00:15:54,000 --> 00:16:01,000 თქვენ Flip რომ პირველი ასო და გახსნას და დაიწყოს გადის იქ. 222 00:16:01,000 --> 00:16:03,000 >> მაგონებს შენი სახელის ერთხელ. >> სემ. 223 00:16:03,000 --> 00:16:05,000 სემ. 224 00:16:05,000 --> 00:16:11,000 Like სემ განაცხადა, რომ ხაზოვანი ძებნა პროცესი იქნება ნამდვილად ნელი, 225 00:16:11,000 --> 00:16:15,000 და ნაცვლად ერთად ორობითი ძებნა, გზა ამ სამუშაოების არის, რომ 226 00:16:15,000 --> 00:16:21,000 ყოველ ჯერზე ჩვენ გაიაროს iteration ჩვენი ძებნას ალგორითმი, 227 00:16:21,000 --> 00:16:27,000 ჩვენ ვაპირებთ დაყოფის სია ნახევარ, არსებითად, 228 00:16:27,000 --> 00:16:33,000 ორ პატარა სიები. 229 00:16:33,000 --> 00:16:39,000 და მერე შემდეგი iteration of მარყუჟის, ჩვენ გაყოფა კიდევ ერთხელ 230 00:16:39,000 --> 00:16:44,000 სხვა პატარა სიები. 231 00:16:44,000 --> 00:16:48,000 როგორც ხედავთ, პრობლემა ნიშანდობლივია მიღების პატარა და პატარა 232 00:16:48,000 --> 00:16:55,000 იმიტომ, რომ ჩვენ შევინარჩუნოთ discarding ნახევარში სიაში თითოეული დრო. 233 00:16:55,000 --> 00:16:59,000 როგორ აკეთებს ამას გაუქმება მუშაობს? 234 00:16:59,000 --> 00:17:05,000 ისევე, როგორც შეხსენება, რაც ჩვენ ვაპირებთ, თუ ჩვენ ვიყავით კომპიუტერი 235 00:17:05,000 --> 00:17:11,000 და ჩვენ, ვთქვათ, ეძებს ნომერი 5 ამ სიაში 236 00:17:11,000 --> 00:17:15,000 არის, რომ ჩვენ აირჩიოთ ხმების შუა. 237 00:17:15,000 --> 00:17:26,000 შუა ამ სიაში, რადგან არსებობს 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ნომერი, 238 00:17:26,000 --> 00:17:32,000 ჩვენ გვინდა აირჩიოთ ნომერი ან მე -4 პოზიცია ან მე -5 პოზიცია, 239 00:17:32,000 --> 00:17:38,000 და ჩვენ გვინდა, რომ მოვუწოდებთ შუა ჩვენს სიაში. 240 00:17:38,000 --> 00:17:42,000 Pick ნომერი შუა. 241 00:17:42,000 --> 00:17:51,000 მაშინ, ისევე, როგორც სემ განაცხადა, ჩვენ შეამოწმოთ თუ ეს რიცხვი უდრის 242 00:17:51,000 --> 00:17:59,000 ნომერზე, რომ ჩვენ გვინდა ან ჩვენი სასურველი ნომერი. 243 00:17:59,000 --> 00:18:06,000 თუ ეს თანაბარი, მაშინ ჩვენ ვერ. ჩვენ გავიმარჯვებთ. 244 00:18:06,000 --> 00:18:12,000 თუ ეს არ თანაბარი, მაშინ არსებობს რამდენიმე შემთხვევა. 245 00:18:12,000 --> 00:18:15,000 ორი შემთხვევა ან ნომერი უნდა იყოს მეტი რაოდენობის ჩვენ შევხედავთ, 246 00:18:15,000 --> 00:18:19,000 ან ეს ნაკლები. 247 00:18:19,000 --> 00:18:25,000 თუ ეს უფრო დიდი, ჩვენ გადავა უფლება. 248 00:18:25,000 --> 00:18:33,000 და თუ ის ნაკლებია, ჩვენ გადავა მარცხნივ. 249 00:18:33,000 --> 00:18:41,000 და შემდეგ ჩვენ ვიმეორებ მთელი პროცესი კვლავ 250 00:18:41,000 --> 00:18:48,000 ორივე მარჯვენა ნახევარში ან მარცხენა ნახევარი სიაში. 251 00:18:48,000 --> 00:18:51,000 >> პირველი პრობლემა დღევანდელ მონაკვეთზე არის გაერკვნენ 252 00:18:51,000 --> 00:18:55,000 როგორ შეგვიძლია რეალურად დაიწყოს გამოხატოს ეს C კოდი. 253 00:18:55,000 --> 00:18:58,000 გვაქვს pseudocode აქ. 254 00:18:58,000 --> 00:19:04,000 რა დავიწყებთ ჩანაფიქრია მე დახევის up ახალ სივრცეში, 255 00:19:04,000 --> 00:19:09,000 შეინახეთ ამ გადასინჯვის ისე, რომ ჩვენ გვაქვს ეს შენიშვნები, მოგვიანებით, 256 00:19:09,000 --> 00:19:20,000 ჩვენ წაშლა ამ ყველაფრისა, და შემდეგ დააკოპირეთ და ჩასვით საწყისი პრობლემა კომპლექტი 257 00:19:20,000 --> 00:19:26,000 ამ ინფორმაციას ჩვენს ფართების, და იმედია ეს არ დაარღვიოს. 258 00:19:26,000 --> 00:19:28,000 Perfect. 259 00:19:28,000 --> 00:19:33,000 თუ ბიჭები ყველა ამისათვის, და ჩასვით ეს კოდი თქვენს ახალ სივრცეში, 260 00:19:33,000 --> 00:19:43,000 შევიდა ცარიელი ერთი. 261 00:19:43,000 --> 00:19:47,000 მოდით ვეცადოთ დანიელ. თუ კომპილაციის და აწარმოებს ამ პროგრამის მუშაობს იგი? 262 00:19:47,000 --> 00:19:49,000 პოსტები >> რა არის ის ამბობდა? 263 00:19:49,000 --> 00:19:53,000 განცხადებაში ნათქვამია კონტროლის აღწევს ბოლოს არასამთავრობო ბათილად ფუნქცია. 264 00:19:53,000 --> 00:19:55,000 Yeah, ნება მომეცით, ვცდილობთ გაშვებული იგი. 265 00:19:55,000 --> 00:19:59,000 თქვენ ბიჭები მინახავს ამ ადრე? იცით რას ნიშნავს? 266 00:19:59,000 --> 00:20:01,000 Okay, მოდით dissect ამ ცოტა. 267 00:20:01,000 --> 00:20:10,000 ის ამბობდა საათზე file.c on line 9, სვეტი 1 გვაქვს შეცდომა, ისევე, როგორც თქვენ განაცხადა, 268 00:20:10,000 --> 00:20:16,000 და ნათქვამია, რომ ეს გამომდინარე შეცდომა გაფრთხილება და დაბრუნების ტიპის გაფრთხილება. 269 00:20:16,000 --> 00:20:18,000 როგორც ჩანს რაღაც მიმდინარეობს დაბრუნების ტიპის, რომელიც აზრი. 270 00:20:18,000 --> 00:20:21,000 გვაქვს არასამთავრობო ბათილად ფუნქცია, რაც იმას ნიშნავს, რომ ჩვენ მივიღეთ ფუნქცია 271 00:20:21,000 --> 00:20:24,000 რომ არ დააბრუნებს ბათილად. 272 00:20:24,000 --> 00:20:27,000 ბათილად ფუნქცია, რომელიც ასე გამოიყურება: 273 00:20:27,000 --> 00:20:35,000 ბათილად foo (), და ეს იმიტომ, რომ ბათილად დაბრუნების ტიპის ბათილად, 274 00:20:35,000 --> 00:20:38,000 რაც იმას ნიშნავს, რომ თუ ჩვენ გვქონდა რაღაც აქ 275 00:20:38,000 --> 00:20:45,000 მოსწონს დაბრუნების 1 ჩვენ ავღნიშნო კიდევ შემდგენელი შეცდომა ამ. 276 00:20:45,000 --> 00:20:49,000 თუმცა, ჩვენ გვაქვს არასამთავრობო ბათილად ფუნქცია. 277 00:20:49,000 --> 00:20:51,000 ჩვენი არასამთავრობო ბათილად ფუნქცია ამ შემთხვევაში არის ჩვენი ძებნის ფუნქცია 278 00:20:51,000 --> 00:20:56,000 რადგან მას დაბრუნების გაცნობის bool. 279 00:20:56,000 --> 00:20:59,000 როცა ეს რომ კონტროლის ბოლოს მიაღწევს არასამთავრობო ბათილად ფუნქცია, 280 00:20:59,000 --> 00:21:02,000 ეს იმიტომ, რომ ძებნა არ აქვს დაბრუნების განაცხადი. 281 00:21:02,000 --> 00:21:04,000 ეს არ დაბრუნების არაფერი ტიპის bool. 282 00:21:04,000 --> 00:21:09,000 >> ჩვენ შეგვიძლია დაფიქსირება, რომ, და რას ვფიქრობ ბიჭები 283 00:21:09,000 --> 00:21:13,000 ძებნა უნდა დაუბრუნდეს იყოს? 284 00:21:13,000 --> 00:21:16,000 რა უნდა იყოს ნაგულისხმევი დაბრუნების ღირებულება ძებნა? 285 00:21:16,000 --> 00:21:19,000 იმიტომ რომ ის, რაც ჩვენ შეგვიძლია დააყენა დასასრულს. 286 00:21:19,000 --> 00:21:21,000 Charlotte, გაქვთ რაიმე-? 287 00:21:21,000 --> 00:21:23,000 True ან ყალბი? >> True ან ყალბი. 288 00:21:23,000 --> 00:21:26,000 რომელი? 289 00:21:26,000 --> 00:21:28,000 ყალბი. მე არ ვიცი. 290 00:21:28,000 --> 00:21:30,000 ყალბი? მოდით ცდილობენ. 291 00:21:30,000 --> 00:21:32,000 რატომ ამბობენ დაბრუნების ყალბი? სწორედ დიდი ინტუიცია. 292 00:21:32,000 --> 00:21:35,000 [Charlotte] არ ვიცი. 293 00:21:35,000 --> 00:21:39,000 ჩვენ ვაპირებთ დაბრუნებას ცრუ ამ შემთხვევაში, რადგან ეს იქნება ჩვენი რა 294 00:21:39,000 --> 00:21:44,000 თუ რაიმე მიზეზით სია ცარიელია ან ნემსი 295 00:21:44,000 --> 00:21:46,000 რომ ჩვენ ვეძებთ არ არსებობს. 296 00:21:46,000 --> 00:21:50,000 შემდეგ კი ბოლომდე, თუ არ იქნება TRUE ადრე ამ ფუნქციას, 297 00:21:50,000 --> 00:21:55,000 ჩვენ ყოველთვის ვიცით, რომ ამ ფუნქციის იტყვის nope, ეს არ მასივი. 298 00:21:55,000 --> 00:21:58,000 ეს არ haystack. 299 00:21:58,000 --> 00:22:03,000 ახლა თუ ჩვენ კომპილირდება და გაუშვით-ნება მომეცით გადარჩენა ამ ასე შეგვიძლია დახევის it up. 300 00:22:03,000 --> 00:22:08,000 ახლა თუ ჩვენ კომპილირდება და აწარმოებს ჩვენი პროგრამა, იგი აშენებს. 301 00:22:08,000 --> 00:22:12,000 მივიღებთ ჩვენი პატარა ზოლზე. 302 00:22:12,000 --> 00:22:20,000 თუ მე მოხვდა 4-uh-oh. 303 00:22:20,000 --> 00:22:25,000 ეს არ ბეჭდვა არაფერს. როგორც ჩანს ყველაფერი დასრულდა okay. 304 00:22:25,000 --> 00:22:35,000 გვაქვს შევსება ამ სისტემაში 305 00:22:35,000 --> 00:22:39,000 ჩვენ ვისაუბრეთ ალგორითმს pseudocode ცოტა წინ. 306 00:22:39,000 --> 00:22:44,000 ნება მომეცით ვხედავ, გარდა ამისა, 307 00:22:44,000 --> 00:22:49,000 და მე გაიყვანოს, რომ ალგორითმი უკან კვლავ. 308 00:22:49,000 --> 00:22:51,000 მოდით მოხვდა ამ ბიჭს. Nope. 309 00:22:51,000 --> 00:22:58,000 არსებობს ეს. 310 00:22:58,000 --> 00:23:03,000 როგორ გავაკეთოთ ეს? 311 00:23:03,000 --> 00:23:11,000 რა იქნება კარგი სტრატეგია დაწყებული off ეს კოდი? 312 00:23:11,000 --> 00:23:16,000 თქვენ უნდა აირჩიოთ ხმების შუა. 313 00:23:16,000 --> 00:23:23,000 როგორ უნდა შეარჩიო ხმების შუა მასივი? 314 00:23:23,000 --> 00:23:25,000 რაიმე შემოთავაზება? 315 00:23:25,000 --> 00:23:27,000 [სტუდენტური] Strlen იყოფა 2. 316 00:23:27,000 --> 00:23:32,000 Strlen იყოფა 2. სწორედ დიდი ერთი. 317 00:23:32,000 --> 00:23:35,000 Strlen სამუშაოები სპეციალური სახის მასივები. 318 00:23:35,000 --> 00:23:38,000 რა სახის კოლექტორები? 319 00:23:38,000 --> 00:23:44,000 სიმებიანი მასივები, ხასიათი მასივები. 320 00:23:44,000 --> 00:23:48,000 ეს რომ იგივე სახის კონცეფცია რომ ჩვენ გვინდა მივმართოთ, 321 00:23:48,000 --> 00:23:52,000 მაგრამ ჩვენ არ შეგვიძლია გამოვიყენოთ strlen რადგან ჩვენ არ გვაქვს მასივი სიმბოლო. 322 00:23:52,000 --> 00:23:55,000 ჩვენ გვყავს მასივი ints. 323 00:23:55,000 --> 00:23:58,000 მაგრამ რას strlen მიიღოს ჩვენთვის? 324 00:23:58,000 --> 00:24:01,000 იცით, რა იგი იღებს ჩვენთვის? 325 00:24:01,000 --> 00:24:03,000 [სტუდენტური] Strlen იღებს us სიგრძე. 326 00:24:03,000 --> 00:24:05,000 სწორედ, იგი იღებს us სიგრძე. 327 00:24:05,000 --> 00:24:09,000 Strlen იღებს სიგრძეზე მასივი ჩვენთვის. 328 00:24:09,000 --> 00:24:14,000 >> როგორ მივიღებთ რომ ჩვენი ორობითი ძებნა პროგრამაში? 329 00:24:14,000 --> 00:24:18,000 როგორ მიიღოთ სიგრძეზე მასივი? 330 00:24:18,000 --> 00:24:20,000 [სტუდენტური] Strlen? 331 00:24:20,000 --> 00:24:25,000 თქვენ შეგიძლიათ სიგრძეზე სწორად დაფორმატებული C სიმებიანი მასივში strlen. 332 00:24:25,000 --> 00:24:31,000 პრობლემა, თუმცა, ის არის, რომ ჩვენ არ გვაქვს სიმებიანი მასივი. 333 00:24:31,000 --> 00:24:36,000 თუ ჩვენ ვიხსენებთ ამ კოდექსით, ჩვენ გვაქვს ამ მთელ რიცხვს მასივი. 334 00:24:36,000 --> 00:24:38,000 როგორ ვიცით რამდენი ხანი არის? 335 00:24:38,000 --> 00:24:44,000 [სტუდენტური] არის ეკვივალენტი ერთი Endpoint, როგორიცაა int ლ ან რაღაც? 336 00:24:44,000 --> 00:24:49,000 თურმე იქ ფაქტობრივად არ არის და ისე სხვათა შორის, ეს არის 337 00:24:49,000 --> 00:24:52,000 ერთი იმ რამ, რომ უბრალოდ კარგი იცოდეთ C, 338 00:24:52,000 --> 00:24:57,000 რომ არ არსებობს გზა სიგრძეზე მასივი 339 00:24:57,000 --> 00:24:59,000 თუ ყველა მე გაძლევთ არის მასივი. 340 00:24:59,000 --> 00:25:02,000 მიზეზი ის მუშაობს სიმები, მიზეზი strlen სამუშაოები, 341 00:25:02,000 --> 00:25:06,000 არის, რადგან თუ სტრიქონს სწორად დაფორმატებული, 342 00:25:06,000 --> 00:25:12,000 მას ეყოლება განსაკუთრებული \ 0 ხასიათი დროს ბოლომდე. 343 00:25:12,000 --> 00:25:16,000 >> თქვენ ასევე შეგიძლიათ წარმოიდგინოთ თუ არასათანადოდ ფორმატირებული სიმებიანი 344 00:25:16,000 --> 00:25:20,000 და არ არსებობს \ 0 ხასიათი არსებობს, მაშინ მთელი რამ არ მუშაობს. 345 00:25:20,000 --> 00:25:22,000 [სტუდენტური] შეგიძლიათ დაამატოთ \ 0? 346 00:25:22,000 --> 00:25:24,000 ჩვენ შეგვეძლო ამ შემთხვევაში. 347 00:25:24,000 --> 00:25:29,000 ჩვენ შეგვეძლო დაამატოთ გარკვეული \ 0 348 00:25:29,000 --> 00:25:33,000 ან გარკვეული signifying ხასიათი და შემდეგ გამოიყენოთ, რომ. 349 00:25:33,000 --> 00:25:36,000 მაგრამ ეს არ არის საკმაოდ იმუშავებს 350 00:25:36,000 --> 00:25:40,000 რადგან \ 0 არის char ტიპის, 351 00:25:40,000 --> 00:25:43,000 და აქ გვაქვს ints. 352 00:25:43,000 --> 00:25:46,000 სხვა რამ არის, თუ ჩვენ უნდა გამოვიყენოთ სპეციალური ღირებულება 353 00:25:46,000 --> 00:25:49,000 მოსწონს -1 აღსანიშნავად ბოლოს მასივი 354 00:25:49,000 --> 00:25:54,000 მაშინ ჩვენ ვერასოდეს შესანახად -1 ჩვენი რიცხვი მასივები. 355 00:25:54,000 --> 00:25:56,000 მე მინდა დავრჩებოდით. 356 00:25:56,000 --> 00:26:00,000 თურმე ერთადერთი გზა მიიღოს სიგრძე 357 00:26:00,000 --> 00:26:03,000 საქართველოს მასივი დო არის რეალურად მახსოვს 358 00:26:03,000 --> 00:26:08,000 როდესაც თქვენ დააყენეთ მდე და შემდეგ გაიაროს ეს გარშემო მასივი 359 00:26:08,000 --> 00:26:14,000 ასე რომ როდესაც მე ფუნქცია რომ აპირებს დაკავდით მუშაობა 360 00:26:14,000 --> 00:26:18,000 on მასივი რიცხვებით ან მოძრავი ან ორჯერ ან რა, 361 00:26:18,000 --> 00:26:22,000 მე ასევე უნდა მივცეთ ფუნქცია მასივი ს სიგრძე, 362 00:26:22,000 --> 00:26:26,000 და სწორედ ის, რაც ჩვენ გავაკეთეთ აქ ძებნა ფუნქცია. 363 00:26:26,000 --> 00:26:30,000 თუ გადავხედავთ, რაც ჩვენ გავაკეთეთ, როდესაც ჩვენ გავლა ჩვენს მასივი აქ, 364 00:26:30,000 --> 00:26:36,000 ჩვენ ასევე კორიდორი სიგრძე, ზომა. 365 00:26:36,000 --> 00:26:41,000 უბრალოდ ხდება, რომ ჩვენ მოუწოდა ამ ცვლადის აქ, 366 00:26:41,000 --> 00:26:43,000 ეს პარამეტრი ან არგუმენტი. 367 00:26:43,000 --> 00:26:46,000 ეს ეწოდება ფუნქციის არგუმენტი სიაში ან პარამეტრის სია, 368 00:26:46,000 --> 00:26:51,000 და ეს ასევე მოუწოდა არგუმენტები ან პარამეტრებს. 369 00:26:51,000 --> 00:26:53,000 ხალხი გამოიყენოთ სხვადასხვა პირობებით სხვადასხვა დროს. 370 00:26:53,000 --> 00:26:55,000 მე ზოგჯერ ცვლა მათ თავს. 371 00:26:55,000 --> 00:27:00,000 ეს უბრალოდ ისე ხდება, რომ ეს ცვლადი აქ არის დასახელებული ანალოგიურად 372 00:27:00,000 --> 00:27:03,000 ამ # განსაზღვროს აქ. 373 00:27:03,000 --> 00:27:06,000 მაგრამ ისინი არ იმავეს. 374 00:27:06,000 --> 00:27:11,000 კაპიტალიზაცია არ აქვს მნიშვნელობა. 375 00:27:11,000 --> 00:27:14,000 >> თუ გადავხედავთ რა ხდება აქ, ვაცხადებთ 376 00:27:14,000 --> 00:27:18,000 ჩვენი int array, რომელიც ჩვენ მოუწოდა ნომრები. 377 00:27:18,000 --> 00:27:23,000 ჩვენ მოცემული ეს ჩვენი ზომა, რაც შეესაბამება ჩვენი # განსაზღვრავს up ზედა. 378 00:27:23,000 --> 00:27:27,000 ეს იქნება 8. 379 00:27:27,000 --> 00:27:35,000 და მაშინ, როდესაც ჩვენ მაშინ მოვუწოდებთ ჩვენს ძებნა ფუნქციის ქვემოთ ქვემოთ 380 00:27:35,000 --> 00:27:40,000 ჩვენ კორიდორი ნომერი გვინდა მოძებნოთ, რომელიც ჩვენ აიძულა, 381 00:27:40,000 --> 00:27:43,000 მიღებული საწყისი მომხმარებელს. 382 00:27:43,000 --> 00:27:46,000 ჩვენ კორიდორი მასივი, ამ ნომრებზე, 383 00:27:46,000 --> 00:27:51,000 და მაშინ ჩვენ ასევე უნდა გაიარონ in ზომა მასივი, 384 00:27:51,000 --> 00:27:57,000 და მაშინ ღირებულების ზომა 8 იღებს შენახული 385 00:27:57,000 --> 00:28:01,000 ან გავიდა ამ მთელ რიცხვს ცვლადში ზომა. 386 00:28:01,000 --> 00:28:08,000 ჩვენ გვყავს ზომა მასივი. 387 00:28:08,000 --> 00:28:11,000 ახლა თუ ჩვენ დავუბრუნდებით რა ჩვენ ვსაუბრობთ ადრე, 388 00:28:11,000 --> 00:28:14,000 ვფიქრობ Missy აღიზარდოს წერტილი რომ ის, რაც ჩვენ გვჭირდებოდა გააკეთოთ მიიღოს სიგრძეზე მასივი 389 00:28:14,000 --> 00:28:20,000 და ყოფს მას 2 და რომ მოგვცემს შუაში. 390 00:28:20,000 --> 00:28:22,000 ვნახოთ. 391 00:28:22,000 --> 00:28:25,000 შემიძლია აქვს ვინმეს დაწეროს ამ და შეინახოთ საკუთარ სივრცეში? 392 00:28:25,000 --> 00:28:27,000 როგორ შესახებ ლეილა? 393 00:28:27,000 --> 00:28:31,000 შემიძლია აქვს წერთ ამ წელს? 394 00:28:31,000 --> 00:28:35,000 დაწერეთ პირველი ხაზი, სადაც თქვენ მიიღოს სიგრძეზე მასივი და კიდევ შუაში 395 00:28:35,000 --> 00:28:41,000 და ჩაწეროთ იგი ახალი ცვლადი. 396 00:28:41,000 --> 00:28:44,000 მე მივცემ თქვენ რამდენიმე წამში. მზად ხართ? 397 00:28:44,000 --> 00:28:46,000 [სტუდენტური inaudible] 398 00:28:46,000 --> 00:28:50,000 რა თქმა უნდა, შეიძლება მე თქვენ გამოთვალოთ შუაში 399 00:28:50,000 --> 00:28:55,000 საქართველოს haystack მასივი შიგნით ძებნა ფუნქცია 400 00:28:55,000 --> 00:29:03,000 გამოყენებით სიგრძეზე haystack მასივი, რომელიც ზომა ცვლადი? 401 00:29:03,000 --> 00:29:08,000 არაფერი სახიფათო აქ. 402 00:29:08,000 --> 00:29:12,000 [ლეილა] უბრალოდ ზომა / 2 და მხოლოდ- 403 00:29:12,000 --> 00:29:17,000 და შეინახე, და მოხვდა Save ღილაკს აქ ზედა, 404 00:29:17,000 --> 00:29:19,000 და ჩვენ გაიყვანოს it up. 405 00:29:19,000 --> 00:29:22,000 Perfect. 406 00:29:22,000 --> 00:29:28,000 იქ ჩვენ წავიდეთ. გასაოცარია. 407 00:29:28,000 --> 00:29:30,000 >> როგორც არის, იქნება ეს კომპილირდება? 408 00:29:30,000 --> 00:29:32,000 [ლეილა] არა, ეს უნდა იყოს უმაღლესი. 409 00:29:32,000 --> 00:29:34,000 [Nate] ჰო, ისე რას უნდა გავაკეთოთ? 410 00:29:34,000 --> 00:29:36,000 [ლეილა] მსგავსად int შუაში ან რამე. 411 00:29:36,000 --> 00:29:41,000 გასაოცარია. ჰო, მოდით, რომ int შუაში = ზომა. 412 00:29:41,000 --> 00:29:44,000 დაიცავს ეს კომპილირდება? 413 00:29:44,000 --> 00:29:47,000 მოდით ამ კომენტარის წაშლა და მიიღეთ იგი გარეთ გზა. 414 00:29:47,000 --> 00:29:50,000 რა იქნება არ კომპილირდება ამის შესახებ? 415 00:29:50,000 --> 00:29:52,000 ჩვენ არ აკეთებს არაფერი მთელი რიცხვი, 416 00:29:52,000 --> 00:29:55,000 ამიტომ ჩვენ უნდა ბეჭდვა ან რამე მაგდაგვარს. 417 00:29:55,000 --> 00:29:58,000 ჰო, ზუსტად. 418 00:29:58,000 --> 00:30:00,000 ჩვენ კიდევ გამოუყენებელი ცვლადი. 419 00:30:00,000 --> 00:30:02,000 რა არ იმუშავებს ამის შესახებ? 420 00:30:02,000 --> 00:30:06,000 მე ვფიქრობ, თქვენ განაცხადა რაღაც, სემ. Semicolons. 421 00:30:06,000 --> 00:30:08,000 ჰო, მე დაკარგული იმ semicolons. 422 00:30:08,000 --> 00:30:14,000 ეს იქნება მუდმივი რამ მთელი კურსი ვადით. 423 00:30:14,000 --> 00:30:17,000 საბოლოო რამ გავაკეთებ არის მე დააყენა ზოგიერთი თეთრი სივრცე ორივე მხარეს 424 00:30:17,000 --> 00:30:23,000 ამ ოპერატორს აქ, რადგან ეს არის ის, როგორც წესი, თუ როგორ ვაფასებთ 425 00:30:23,000 --> 00:30:26,000 შესაბამისად ჩვენი სტილი სახელმძღვანელო. 426 00:30:26,000 --> 00:30:29,000 გვაქვს შუაში ჩვენი მასივი. 427 00:30:29,000 --> 00:30:32,000 ახლა თუ ჩვენ გვახსოვს უკან ჩვენი ალგორითმი, 428 00:30:32,000 --> 00:30:37,000 რა იყო მეორე ნაბიჯი, რომელიც ჩვენ უნდა გაეკეთებინათ ერთხელ გვაქვს შუაში? 429 00:30:37,000 --> 00:30:42,000 [სტუდენტური] თუ ეს უფრო დიდი [inaudible]. 430 00:30:42,000 --> 00:30:48,000 ჰო, ამიტომ ჩვენ უნდა გავაკეთოთ გარკვეული შედარებით, და რა არის ჩვენ შედარებით აქ? 431 00:30:48,000 --> 00:30:53,000 თქვენ თქვით, თუ იგი აღემატება. რა არის ის, რომ სასჯელი გულისხმობდა? 432 00:30:53,000 --> 00:30:57,000 ნომერი, რომელიც მოდის მდე, თუ ეს მეტია შუაში, მაშინ ახვიდეთ მასივი? 433 00:30:57,000 --> 00:31:05,000 სწორედ, ასე რომ ხმების ჩნდება ჩვენ- 434 00:31:05,000 --> 00:31:10,000 ნემსი, ასე რომ ჩვენ შედარებით ნემსი, 435 00:31:10,000 --> 00:31:12,000 და რა ჩვენ შედარებით წინააღმდეგ ნემსი? 436 00:31:12,000 --> 00:31:15,000 იმის გამო, რომ ნემსი არის ის, რაც ჩვენ ვეძებთ. 437 00:31:15,000 --> 00:31:18,000 ჩვენ შედარებით ეს მისაღებად შუაში. 438 00:31:18,000 --> 00:31:21,000 >> მაგრამ ეს აზრი შეამოწმეთ 439 00:31:21,000 --> 00:31:27,000 თუ ნემსის = შუაში? 440 00:31:27,000 --> 00:31:32,000 ამჯამად რომ აზრი? 441 00:31:32,000 --> 00:31:35,000 ვინმეს აქვს არ ვეთანხმები? 442 00:31:35,000 --> 00:31:40,000 მოდით გინება, თუ (ნემსი == შუაში). 443 00:31:40,000 --> 00:31:42,000 [სტუდენტური] ნუ printf თქვენ ი იგი. 444 00:31:42,000 --> 00:31:51,000 [Nate] Printf ("ჩვენ ვნახეთ ის \ n"); 445 00:31:51,000 --> 00:31:56,000 წინააღმდეგ შემთხვევაში-I'm აპირებს დაიწყოს აკეთებს რაღაც განსხვავებული აქ. 446 00:31:56,000 --> 00:32:00,000 მე ვაპირებ დაიწყება აყენებს braces გარშემო თუ განცხადებებს ყველა დროის 447 00:32:00,000 --> 00:32:05,000 მხოლოდ იმიტომ, რომ თუ დავუმატებთ მეტი პერსონალი, მაშინ 448 00:32:05,000 --> 00:32:07,000 ჩვენ არ მიიღოს compilers. 449 00:32:07,000 --> 00:32:09,000 Yeah, სემ. თქვენ მოხვდით წერტილი. 450 00:32:09,000 --> 00:32:12,000 პრობლემა ისაა, რომ შუაში წარმოადგენს პოზიცია მასივი, 451 00:32:12,000 --> 00:32:15,000 მაგრამ თქვენ უკვე შეგიძლიად წარმოადგინოს ღირებულების რომ პოზიცია მასივი. 452 00:32:15,000 --> 00:32:17,000 სწორედ დიდი წერტილი. 453 00:32:17,000 --> 00:32:19,000 ხომ ყველას გვესმის რა სემ განაცხადა? 454 00:32:19,000 --> 00:32:22,000 მისი თქმით, შუაში როგორც არის 455 00:32:22,000 --> 00:32:28,000 წარმოადგენს მხოლოდ პოზიცია მასივი, მაგრამ ეს არ იქნება ნამდვილი ელემენტი მასივი. 456 00:32:28,000 --> 00:32:30,000 თუ ფიქრობთ კოდი როგორც წერილობითი ახლავე, 457 00:32:30,000 --> 00:32:35,000 თუ დავაკვირდებით ამ მასივი ქვემოთ აქ, რომელსაც აქვს 8 ელემენტების ის, 458 00:32:35,000 --> 00:32:39,000 რა არის ღირებულება შუაში იქნება ამ ფუნქციის? 459 00:32:39,000 --> 00:32:41,000 [სტუდენტური] 4. 460 00:32:41,000 --> 00:32:45,000 [Nate] 4. 461 00:32:45,000 --> 00:32:51,000 თუ ჩვენ ვეძებთ ნომერი 4 - 462 00:32:51,000 --> 00:32:54,000 და ჩვენ შეგვიძლია მხოლოდ აწარმოებს ამ კოდი და ამით ცოტა სევდიანი სახე აქ 463 00:32:54,000 --> 00:32:58,000 რადგან ჩვენ ვერ მიაგნეს-თუ ჩვენ აწარმოებს ამ კოდი 464 00:32:58,000 --> 00:33:04,000 როგორც არის ახლა, ეს ატვირთვა, მშენებლობა, ნება მომეცით გადახვევა down, 465 00:33:04,000 --> 00:33:09,000 და თუ ჩვენ ვეძებთ ნომერი 4, 466 00:33:09,000 --> 00:33:18,000 ჩვენ ვნახეთ, მაგრამ ჩვენ ვერ ამ printf დიახ. 467 00:33:18,000 --> 00:33:23,000 ერთი მიზეზი ის არის, რომ ჩვენ არ იქნება TRUE, 468 00:33:23,000 --> 00:33:26,000 მაგრამ არც ჩვენ ნამდვილად იპოვის ნომერი 4? 469 00:33:26,000 --> 00:33:28,000 და სემ ამბობს არ. 470 00:33:28,000 --> 00:33:31,000 რა მივიღეთ მოვძებნოთ? 471 00:33:31,000 --> 00:33:35,000 ჩვენ ნამდვილად ნაპოვნია შუაში, რომელიც, თუ დავაკვირდებით მასივი ქვემოთ აქ, 472 00:33:35,000 --> 00:33:38,000 ეს იქნება ელემენტს საათზე ინდექსი 4 რომ ჩვენ შევხედავთ, 473 00:33:38,000 --> 00:33:42,000 რაც 23. 474 00:33:42,000 --> 00:33:46,000 >> როგორ ჩვენ რეალურად კიდევ რომ ელემენტს დროს შუაში 475 00:33:46,000 --> 00:33:48,000 და არა მხოლოდ შუაში თავად? 476 00:33:48,000 --> 00:33:52,000 [სტუდენტური] ჩვენ შევიდოდა char ან რაღაც? 477 00:33:52,000 --> 00:33:55,000 რა, რომ გავაკეთოთ, უბრალოდ გარეთ ცნობისმოყვარეობა? 478 00:33:55,000 --> 00:33:57,000 შეგიძლიათ უფრო დეტალურად შევჩერდე? 479 00:33:57,000 --> 00:34:02,000 თქვენ უნდა გარდაქმნას პოზიცია ნომერი, 480 00:34:02,000 --> 00:34:05,000 ასე რომ თქვენ მოხვდით გარკვეული კავშირი-ვფიქრობ, char, მაგრამ ეს არ უნდა იყოს. 481 00:34:05,000 --> 00:34:07,000 ჰო, კარგი წერტილი. 482 00:34:07,000 --> 00:34:12,000 ჩვენ ბევრი აკეთებს ბევრი ამ კონვერტაცია პოზიციების შევიდა სიმბოლო, ეს გმირები, 483 00:34:12,000 --> 00:34:14,000 პირველ ორ პრობლემას კომპლექტი. 484 00:34:14,000 --> 00:34:18,000 თურმე აქ, ამ თითქმის მსგავსი 485 00:34:18,000 --> 00:34:24,000 წვდომის შ ხასიათის ფარგლებში სიმებიანი, თუ ეს აზრი. 486 00:34:24,000 --> 00:34:30,000 აქ გვინდა წვდომისათვის შუაში ელემენტს. 487 00:34:30,000 --> 00:34:34,000 როგორ გავაკეთოთ ეს? 488 00:34:34,000 --> 00:34:39,000 კევინ, გაქვთ რაიმე შემოთავაზება, თუ როგორ შეიძლება ამის გაკეთება? 489 00:34:39,000 --> 00:34:44,000 თქვენ შეიძლება არ haystack, ღია bracket, შუა რიცხვებში, დახურული ფრჩხილი. 490 00:34:44,000 --> 00:34:46,000 შეგიძლიათ წერთ, რომ ჩვენთვის? 491 00:34:46,000 --> 00:34:51,000 შეინახეთ იგი აქ, და ჩვენ გაიყვანოს, რომ up. 492 00:34:51,000 --> 00:34:56,000 ჩვენ ვეძებთ ამ ხაზის 9, 493 00:34:56,000 --> 00:34:59,000 და ჩვენ ხვდებიან, რომ ჩვენ არ გვინდა, რომ შეადაროთ ნემსი უნდა შუაში, 494 00:34:59,000 --> 00:35:03,000 მაგრამ ამის ნაცვლად, ჩვენ გვინდა შევადაროთ ნემსი 495 00:35:03,000 --> 00:35:07,000 რათა ელემენტს პოზიციაში შუაში ფარგლებში ჩვენი haystack მასივი. 496 00:35:07,000 --> 00:35:10,000 ზემოთ. 497 00:35:10,000 --> 00:35:12,000 იქ ჩვენ წავიდეთ. 498 00:35:12,000 --> 00:35:15,000 ჰო, გამოიყურება საკმაოდ კარგი, თუ (ნემსი == haystack [შუაში]). 499 00:35:15,000 --> 00:35:18,000 ჩვენ ვნახეთ ის. 500 00:35:18,000 --> 00:35:22,000 ახლა თუ ჩვენ აწარმოებს კოდი-we'll back up ოდნავ- 501 00:35:22,000 --> 00:35:26,000 იგი ადგენს, ის მუშაობს, და ახლა თუ ვეძებთ 4, 502 00:35:26,000 --> 00:35:30,000 ჩვენ ვერ, რადგან ახლა ჩვენ რეალურად მიღების ნომერი 23. 503 00:35:30,000 --> 00:35:33,000 ჩვენ ვიღებთ ღირებულების 23, და რომ ის, რაც ჩვენ შედარებით ჩვენი ნემსი. 504 00:35:33,000 --> 00:35:35,000 მაგრამ ეს კარგია. სწორედ ნაბიჯი სწორი მიმართულებით. 505 00:35:35,000 --> 00:35:37,000 >> რაც ჩვენ ვცდილობთ გავაკეთოთ. 506 00:35:37,000 --> 00:35:40,000 ჩვენ არ ვცდილობთ, რომ შეადაროთ ნემსი წინააღმდეგ პოზიციების მასივი 507 00:35:40,000 --> 00:35:44,000 არამედ წინააღმდეგ ფაქტობრივი ელემენტების მასივი. 508 00:35:44,000 --> 00:35:49,000 თუ ჩვენ ვიხსენებთ ერთხელ ახლა ჩვენი შემდეგი ნაბიჯი ალგორითმი, 509 00:35:49,000 --> 00:35:51,000 რა არის შემდეგი ნაბიჯი? 510 00:35:51,000 --> 00:35:57,000 ლეილა უკვე მოგახსენეთ ეს მოკლედ. 511 00:35:57,000 --> 00:36:00,000 [სტუდენტური] შეამოწმეთ, რომ ეს მეტია ან ნაკლები და შემდეგ გადაწყვიტოს, რომელი გზა გადავა. 512 00:36:00,000 --> 00:36:03,000 [Nate] ჰო, ისე როგორ იქნებოდა გავაკეთოთ, რომ? 513 00:36:03,000 --> 00:36:07,000 შეგიძლიათ დააყენა ზოგიერთ-I'll გადარჩენა ამ ვერსიასთან, 514 00:36:07,000 --> 00:36:13,000 და თუ თქვენც არ დაიშურებთ რამდენიმე ხაზები, რომ ყველაფერს გააკეთებს, რომ. 515 00:36:13,000 --> 00:36:15,000 Yeah, Charlotte. >> მე მაქვს შეკითხვა. 516 00:36:15,000 --> 00:36:19,000 არ უნდა იყოს შუაში - 1, რადგან პირველი რაც არის 517 00:36:19,000 --> 00:36:26,000 ეს 0 ინდექსირებული ასე რომ, თუ ჩვენ 4, ეს არ არის რეალურად ხასიათი ჩვენ ვეძებთ? 518 00:36:26,000 --> 00:36:30,000 დიახ, და სხვა პრობლემა რომ არის- 519 00:36:30,000 --> 00:36:35,000 რომ დიდი დაჭერა, რადგან რა ხდება მოხვდნენ ხდება შესაძლოა 520 00:36:35,000 --> 00:36:42,000 თუ ჩვენ შენარჩუნება მოძრავი და ჩვენ არ ოდესმე შეცვალოს თავდაპირველად? 521 00:36:42,000 --> 00:36:46,000 ვფიქრობ, რაც ჩვენ შეიძლება დასრულდება მდე აკეთებს ცდილობს შედიხართ 522 00:36:46,000 --> 00:36:49,000 ელემენტს დროს მე -8 პოზიცია მასივი, 523 00:36:49,000 --> 00:36:53,000 რაც ამ შემთხვევაში არ არსებობს. 524 00:36:53,000 --> 00:36:56,000 ჩვენ გვსურს რომ გარკვეული აღრიცხვის ფაქტი 525 00:36:56,000 --> 00:36:59,000 რომ ჩვენ გვაქვს გარკვეული ნულოვანი ინდექსირებას. 526 00:36:59,000 --> 00:37:05,000 [Charlotte] უკაცრავად, ამას ვგულისხმობდი შუაში - 1 წლის კვადრატულ ფრჩხილებში. 527 00:37:05,000 --> 00:37:08,000 ჩვენ შეგვიძლია გავაკეთოთ, რომ. 528 00:37:08,000 --> 00:37:10,000 ჩვენ დავბრუნდებით ამ საკითხს ოდნავ. 529 00:37:10,000 --> 00:37:13,000 ერთხელ ჩვენ ვიწყებთ მისაღებად ფაქტობრივი looping, 530 00:37:13,000 --> 00:37:16,000 სწორედ მაშინ ჩვენ ვხედავ ამ მოვიდეს პიესა. 531 00:37:16,000 --> 00:37:21,000 ამ დროისათვის, ჩვენ შეგვიძლია ამის გაკეთება, მაგრამ თქვენ მთლიანად უფლება. 532 00:37:21,000 --> 00:37:28,000 რომ ნულოვანი ინდექსირებას ექნება ეფექტი, რომ ჩვენ გვჭირდება გათვალისწინებით. 533 00:37:28,000 --> 00:37:30,000 ვნახოთ. 534 00:37:30,000 --> 00:37:34,000 >> როგორ არის მეტი და ნაკლები-? 535 00:37:34,000 --> 00:37:36,000 [სტუდენტური] მივიღო როგორ მეტია და ნაკლები ნაწილი. 536 00:37:36,000 --> 00:37:41,000 მე უბრალოდ არ იყო დარწმუნებული, თუ რა უნდა ბეჭდვა თუ შეამჩნევთ, რომ ნაკლები haystack შუაში ან მეტი. 537 00:37:41,000 --> 00:37:43,000 აქ შეგიძლიათ შეინახოთ რა I've- 538 00:37:43,000 --> 00:37:47,000 [Nate] ჰო, თუ თქვენ შეინახავთ რასაც თქვენ მოხვდით, და ჩვენ გაიყვანოს it up. 539 00:37:47,000 --> 00:37:49,000 იქ ჩვენ წავიდეთ. 540 00:37:49,000 --> 00:37:51,000 [სტუდენტური] და მე ზუსტად კითხვის ნიშნები, თუ რა არ ვიცოდი. 541 00:37:51,000 --> 00:37:54,000 [Nate], რომ გამოიყურება დიდი. 542 00:37:54,000 --> 00:37:58,000 აქ გვაქვს კითხვის ნიშნები, რადგან ჩვენ ჯერ კიდევ არ ვიცით 543 00:37:58,000 --> 00:38:06,000 რაც ჩვენ ვაპირებთ საკმაოდ გავაკეთოთ ამჟამად. 544 00:38:06,000 --> 00:38:12,000 რა გვინდა გავაკეთოთ-oops, გვაქვს გარკვეული braces ყველა ხმაურიანი ჩვენზე. 545 00:38:12,000 --> 00:38:15,000 ჩვენ არ გაასწორებთ ამ braces. 546 00:38:15,000 --> 00:38:19,000 იქ ჩვენ წავიდეთ. 547 00:38:19,000 --> 00:38:22,000 და მერე რა გვინდა გავაკეთოთ, ჩვენი ალგორითმი, 548 00:38:22,000 --> 00:38:27,000 თუ ჩვენ არ იპოვოს ნემსი? 549 00:38:27,000 --> 00:38:32,000 ამბობენ, რომ საქმე ნემსი ნაკლებია ვიდრე ჩვენ შევხედავთ. კევინ. 550 00:38:32,000 --> 00:38:34,000 მხოლოდ შევხედოთ მარცხენა ნახევარში. 551 00:38:34,000 --> 00:38:40,000 მარჯვენა, ისე ჩვენ დააყენა კომენტარი აქ რომ ამბობს "შეხედეთ მარცხენა ნახევარი." 552 00:38:40,000 --> 00:38:46,000 და თუ ნემსის მეტია haystack დროს შუაში, რა გვჭირდება ჩვენ უნდა გავაკეთოთ? 553 00:38:46,000 --> 00:38:48,000 [სტუდენტური] მაშინ შევხედოთ მარჯვენა ნახევარში. 554 00:38:48,000 --> 00:38:53,000 შეხედეთ მარჯვენა ნახევარში, "შეხედეთ მარჯვენა ნახევარში." 555 00:38:53,000 --> 00:38:58,000 არც ისე shabby. 556 00:38:58,000 --> 00:39:05,000 Okay, ამრიგად, ამ ეტაპზე, რამ ეძებენ საკმაოდ კარგი. 557 00:39:05,000 --> 00:39:13,000 კოდის პრობლემა როგორც წერილობითი არის რა? 558 00:39:13,000 --> 00:39:15,000 [სტუდენტური] თქვენ არ endpoints ამისთვის halves. 559 00:39:15,000 --> 00:39:18,000 მარჯვენა, ჩვენ არ გვაქვს წერტილი ამისთვის halves. 560 00:39:18,000 --> 00:39:20,000 ჩვენ ასევე მხოლოდ აპირებს გავლა ამ ერთხელ. 561 00:39:20,000 --> 00:39:23,000 ჩვენ მხოლოდ აპირებს შევხედოთ ერთი შუაში. 562 00:39:23,000 --> 00:39:27,000 ან ელემენტს არსებობს, ან მას არ. 563 00:39:27,000 --> 00:39:34,000 იმისათვის, რომ შეავსოთ ეს, ჩვენ გვჭირდება გარკვეული განმეორება. 564 00:39:34,000 --> 00:39:39,000 ჩვენ უნდა შევინარჩუნოთ იმეორებს მანამ, სანამ ჩვენ რომ 565 00:39:39,000 --> 00:39:43,000 არც ელემენტი იქ, რადგან ჩვენ დავიწროებულ ქვემოთ და საბოლოოდ ი, 566 00:39:43,000 --> 00:39:46,000 ან ის არ არსებობს, რადგან ჩვენ გადახედა ყველა რამ 567 00:39:46,000 --> 00:39:52,000 შესაბამის halves of array და აღმოაჩინა, რომ არაფერი არ არის იქ. 568 00:39:52,000 --> 00:39:56,000 >> როდესაც გვაქვს ეს განმეორება მიმდინარეობს, რასაც ჩვენ ვაპირებთ გამოვიყენოთ? 569 00:39:56,000 --> 00:39:58,000 [სტუდენტური] loop. 570 00:39:58,000 --> 00:40:00,000 გარკვეული loop. დიახ. 571 00:40:00,000 --> 00:40:03,000 [სტუდენტური] გავაკეთოთ do-ხოლო მარყუჟის და აქვს ეს ასე და შემდეგ, ხოლო 572 00:40:03,000 --> 00:40:10,000 ნემსი არ თანაბარი-I'm არ არის დარწმუნებული, სადაც მივდიოდი, რომ. 573 00:40:10,000 --> 00:40:18,000 მაგრამ სახის მოსწონს გავაკეთოთ, რომ სანამ ის არ თანაბარი ღირებულება, რომელიც მომხმარებლის შეყვანის. 574 00:40:18,000 --> 00:40:21,000 ჰო, ასე რომ ვნახოთ, თუ როგორ შეიძლება ამ წერენ თავად? 575 00:40:21,000 --> 00:40:23,000 თქვენ თქვით მოდით გამოვიყენოთ do-ხოლო loop. 576 00:40:23,000 --> 00:40:26,000 სად გავაკეთოთ დაწყება? 577 00:40:26,000 --> 00:40:33,000 [სტუდენტური] მარჯვენა შემდეგ ზომა / 2. 578 00:40:33,000 --> 00:40:42,000 [Nate] Okay, და რას აპირებს? 579 00:40:42,000 --> 00:40:44,000 ჩვენ შეავსონ ხოლო მოგვიანებით. 580 00:40:44,000 --> 00:40:46,000 რას აპირებს? 581 00:40:46,000 --> 00:40:49,000 [სტუდენტური] არ გვინდა ყველაფერი პერსონალის გვაქვს თუ ნაწილი? 582 00:40:49,000 --> 00:40:52,000 [Nate] Do ყველა ამ პერსონალის, დიდი. 583 00:40:52,000 --> 00:40:55,000 ასლი და პასტა. 584 00:40:55,000 --> 00:40:59,000 ოჰ, კაცი. 585 00:40:59,000 --> 00:41:03,000 ვნახოთ, თუ ეს სამუშაოები, შევძლებთ თუ არა ამ tab დასრულდა. 586 00:41:03,000 --> 00:41:08,000 ლამაზია. 587 00:41:08,000 --> 00:41:16,000 Okay, და ჩვენ გადარჩენა ამ ფუნქციას იმისთვის, ბიჭებს გააჩნიათ. 588 00:41:16,000 --> 00:41:21,000 ყველა უფლება და ჩვენ ვაპირებთ ამის გაკეთებას, ხოლო- 589 00:41:21,000 --> 00:41:25,000 რა იყო, ხოლო მდგომარეობა იყავით შემდეგ? 590 00:41:25,000 --> 00:41:31,000 [სტუდენტური] მიუხედავად იმისა, რომ ნემსი არ თანასწორი, ისე მოსწონს ძახილის წერტილი. 591 00:41:31,000 --> 00:41:37,000 მაგრამ არ ვარ დარწმუნებული, ზუსტად რა, რომ ჯერ კიდევ არ არის. 592 00:41:37,000 --> 00:41:39,000 [Nate] ჰო, ეს არის ერთი გზა ამის გაკეთება. 593 00:41:39,000 --> 00:41:41,000 სემ, გაქვთ კომენტარის გაკეთება? 594 00:41:41,000 --> 00:41:43,000 [სემ] მე გაიხსენა, როდესაც შევხედე videos, 595 00:41:43,000 --> 00:41:48,000 მე მივიღე Screenshot ერთი მსგავსი, როდესაც ჩვენ გავაკეთეთ pseudocode მას, 596 00:41:48,000 --> 00:41:52,000 გარკვეული შორის ურთიერთობა max და min. 597 00:41:52,000 --> 00:41:58,000 ვფიქრობ, ეს იყო რაღაც მსგავსი თუ max ოდესმე ნაკლები min. 598 00:41:58,000 --> 00:42:00,000 Got It. 599 00:42:00,000 --> 00:42:04,000 [სემ] ან მინდა თუ მაქსიმალური არის არანაკლებ min ან რამე მაგდაგვარს, 600 00:42:04,000 --> 00:42:06,000 იმიტომ, რომ ნიშნავს, რომ თქვენ ჩხრეკა ყველაფერი. 601 00:42:06,000 --> 00:42:13,000 >> ჰო, ისე, რას ჟღერს, როგორც max და min იქნა გულისხმობდა? 602 00:42:13,000 --> 00:42:16,000 [სემ] ფასეულობები რომ-რიცხვებით, რომლებიც შეიცვლება 603 00:42:16,000 --> 00:42:18,000 შედარებით, სადაც ჩვენ დააყენა შუაში. 604 00:42:18,000 --> 00:42:20,000 სწორედ. 605 00:42:20,000 --> 00:42:24,000 [სემ] იმ მომენტისთვის, ის აპირებს [inaudible] გამოთვლა max და min. 606 00:42:24,000 --> 00:42:29,000 შუაში არის ამ max და min იდეა. 607 00:42:29,000 --> 00:42:35,000 ამჯამად რომ აზრი FOLKS? 608 00:42:35,000 --> 00:42:39,000 თუ ჩვენ უნდა დაწყებულიყო ეძებს თუ როგორ ვაპირებთ ამის გაკეთებას iteration, 609 00:42:39,000 --> 00:42:43,000 თქვენ მთლიანად უფლება, რომ ჩვენ გვინდა გამოვიყენოთ გარკვეული do-ხოლო loop. 610 00:42:43,000 --> 00:42:49,000 მაგრამ ვფიქრობ, თუ ჩვენ გვახსოვს, რა ხდება ადგილზე ამ მასივი 611 00:42:49,000 --> 00:42:53,000 და რაც რეალურად ხდება-I'm აპირებს დაწეროს აქ- 612 00:42:53,000 --> 00:42:58,000 პირველივე iteration ორობითი ძებნა, ჩვენ გვაქვს- 613 00:42:58,000 --> 00:43:05,000 მე ვაპირებ გამოვიყენო ბ და ე აღინიშნოს დასაწყისია. 614 00:43:05,000 --> 00:43:10,000 და მერე ბოლომდე ჩვენი მასივი. 615 00:43:10,000 --> 00:43:14,000 ჩვენ ვიცით, რომ დასაწყისში არის 4 უფლება მეტი აქ, 616 00:43:14,000 --> 00:43:18,000 და ჩვენ ვიცით, რომ ბოლომდე არის 108. 617 00:43:18,000 --> 00:43:23,000 Say ჩვენ ეძებს ნომერი 15. 618 00:43:23,000 --> 00:43:27,000 პირველად ამის გაკეთება, როგორც ჩვენ ვნახეთ ადრე, 619 00:43:27,000 --> 00:43:30,000 შუაში არის ან იქნება 16 ან 23 620 00:43:30,000 --> 00:43:34,000 დამოკიდებულია თუ როგორ გამოვთვალოთ ნივთების. 621 00:43:34,000 --> 00:43:37,000 მას შემდეგ, რაც თანაბრად გამყოფი შუა მისცემს ჩვენს ამ სივრცეში 622 00:43:37,000 --> 00:43:42,000 შორის 16 და 23, რომ ჩვენ არ შეგვიძლია თანაბრად გაყოფა ეს 623 00:43:42,000 --> 00:43:47,000 ან გაყოფა და კიდევ ერთი ჭეშმარიტი შუაში. 624 00:43:47,000 --> 00:43:49,000 ჩვენ შევხედოთ 16. 625 00:43:49,000 --> 00:43:55,000 ჩვენ ვაცნობიერებთ, "Hey, 16> 15 რომ ჩვენ ვეძებთ." 626 00:43:55,000 --> 00:43:59,000 შემდეგ შევხედოთ მარცხენა ნახევარში მასივი 627 00:43:59,000 --> 00:44:03,000 რა ჩვენ დასრულდება მდე აკეთებს არის discarding 628 00:44:03,000 --> 00:44:07,000 მთელი ამ ზედა ნაწილი 629 00:44:07,000 --> 00:44:16,000 და უთხრა: "Okay, ახლა ჩვენი Endpoint იქნება აქ." 630 00:44:16,000 --> 00:44:22,000 შემდეგი iteration ჩვენი მარყუჟის, ჩვენ ახლა ეძებს ამ მასივი, 631 00:44:22,000 --> 00:44:25,000 ეფექტურად რომელმაც განადგურდეს ამ ნაწილის რადგან ახლა 632 00:44:25,000 --> 00:44:30,000 თუ ჩვენ აღების შუაში უნდა იყოს სხვაობა დასაწყისი და დასასრული, 633 00:44:30,000 --> 00:44:34,000 ჩვენ ჩვენი შუაში უნდა იყოს 8, 634 00:44:34,000 --> 00:44:40,000 რაც ჩვენ შეგვიძლია მაშინ შეამოწმოთ 8 ენახა სადაც დაკავშირებით ხმების ჩვენ ვეძებთ, 635 00:44:40,000 --> 00:44:44,000 15, ნახავთ, რომ 15 მეტია, 636 00:44:44,000 --> 00:44:49,000 ამიტომ ჩვენ უნდა გადავიდეთ მარჯვნივ ნაწილი სიაში, 637 00:44:49,000 --> 00:44:51,000 რაც ჩვენ ვიცით, რადგან ჩვენ ადამიანები, და ვხედავთ მას. 638 00:44:51,000 --> 00:44:54,000 ჩვენ ვიცით, რომ უფლება ნაწილი იქნება, სადაც ჩვენ ის, 639 00:44:54,000 --> 00:45:01,000 მაგრამ კომპიუტერი არ იცის, რომ, ასე რომ ჩვენ ყველაფერს გავაკეთებთ არის ჩვენ გამოგიგზავნით რეალურად 640 00:45:01,000 --> 00:45:04,000 ეს ახვიდეთ და ახლა დასაწყისი და დასასრული 641 00:45:04,000 --> 00:45:11,000 არის იგივე ადგილზე, ასე რომ შუაში ხდება მხოლოდ ნომრის სია იმ წერტილს, 642 00:45:11,000 --> 00:45:16,000 რაც 15 წლის და ჩვენ ვერ. 643 00:45:16,000 --> 00:45:21,000 ამჯამად რომ დაიღვარა ზოგიერთი შუქი სადაც ეს მთელი max და min ნოტაცია აპირებს, 644 00:45:21,000 --> 00:45:24,000 შენახვა ტრეკზე წერტილი of მასივი, რათა გაერკვნენ 645 00:45:24,000 --> 00:45:35,000 როგორ ვიწრო რამ ქვემოთ? 646 00:45:35,000 --> 00:45:42,000 >> რა მოხდება, თუ ეს არ იყო ტოლია 15 არის? 647 00:45:42,000 --> 00:45:52,000 რა მოხდება, თუ ჩვენ ეძებდნენ 15 და, ნაცვლად, ეს რიცხვი ასევე 16? 648 00:45:52,000 --> 00:45:54,000 მე მინდა ვთქვა, "ო, ეს უფრო დიდი. 649 00:45:54,000 --> 00:45:57,000 ჩვენ გვინდა დავუბრუნდეთ მარცხენა. " 650 00:45:57,000 --> 00:46:01,000 და ჩვენ გვინდა გადაადგილება ჩვენი ვებ მარჯვნივ, 651 00:46:01,000 --> 00:46:06,000 სადაც წერტილი გვაქვს Endpoint იქნებოდა კონფლიქტის. 652 00:46:06,000 --> 00:46:09,000 იგი ვერ შეძლებს, რათა მოძებნოთ ნებისმიერი მეტი ელემენტები 653 00:46:09,000 --> 00:46:13,000 რადგან ახლა ჩვენ გვაქვს ჩვენი Endpoint და ჩვენი დასაწყისში წერტილი, 654 00:46:13,000 --> 00:46:16,000 ჩვენი მაქსიმალური და ჩვენი წთ, ახლა flipped. 655 00:46:16,000 --> 00:46:23,000 ჩვენ ძებნის მთელი მასივი. ჩვენ ვერ პოულობენ არაფრის. 656 00:46:23,000 --> 00:46:27,000 სწორედ წერტილი, რომლის დროსაც ჩვენ ავღნიშნო მინდა ვთქვა, "Okay, ჩვენ შევწყვეტთ ამ ალგორითმი. 657 00:46:27,000 --> 00:46:34,000 ჩვენ არ მოიძებნება რამე. ჩვენ ვიცით, რომ ეს არ აქ. " 658 00:46:34,000 --> 00:46:36,000 როგორ ხდება ამ აპირებს? 659 00:46:36,000 --> 00:46:40,000 [სტუდენტური] როგორ ზუსტად ამჯამად კომპიუტერი გადართოთ ბოლოს? 660 00:46:40,000 --> 00:46:45,000 როგორ ამჯამად ბოლომდე დასრულდება მდე დაწყებამდე? 661 00:46:45,000 --> 00:46:48,000 ბოლოს მთავრდება დაწყებამდე 662 00:46:48,000 --> 00:46:54,000 გამო მათემატიკის, რომ ჩვენ ვაპირებთ ყოველ ჯერზე ჩვენ ამას ვაკეთებთ. 663 00:46:54,000 --> 00:47:00,000 გზა ჩვენ სვოპ არის თუ გადავხედავთ ძალიან პირველად ვაკეთებთ ამ swap 664 00:47:00,000 --> 00:47:03,000 სადაც ჩვენ გვყავს დასაწყისი 4 და ბოლოს 665 00:47:03,000 --> 00:47:13,000 ყველა გზა ქვემოთ 108 და ჩვენი შუაში, ამბობენ, საღამოს 16 - 666 00:47:13,000 --> 00:47:20,000 მე ვაპირებ აღადგინოთ ამ თავში 15-თუ ჩვენ ვეძებთ 15, 667 00:47:20,000 --> 00:47:25,000 ვიცოდით, რომ ის, რაც ჩვენ გავაკეთეთ, როცა გადავამოწმეთ 16 და დაინახა, რომ ეს იყო უფრო მეტი 668 00:47:25,000 --> 00:47:28,000 და უნდოდა გაუქმება მთელი უფლება ნაწილი სიაში, 669 00:47:28,000 --> 00:47:36,000 ჩვენ ვნახეთ, რომ ის, რაც ჩვენ გვინდოდა ჯანმრთელობის სფეროში გაგვეკეთებინა არის გადაადგილება ამ ვებ უფლება აქ. 670 00:47:36,000 --> 00:47:44,000 ეფექტურად, ვებ გაბმულ გადავიდა ერთი ადრე შუაში. 671 00:47:44,000 --> 00:47:48,000 ანალოგიურად, როდესაც ეს გავაკეთეთ iteration of ალგორითმი 672 00:47:48,000 --> 00:47:51,000 და შუაში იყო 8, 673 00:47:51,000 --> 00:47:55,000 აღმოჩნდა, რომ 8 <15, ამიტომ გვინდოდა გადაადგილება ბ 674 00:47:55,000 --> 00:48:00,000 ერთი წარსულში შუაში. 675 00:48:00,000 --> 00:48:07,000 ახლა, დასაწყისი და დასასრული ორივე ერთად ამ 15. 676 00:48:07,000 --> 00:48:10,000 >> თუ ჩვენ გვინდა ხდებოდა, რომ გადახედეთ სხვა ღირებულების, არა 15, 677 00:48:10,000 --> 00:48:14,000 ან თუ ამ 15 ჰქონდა ნაცვლად ყოფილიყო 16, 678 00:48:14,000 --> 00:48:20,000 ჩვენ არ გამოვლინდა, რომ ვებ გვინდა ვიაროთ ერთი ადრე შუაში. 679 00:48:20,000 --> 00:48:33,000 ახლა ვებ იქნებოდა იქ flipped ნაკლები ბ. 680 00:48:33,000 --> 00:48:39,000 მოდით გავლა როგორ ჩვენ ფაქტობრივად დასრულდება მდე კოდირების ეს ალგორითმი. 681 00:48:39,000 --> 00:48:44,000 ჩვენ ვიცით, რომ ჩვენ გვინდა ამ შუაში გაანგარიშებით. 682 00:48:44,000 --> 00:48:48,000 ჩვენ ვიცით ასევე, რომ ჩვენ გვინდა აკონტროლოთ დასაწყისში და დასასრულს მასივი 683 00:48:48,000 --> 00:48:51,000 ჩვენი მიმდინარე მასივი ასე შეგვიძლია გაერკვნენ 684 00:48:51,000 --> 00:48:56,000 სადაც ეს მარცხენა ნახევარში სია და სადაც მარჯვენა ნახევარში სია. 685 00:48:56,000 --> 00:49:03,000 ჩვენ ამას ვაკეთებთ, რომ არც დაიწყება და დასრულდება, 686 00:49:03,000 --> 00:49:07,000 ან შეგვიძლია მოვუწოდებთ მათ min და max. 687 00:49:07,000 --> 00:49:10,000 მე გამოიყენოთ დაიწყება და დასრულდება ამ დროს. 688 00:49:10,000 --> 00:49:15,000 როდესაც ჩვენ ვიწყებთ, თუ ჩვენ ვიხსენებთ ჩვენი მაგალითი ქვემოთ აქ, 689 00:49:15,000 --> 00:49:20,000 ჩვენი დასაწყისში შეიქმნა დასაბამიდანვე მასივი, როგორც ბუნებრივი. 690 00:49:20,000 --> 00:49:25,000 რა ინდექსი იყო ეს? რა უნდა დაიწყოს ჩვენი იყოს? 691 00:49:25,000 --> 00:49:27,000 დანიელ. 692 00:49:27,000 --> 00:49:30,000 [დანიელ] Haystack [0]. 693 00:49:30,000 --> 00:49:37,000 [Nate] ჰო, ამიტომ ვერ ვაყენებთ მას ტოლი haystack [0]. 694 00:49:37,000 --> 00:49:40,000 პრობლემა, თუმცა, ის არის, რომ ამ გვაძლევს არ პოზიცია პირველი ელემენტს. 695 00:49:40,000 --> 00:49:45,000 ეს გვაძლევს მაჩვენებელი პირველ ელემენტს ან ფაქტობრივი ღირებულება რომ პირველი პოზიცია. 696 00:49:45,000 --> 00:49:47,000 [სტუდენტური] ეს ხელს კონვერრტაციისთვის .20? 697 00:49:47,000 --> 00:49:52,000 [Nate] რა ამ ყველაფერს გააკეთებს IS-კარგად, იგი ამას არ გააკეთებს ნებისმიერი კონვერტაცია. 698 00:49:52,000 --> 00:49:56,000 როგორი იქნება გააკეთოთ ეს შეინახავს 4 წელს დაიწყება, 699 00:49:56,000 --> 00:49:59,000 და მაშინ ეს იქნება რთული, რათა შედარებები წინააღმდეგ დაიწყოს 700 00:49:59,000 --> 00:50:03,000 რადგან დასაწყისი იქნება ჩატარების ღირებულება 4, 701 00:50:03,000 --> 00:50:06,000 რაც დასაწყისში ჩვენი მასივი, 702 00:50:06,000 --> 00:50:08,000 მაგრამ ჩვენ გვინდა, რომ აკონტროლოთ ინდექსების მასივში 703 00:50:08,000 --> 00:50:11,000 როგორც ეწინააღმდეგებოდა ღირებულებებს. 704 00:50:11,000 --> 00:50:17,000 ჩვენ რეალურად გამოიყენოს 0, იგრძნობა. 705 00:50:17,000 --> 00:50:20,000 ამისთვის ბოლოს მასივი-Charlotte მოიტანა ეს ყველაფერი ცოტა ადრე. 706 00:50:20,000 --> 00:50:23,000 ეს არის სადაც ჩვენ გაითვალისწინოს ნულოვანი ინდექსირებას. 707 00:50:23,000 --> 00:50:25,000 >> Charlotte, რა ბოლომდე მასივი? 708 00:50:25,000 --> 00:50:28,000 რა არის მაჩვენებელი წლის ბოლომდე? 709 00:50:28,000 --> 00:50:30,000 [Charlotte] ზომა - 1. 710 00:50:30,000 --> 00:50:32,000 ჰო, და რომელიც ზომა უნდა გამოვიყენოთ? 711 00:50:32,000 --> 00:50:35,000 უნდა გამოვიყენოთ კაპიტალის ზომა ან ამას ზომა? 712 00:50:35,000 --> 00:50:37,000 Capital ზომა. 713 00:50:37,000 --> 00:50:42,000 ამ შემთხვევაში, ჩვენ შეგვიძლია გამოვიყენოთ კაპიტალის ზომა. 714 00:50:42,000 --> 00:50:45,000 თუ გვინდოდა ამ ფუნქციის იქნება პორტატულ 715 00:50:45,000 --> 00:50:48,000 და გამოიყენოთ ეს ფუნქცია სხვა პროგრამები, 716 00:50:48,000 --> 00:50:50,000 ჩვენ შეგვიძლია რეალურად გამოიყენოს ამას ზომა. 717 00:50:50,000 --> 00:50:52,000 ეს ჯარიმა ძალიან. 718 00:50:52,000 --> 00:51:01,000 მაგრამ შარლოტა სრულიად უფლება, რომ ჩვენ გვინდა ზომა - 1. 719 00:51:01,000 --> 00:51:03,000 ამ ეტაპზე- 720 00:51:03,000 --> 00:51:05,000 [სტუდენტური] როგორ არის, რომ თქვენ შეგიძლიათ გამოიყენოთ ზედა ზომა? 721 00:51:05,000 --> 00:51:07,000 როგორ არის ის, რომ ჩვენ შეგვიძლია გამოვიყენოთ ზედა ზომა? 722 00:51:07,000 --> 00:51:13,000 თურმე ამ # განსაზღვრავს მართლაც, 723 00:51:13,000 --> 00:51:19,000 ქვეშ Hood, ტექსტი, როგორიცაა იპოვოთ და შეცვალოს, თუ ეს აზრი. 724 00:51:19,000 --> 00:51:24,000 როდესაც თქვენ კომპილაციის თქვენი კოდი, preprocessing ფაზა 725 00:51:24,000 --> 00:51:27,000 საქართველოს შემდგენელი გადის ფაილი, 726 00:51:27,000 --> 00:51:31,000 და ეს ეძებს ყველგან, რომ თქვენ წერილობითი კაპიტალის ზომა, 727 00:51:31,000 --> 00:51:39,000 და ეს ცვლის, რომ ტექსტი სიტყვასიტყვით ერთად 8, ისევე, როგორც, რომ. 728 00:51:39,000 --> 00:51:42,000 ამ თვალსაზრისით, ეს ძალიან განსხვავდება ცვლადი. 729 00:51:42,000 --> 00:51:45,000 იგი არ დასჭირდეს რაიმე სივრცეში მეხსიერებაში. 730 00:51:45,000 --> 00:51:52,000 ეს მარტივი ტექსტი შეცვალოს შეასრულა. 731 00:51:52,000 --> 00:51:57,000 ამ შემთხვევაში, ჩვენ ვაპირებთ გამოვიყენოთ ზომა. 732 00:51:57,000 --> 00:52:01,000 აქედან ჩვენ გვსურს რომ გარკვეული განმეორება, 733 00:52:01,000 --> 00:52:03,000 და ჩვენ სწორ გზაზე ჩვენს do-ხოლო loop. 734 00:52:03,000 --> 00:52:08,000 ჩვენ გვინდა, რომ რამე სანამ მდგომარეობა არ ფლობს უქმნით, 735 00:52:08,000 --> 00:52:12,000 და როგორც ჩვენ ვნახეთ ადრე, ჩვენ ვნახეთ, რომ მდგომარეობა 736 00:52:12,000 --> 00:52:19,000 მართლაც, რომ ჩვენ არ გვინდა ბოლომდე 737 00:52:19,000 --> 00:52:24,000 ნაკლები დაიწყოს. 738 00:52:24,000 --> 00:52:26,000 >> ეს არის ჩვენი შეჩერების პირობით. 739 00:52:26,000 --> 00:52:35,000 თუ ეს მოხდება, ჩვენ გვინდა შეჩერება და აცხადებენ, როგორიცაა, "Hey, ჩვენ ვერ არაფერი." 740 00:52:35,000 --> 00:52:43,000 გამოხატოს ამ, ჩვენ გვინდა გამოვიყენოთ გარკვეული loop. 741 00:52:43,000 --> 00:52:49,000 ამ შემთხვევაში, უნდა იყოს do-ხოლო მარყუჟის, ამისთვის მარყუჟის, ხოლო loop? 742 00:52:49,000 --> 00:52:51,000 ჩვენ გვყავს do-loop ხოლო აქ. 743 00:52:51,000 --> 00:52:53,000 თქვენ ბიჭები მოსწონს, რომ მიდგომა? 744 00:52:53,000 --> 00:52:59,000 როგორ ფიქრობთ, ჩვენ უნდა შევეცადოთ სხვადასხვა მიდგომა? 745 00:52:59,000 --> 00:53:01,000 კევინ, ნებისმიერი აზრები? 746 00:53:01,000 --> 00:53:06,000 ჩვენ შეგვეძლო ხოლო loop რადგან ჩვენ ვიცით, მაქსიმალური 747 00:53:06,000 --> 00:53:11,000 იქნება მეტი min სტარტზე მაინც. 748 00:53:11,000 --> 00:53:14,000 ჰო, ასე რომ არ არსებობს ინიციალიზაციისას რომ სჭირდება მოხდეს. 749 00:53:14,000 --> 00:53:17,000 იმ do-მარყუჟების ხოლო დიდი, როდესაც თქვენ უნდა ინიციალიზაცია რაღაც 750 00:53:17,000 --> 00:53:21,000 სანამ შემდეგ ტესტირება, ხოლო აქ 751 00:53:21,000 --> 00:53:26,000 ჩვენ ვიცით, რომ ჩვენ არ ვაპირებთ შენარჩუნება reinitializing ორივე დაიწყოს და დამთავრდეს 752 00:53:26,000 --> 00:53:28,000 ყოველ რაუნდში loop. 753 00:53:28,000 --> 00:53:32,000 ჩვენ ვიცით, რომ ჩვენ გვინდა ინიციალიზაცია მათ, მაშინ შეამოწმოთ ჩვენი მდგომარეობა. 754 00:53:32,000 --> 00:53:38,000 ამ შემთხვევაში, მე რეალურად წავიდეთ ერთად მარტივი ხოლო loop. 755 00:53:38,000 --> 00:53:44,000 თურმე do-ხოლო მარყუჟების გამოიყენება საკმაოდ იშვიათად. 756 00:53:44,000 --> 00:53:49,000 ბევრი ადგილები კი არ ასწავლიან ამას ხოლო მარყუჟების. 757 00:53:49,000 --> 00:53:53,000 ისინი კარგი გატარება მომხმარებლის input, ამიტომ ჩვენ ვნახეთ ბევრი მათგანი დღემდე. 758 00:53:53,000 --> 00:53:59,000 მაგრამ ნორმალური და სანამ მარყუჟების არიან ბევრი საერთო. 759 00:53:59,000 --> 00:54:03,000 თურმე ამ მდგომარეობაში როგორც წერილობითი 760 00:54:03,000 --> 00:54:09,000 არ ნამდვილად us გაცილებით კარგი, და რატომ არის, რომ? 761 00:54:09,000 --> 00:54:11,000 მე ბოდიში, არ ვიცი თქვენი სახელი. 762 00:54:11,000 --> 00:54:13,000 მე ჯერი. >> უკაცრავად? 763 00:54:13,000 --> 00:54:15,000 ეს B-O-R-U-I. 764 00:54:15,000 --> 00:54:18,000 ოჰ, okay. 765 00:54:18,000 --> 00:54:23,000 მე ვერ ვხედავ, რომ თქვენ ჩემი სიაში. 766 00:54:23,000 --> 00:54:26,000 ოჰ, ეს იმიტომ-oh, რომ აზრი. 767 00:54:26,000 --> 00:54:31,000 გაქვთ იდეა რატომ ხოლო loop შესაძლოა არ იმუშაოს როგორც განკუთვნილი, 768 00:54:31,000 --> 00:54:38,000 როგორც დაწერილია მდგომარეობა? 769 00:54:38,000 --> 00:54:43,000 [ჯერი] თქვენ ნიშნავს, როგორიც გსურთ ყველა პერსონალის შემდეგ იგი-? 770 00:54:43,000 --> 00:54:46,000 ჰო, ისე, რომ ერთი. 771 00:54:46,000 --> 00:54:49,000 ჩვენ შეიძლება უნდა დააყენოს ყველა ამ პერსონალის შევიდა ხოლო loop, რომელიც მთლიანად შეესაბამება სინამდვილეს. 772 00:54:49,000 --> 00:54:55,000 სხვა საქმეა, რომ ცოტა მეტი პრობლემატური, თუმცა, ის არის, რომ ამ მდგომარეობაში არ მუშაობს. 773 00:54:55,000 --> 00:54:57,000 [სტუდენტური] თქვენ უნდა Flip ეს. 774 00:54:57,000 --> 00:55:04,000 მარჯვენა, ისე ამ მდგომარეობაში არ ოდესმე იყოს ჭეშმარიტი თავდაპირველად გზა ჩვენ ვისაუბრეთ ეს. 775 00:55:04,000 --> 00:55:08,000 ჩვენ გვინდა, რომ რამე სანამ ბოლომდე <დაიწყოს, 776 00:55:08,000 --> 00:55:13,000 მაგრამ ჩვენ გვინდა, რომ რამე ხოლო 777 00:55:13,000 --> 00:55:21,000 დაიწყოს ≤ ბოლომდე. 778 00:55:21,000 --> 00:55:24,000 >> იქ რომ შეცვლის შესახებ ლოგიკა არსებობს. 779 00:55:24,000 --> 00:55:27,000 მე დამნაშავედ მიღების იმ შეცდომების ყველა დროის. 780 00:55:27,000 --> 00:55:31,000 [სტუდენტური] რატომ უნდა იყოს ნაკლები ან ტოლია? 781 00:55:31,000 --> 00:55:33,000 იმის გამო, რომ არ გახსოვთ, რომ საქმე გვაქვს, რათა 782 00:55:33,000 --> 00:55:36,000 სადაც მხოლოდ ერთი ელემენტია, და ჩვენ ქვემოთ, 783 00:55:36,000 --> 00:55:43,000 და ჩვენ შევხედავთ მხოლოდ 15 ჩვენს მასივი? 784 00:55:43,000 --> 00:55:47,000 და ჩვენი დასაწყისი და ჩვენი ბოლომდე იყვნენ იმავე ელემენტს. 785 00:55:47,000 --> 00:55:50,000 ჩვენ გვინდა დავრწმუნდეთ, რომ ჩვენ გაუმკლავდეს ასეთ შემთხვევაში. 786 00:55:50,000 --> 00:55:54,000 თითქოს ჩვენ აქ სწორი ნაკლები, 787 00:55:54,000 --> 00:55:58,000 ჩვენ მხოლოდ შევძლებთ მისაღებად ქვემოთ 2-ელემენტს მასივი. 788 00:55:58,000 --> 00:56:06,000 ერთხელ მივიღეთ ქვემოთ რომ ბოლო ელემენტს, თუ ეს იყო ჩვენი ელემენტს ჩვენ ავღნიშნო არასოდეს საპოვნელად. 789 00:56:06,000 --> 00:56:10,000 ახლა აქ, შეგვიძლია ზუსტად თქვენნაირი ამბობდნენ. 790 00:56:10,000 --> 00:56:15,000 ჩვენ შეგვიძლია დავიწყოთ plopping პერსონალის მარჯვენა შუა ჩვენი ხოლო loop. 791 00:56:15,000 --> 00:56:20,000 ჩვენ შეგვიძლია plop ჩვენს შუაში. 792 00:56:20,000 --> 00:56:24,000 ჩვენ შეუძლია ყველა იმ შემთხვევაში, თუ პარლამენტის განცხადებები, 793 00:56:24,000 --> 00:56:30,000 გაიყვანოს ისინი ამ do-ხოლო მარყუჟის, 794 00:56:30,000 --> 00:56:34,000 plop მათ, 795 00:56:34,000 --> 00:56:39,000 სუფთა რამ up ცოტა, 796 00:56:39,000 --> 00:56:48,000 მე კი წავიდეთ წინ და შეინახოთ ამ ვერსიაზე. 797 00:56:48,000 --> 00:56:53,000 და ამ ეტაპზე, ჩვენ ვიღებთ საკმაოდ ახლოს. 798 00:56:53,000 --> 00:56:55,000 სემ. 799 00:56:55,000 --> 00:56:58,000 მე ვფიქრობ, თქვენ ასევე უნდა ჰქონდეს int შუაში = ზომა - 1/2. 800 00:56:58,000 --> 00:57:01,000 Got it, ზომა - 1/2. 801 00:57:01,000 --> 00:57:05,000 არსებობს არაფერი ჩვენ უნდა შეცვალოთ შესახებ, რომ ხაზი? 802 00:57:05,000 --> 00:57:10,000 ეს იყო კარგი დაჭერა. 803 00:57:10,000 --> 00:57:14,000 >> რას ზომა გავაკეთო? ჩვენ ოდესმე შეცვლის ზომა? 804 00:57:14,000 --> 00:57:17,000 რათა ხაზი მოსწონს, ჩვენ უნდა შეიცვალოს ზომა. 805 00:57:17,000 --> 00:57:21,000 ჩვენ უნდა შეცვალოს ზომა ყოველ ჯერზე ჩვენ გარშემო ამისთვის loop. 806 00:57:21,000 --> 00:57:25,000 მაგრამ გახსოვთ, როდესაც ჩვენ ვაპირებთ ჩვენი მაგალითი უბრალოდ ცოტა უფრო ადრე, 807 00:57:25,000 --> 00:57:30,000 და ჩვენ გვქონდა დასაწყისი 4 808 00:57:30,000 --> 00:57:33,000 და ბოლოს ყველა გზა ზე 108? 809 00:57:33,000 --> 00:57:35,000 როგორ ჩვენ გამოვთვალოთ შუაში? 810 00:57:35,000 --> 00:57:38,000 იყო ჩვენ გამოყენებით ზომა? 811 00:57:38,000 --> 00:57:40,000 ან ჩვენ გამოყენებით დაიწყოს და დამთავრდეს ნაცვლად? 812 00:57:40,000 --> 00:57:42,000 ეს განსხვავება ბოლომდე და დასაწყისია. 813 00:57:42,000 --> 00:57:50,000 სწორედ და ზუსტად როგორ უნდა დავწერო, რომ Charlotte? 814 00:57:50,000 --> 00:57:52,000 უბრალოდ დასასრული - დაიწყოს. 815 00:57:52,000 --> 00:57:55,000 თქვენ არ უნდა გავაკეთოთ - 1 816 00:57:55,000 --> 00:57:58,000 რადგან - 1 ჩაერთო ბოლომდე და დაიწყება უკვე. 817 00:57:58,000 --> 00:58:00,000 [Nate] დიდი, თქვენ მთლიანად უფლება. 818 00:58:00,000 --> 00:58:03,000 ჩვენ არ უნდა გავაკეთოთ - 1 იმიტომ, რომ 1 - უკვე შედის 819 00:58:03,000 --> 00:58:08,000 და აღრიცხვა, როდესაც ჩვენ ინიციალიზაცია ბოლომდე ცვლადი. 820 00:58:08,000 --> 00:58:11,000 >> არსებობს არაფერი მე უნდა გავაკეთოთ syntactically ჰქონდეს ამ ხაზის აზრი? 821 00:58:11,000 --> 00:58:13,000 [სტუდენტური] Plus დაიწყოს. >> Plus დაიწყოს? 822 00:58:13,000 --> 00:58:15,000 [სტუდენტური] დასასრულს. 823 00:58:15,000 --> 00:58:20,000 იმიტომ რომ მხოლოდ გამოითვლება ნახევარი სიგრძე. 824 00:58:20,000 --> 00:58:26,000 თქვენ უნდა დაამატოთ დაიწყოს. 825 00:58:26,000 --> 00:58:31,000 [Nate] რა ამ გამოვთვალოთ ჩვენთვის? 826 00:58:31,000 --> 00:58:35,000 თუ ჩვენ ვიფიქროთ ბოლომდე სწორედ ამ პირველი iteration of მარყუჟის, 827 00:58:35,000 --> 00:58:40,000 ბოლომდე აპირებს იყოს თანამდებობა ინდექსი 7. 828 00:58:40,000 --> 00:58:43,000 დასაწყისი არის თანამდებობა 0. 829 00:58:43,000 --> 00:58:47,000 გახსოვდეთ, ჩვენ ვეძებთ ან 830 00:58:47,000 --> 00:58:52,000 პოზიცია 3 ან თანამდებობა 4. 831 00:58:52,000 --> 00:58:56,000 თუ დავაკვირდებით ამ math, უბრალოდ, რათა ის უფრო ხელშესახები, 832 00:58:56,000 --> 00:59:02,000 დააყენა ზოგიერთი ნომრები აქ, ჩვენ გვაქვს 7, 0, 833 00:59:02,000 --> 00:59:10,000 ასე 7 - 0, ხოლო შემდეგ / 2 834 00:59:10,000 --> 00:59:19,000 არის 3 in რიცხვი გაყოფა, რომ არის. 835 00:59:19,000 --> 00:59:26,000 მაშინ გვინდა მაშინ დაამატოთ უკან ჩვენი დაიწყოს? 836 00:59:26,000 --> 00:59:28,000 ჩვენ არ ამ შემთხვევაში. 837 00:59:28,000 --> 00:59:31,000 წლის პირველივე iteration, ეს იქნება ჯარიმა, რადგან დასაწყისი არის 0. 838 00:59:31,000 --> 00:59:36,000 თუმცა, როგორც ჩვენ პროგრესის, ჩვენ მართლაც ყველა უბრალოდ უნდა 839 00:59:36,000 --> 00:59:42,000 ბოლოს - დაიწყოს / 2. 840 00:59:42,000 --> 00:59:46,000 თუმცა ერთი სხვა შეასრულა აქ, და რომ არის კერძოდ ერთ პრეცენდენტის. 841 00:59:46,000 --> 00:59:49,000 [სტუდენტური] გვჭირდება ფრჩხილებში? 842 00:59:49,000 --> 00:59:53,000 [Nate] ზუსტად, და ეს იმიტომ, რომ თუ ჩვენ არ დააყენა ამ ფრჩხილებში, 843 00:59:53,000 --> 00:59:58,000 მაშინ ეს ხაზი იქნება გაგებული, ნაცვლად 844 00:59:58,000 --> 01:00:09,000 როგორც (დასასრული) - (დაიწყოს / 2), რომელიც ჩვენ ნამდვილად არ გვინდა. 845 01:00:09,000 --> 01:00:11,000 ფრთხილად იმ პრეცენდენტის წესები. 846 01:00:11,000 --> 01:00:15,000 [სტუდენტური] რატომ არ დასრულდება + დაიწყოს? 847 01:00:15,000 --> 01:00:17,000 რატომ არ დასრულდება + დაიწყოს? 848 01:00:17,000 --> 01:00:19,000 [სტუდენტური] რატომ არის არა, რომ? 849 01:00:19,000 --> 01:00:24,000 რატომ უნდა იყოს +? 850 01:00:24,000 --> 01:00:26,000 ვფიქრობ თქვენ უფლება. 851 01:00:26,000 --> 01:00:28,000 [სტუდენტური] იმიტომ რომ საშუალო? 852 01:00:28,000 --> 01:00:31,000 [Nate] ბოლო + დაიწყოს, თქვენ მთლიანად უფლება. 853 01:00:31,000 --> 01:00:34,000 Wow, სრულიად goofed. თქვენ უფლება. 854 01:00:34,000 --> 01:00:39,000 თუ ვაკეთებდით მინუს, ჩვენ გვინდა, რომ დაამატოთ დაიწყოს უკან შემოსული 855 01:00:39,000 --> 01:00:43,000 ამ შემთხვევაში, თქვენ ძალიან სწორი, რომ ჩვენ გვინდა მიიღოს საშუალოდ ორი, 856 01:00:43,000 --> 01:00:45,000 ამიტომ ჩვენ გვინდა მათი დამატებაც, როგორც ეწინააღმდეგებოდა სხვაობა მათ. 857 01:00:45,000 --> 01:00:49,000 [სტუდენტური] ეს ასევე იმუშავებს თუ რა გააკეთეთ ბოლომდე - დაიწყოს / 2 + დაიწყოს. 858 01:00:49,000 --> 01:00:55,000 ეს იქნებოდა თუ ჩვენ-მჯერა ისე. 859 01:00:55,000 --> 01:01:00,000 >> მაგალითად, თუ ჩვენ შევხედავთ დაიწყოს, 860 01:01:00,000 --> 01:01:04,000 და ჩვენ გადავიდა ეს მეტი აქ 861 01:01:04,000 --> 01:01:08,000 დან 15. 862 01:01:08,000 --> 01:01:12,000 ახლა ვიწყებთ არის პოზიციაში 2. 863 01:01:12,000 --> 01:01:15,000 ბოლო არის პოზიციაში 7. 864 01:01:15,000 --> 01:01:21,000 თუ ჩვენ სხვაობა მათ, მივიღებთ 5. 865 01:01:21,000 --> 01:01:24,000 დაიყოს, რომ 2, ჩვენ კიდევ 2. 866 01:01:24,000 --> 01:01:27,000 და შემდეგ ჩვენ დაამატოთ 2 უკან, 867 01:01:27,000 --> 01:01:30,000 და რომ იღებს გვაძლევს მე -4 პოზიცია, 868 01:01:30,000 --> 01:01:33,000 რომელიც სწორედ აქ, რომელიც შუაში. 869 01:01:33,000 --> 01:01:36,000 [სტუდენტური] გვჭირდება ზრუნვა შესაფუთი? 870 01:01:36,000 --> 01:01:39,000 რა გრძნობა გვჭირდება ზრუნვა შესაფუთი? 871 01:01:39,000 --> 01:01:43,000 თუ თანხა ან სხვაობა 872 01:01:43,000 --> 01:01:45,000 დამოკიდებულია, თუ როგორ გავაკეთოთ ეს არ არის კიდევ ნომერი. 873 01:01:45,000 --> 01:01:49,000 მაშინ კომპიუტერი იღებს დაბნეული თუ არა როცა ის 2.5; 874 01:01:49,000 --> 01:01:52,000 მიგაჩნიათ გადავიდეს მარცხნივ ან მარჯვნივ, რათა დადგინდეს, რომელიც შუაში? 875 01:01:52,000 --> 01:01:54,000 Got It. 876 01:01:54,000 --> 01:01:56,000 თურმე ერთად მთელი განყოფილება, 877 01:01:56,000 --> 01:01:59,000 ჩვენ არ ოდესმე კიდევ ამ მცურავი პუნქტიანი ნომრები. 878 01:01:59,000 --> 01:02:01,000 ჩვენ არასოდეს მიიღოთ ათობითი. 879 01:02:01,000 --> 01:02:04,000 ეს სრულიად უგულვებელყოფილია. 880 01:02:04,000 --> 01:02:08,000 თუ თქვენ გაქვთ კომპიუტერი გაყოფა ორ int ცვლადები, 881 01:02:08,000 --> 01:02:11,000 და ერთი არის 7, ხოლო მეორე 2, 882 01:02:11,000 --> 01:02:13,000 ვერ მიიღებთ 3.5 შედეგად. 883 01:02:13,000 --> 01:02:16,000 იგი მიიღებს 3. 884 01:02:16,000 --> 01:02:19,000 ნაშთი იქნება განადგურდეს, ამიტომ ეფექტურად დამრგვალება- 885 01:02:19,000 --> 01:02:24,000 არ მრგვალი არამედ სართული, თუ ბიჭები არიან იცნობს, რომ მათემატიკის, 886 01:02:24,000 --> 01:02:27,000 სადაც თქვენ მთლიანად გაუქმება ათობითი, 887 01:02:27,000 --> 01:02:31,000 და ა.შ. თქვენ არსებითად truncating იგი ქვემოთ უახლოეს 888 01:02:31,000 --> 01:02:33,000 მთელი პოზიცია, რომ უახლოეს მთელი რიცხვი. 889 01:02:33,000 --> 01:02:38,000 [სტუდენტური] მაგრამ შემდეგ რომ პრობლემატური, რადგან თუ თქვენ გაქვთ მასივი 7 ელემენტები 890 01:02:38,000 --> 01:02:43,000 მაშინ ეს ავტომატურად იღებს მე -3 ელემენტს გარეთ შუაში ნაცვლად მე -4. 891 01:02:43,000 --> 01:02:46,000 როგორ უნდა გავუმკლავდეთ, რომ? 892 01:02:46,000 --> 01:02:49,000 ეს პრობლემატურია, რადგან თუ ჩვენ გვქონდა მასივი 7, 893 01:02:49,000 --> 01:02:54,000 ეს იქნებოდა აირჩიოთ -3 ნაცვლად მე -4. 894 01:02:54,000 --> 01:02:56,000 იქნებ ახსნას ცოტა მეტი? 895 01:02:56,000 --> 01:02:59,000 [სტუდენტური] რადგან თუ თქვენ გაქვთ 7 ელემენტები მაშინ მე -4 ელემენტს 896 01:02:59,000 --> 01:03:04,000 იქნება შუაში, არა? 897 01:03:04,000 --> 01:03:07,000 გახსოვდეთ კომენტარი მყოფი ნულოვანი ინდექსირებული, თუმცა. 898 01:03:07,000 --> 01:03:10,000 [სტუდენტური] ჰო, ისე თანამდებობა 3. ეს იქნება შუაში. 899 01:03:10,000 --> 01:03:12,000 Yeah. 900 01:03:12,000 --> 01:03:16,000 ოჰ, okay. მე ვხედავ, რაც თქვენ ნიშნავს. 901 01:03:16,000 --> 01:03:19,000 ეს სახის უცნაური, როგორც ჩვენ შეეგუება ამ მთელი ცნება 902 01:03:19,000 --> 01:03:22,000 მოშორების decimals. 903 01:03:22,000 --> 01:03:26,000 სწორედ დიდი წერტილი. 904 01:03:26,000 --> 01:03:30,000 მოდით დავამთავროთ ეს up. 905 01:03:30,000 --> 01:03:32,000 ჩვენ გამოთვლილი ჩვენი შუაში. 906 01:03:32,000 --> 01:03:37,000 >> ჩვენ ტესტირების თუ ჩვენი ნემსი უდრის შუა ღირებულება. 907 01:03:37,000 --> 01:03:41,000 ჩვენ დაბეჭდვის, რომ ჩვენ აღმოვაჩინეთ, მაგრამ რეალურად, თუ რა გვინდა გავაკეთოთ ამ სიტუაციაში? 908 01:03:41,000 --> 01:03:46,000 ჩვენ ი, ასე რომ ჩვენ გვინდა, ნება Caller იცოდეს, რომ ჩვენ ვერ. 909 01:03:46,000 --> 01:03:49,000 გვაქვს ფუნქცია რომ ლოგიკური აკრეფილი ფუნქცია. 910 01:03:49,000 --> 01:03:54,000 გზა ჩვენ სიგნალი Caller ჩვენი ფუნქცია რომ ჩვენ მზად ვართ წავიდეთ 911 01:03:54,000 --> 01:03:58,000 არის ვამბობთ, "Hey, ეს მართლაც ასეა." 912 01:03:58,000 --> 01:04:00,000 როგორ გავაკეთოთ რომ, კევინ? 913 01:04:00,000 --> 01:04:02,000 თქვენ nodding თქვენი უფროსი. >> [Kevin] Add დაბრუნების ჭეშმარიტი. 914 01:04:02,000 --> 01:04:06,000 [Nate] ზუსტად, იქნება TRUE. 915 01:04:06,000 --> 01:04:12,000 ახლა, თუ ეს არ თანაბარი, როგორ შევხედავთ მარცხენა ნახევარში? 916 01:04:12,000 --> 01:04:16,000 ნებისმიერი იდეები? 917 01:04:16,000 --> 01:04:18,000 Stella, ნებისმიერი იდეები? 918 01:04:18,000 --> 01:04:21,000 თქვენ უნდა დააყენოთ ახალი თანამდებობაზე ბოლომდე. 919 01:04:21,000 --> 01:04:23,000 Yeah. 920 01:04:23,000 --> 01:04:29,000 ამიტომ, ჩვენ უნდა გავაკეთოთ პოზიცია შუაში - დასასრული. 921 01:04:29,000 --> 01:04:33,000 დიდი. 922 01:04:33,000 --> 01:04:36,000 ჩვენ გვჭირდება შევქმნათ ახალი თანამდებობაზე ბოლომდე 923 01:04:36,000 --> 01:04:38,000 შევხედოთ მარცხენა ნახევარში. 924 01:04:38,000 --> 01:04:41,000 ეს იყო ის, რაც ჩვენ ვისაუბრეთ ადრე აქ 925 01:04:41,000 --> 01:04:44,000 მე შენარჩუნება ბრუნდება ამ მაგალითს. 926 01:04:44,000 --> 01:04:50,000 მე არ დაიწყოს აქ, და შემდეგ მაქვს ბოლომდე ყველა გზა აქ. 927 01:04:50,000 --> 01:04:53,000 >> ისევ და ისევ, თუ ჩვენ ვეძებთ 15, და ჩვენი შუაში არის 16, 928 01:04:53,000 --> 01:04:56,000 და ვაცნობიერებთ, "Oops, 16 არის უფრო დიდი. 929 01:04:56,000 --> 01:04:59,000 ჩვენ გვინდა გადასვლის მარცხენა ნახევარი. " 930 01:04:59,000 --> 01:05:02,000 ჩვენ გვინდა მაშინ გადატანა დასრულდეს 15, 931 01:05:02,000 --> 01:05:06,000 და ჩვენ გავაკეთებთ, რომ ხდება ერთი დაშორებით შუაში 932 01:05:06,000 --> 01:05:09,000 და განსაზღვრავს, რომ როგორც ჩვენი ახალი ბოლომდე. 933 01:05:09,000 --> 01:05:12,000 ანალოგიურად, თუ გვინდა შევხედოთ მარჯვენა ნახევარში, როგორ გავაკეთოთ ეს? 934 01:05:12,000 --> 01:05:14,000 გაქვთ იდეა? 935 01:05:14,000 --> 01:05:22,000 [სტუდენტური] თქვენ უბრალოდ მითითებული დაიწყოს შუაში + 1. 936 01:05:22,000 --> 01:05:24,000 [Nate] დიდი. 937 01:05:24,000 --> 01:05:29,000 და ახლა იმ შემთხვევაში, რომ ჩვენ ვერ იპოვით რაიმეს, 938 01:05:29,000 --> 01:05:32,000 ამჯამად რომ მიიღოთ მიღებული ზრუნვა ჩვენთვის? 939 01:05:32,000 --> 01:05:36,000 დანიელ, ამჯამად რომ მისაღებად აღებული ზრუნვა ჩვენთვის? 940 01:05:36,000 --> 01:05:38,000 [დანიელ] ჯგუფი 941 01:05:38,000 --> 01:05:40,000 [Nate] თუ ჩვენ გვექნება ის მეშვეობით მთელი მასივი და ჩვენ ვერ იპოვით რაიმეს, 942 01:05:40,000 --> 01:05:42,000 სად იქნებოდა, რომ იქნეს მიღებული ზრუნვა, ან უნდა იზრუნოს ეს? 943 01:05:42,000 --> 01:05:44,000 [დანიელ] ხოლო მდგომარეობა. 944 01:05:44,000 --> 01:05:48,000 [Nate] Yeah, ხოლო მდგომარეობა, ზუსტად. 945 01:05:48,000 --> 01:05:51,000 იგი იზრუნებს გადის მთელი მასივი, თუ ჩვენ ვერ არაფერი. 946 01:05:51,000 --> 01:05:53,000 ეს მაშინ, როცა მარყუჟის დასრულდება. 947 01:05:53,000 --> 01:05:56,000 ჩვენ არასდროს არ შეექმნა ამ მდგომარეობაში, 948 01:05:56,000 --> 01:06:03,000 და ჩვენ შეგვიძლია დაბრუნების ცრუ. 949 01:06:03,000 --> 01:06:10,000 ჩვენ შეგვიძლია ასევე დატოვეთ თუ აქ ასე 950 01:06:10,000 --> 01:06:14,000 რადგან თუ ეს იმ შემთხვევაში, თუ განაცხადი შეესაბამება სიმართლეს, 951 01:06:14,000 --> 01:06:16,000 და ჩვენი ფუნქცია დააბრუნებს, 952 01:06:16,000 --> 01:06:21,000 და ა.შ. ჩვენ გამოგიგზავნით არსებითად შეწყვეტთ ამ ფუნქციის ამ ეტაპზე 953 01:06:21,000 --> 01:06:24,000 როდესაც ვბრუნდებით ჭეშმარიტი. 954 01:06:24,000 --> 01:06:28,000 მაგრამ რა ხდება ამ სტრუქტურის აქ? 955 01:06:28,000 --> 01:06:34,000 იქნება ეს ნამუშევარი მთლიანად, ან არსებობს გარკვეული ლოგიკური ხარვეზია იქ? 956 01:06:34,000 --> 01:06:37,000 >> არსებობს ლოგიკური ხარვეზია იქ, სადაც გზა ის შეიქმნა. 957 01:06:37,000 --> 01:06:40,000 რა შეიძლება იყოს? 958 01:06:40,000 --> 01:06:43,000 [სტუდენტური] რატომ გჭირდებათ - და + 1s? 959 01:06:43,000 --> 01:06:47,000 რომელიც ადგენს ჩვენი მასივი მდე იქნება ჩვენი ახალი მარცხენა ნახევარში და მარჯვენა ნახევარში. 960 01:06:47,000 --> 01:06:51,000 [სტუდენტური] მაგრამ რატომ ვერ აკეთებ გარეშე - 1s და + 1s? 961 01:06:51,000 --> 01:06:53,000 [Nate] ჩვენ ვერ ვაყენებთ მას ტოლი შუაში? 962 01:06:53,000 --> 01:07:04,000 რა შეიძლება იყოს პრობლემატური შესახებ, რომ? 963 01:07:04,000 --> 01:07:08,000 [სტუდენტური] ვფიქრობ ეს არაეფექტური რადგან თქვენ შემოწმების ღირებულება, რომელიც უკვე გადამოწმებულია. 964 01:07:08,000 --> 01:07:11,000 [Nate] სწორედ ამიტომ სემ სრულიად უფლება. 965 01:07:11,000 --> 01:07:15,000 თუ მითითებული ბოლომდე და დაიწყოს ტოლია შუაში 966 01:07:15,000 --> 01:07:18,000 ნაცვლად - 1 და + 1 reflectively, 967 01:07:18,000 --> 01:07:22,000 რაღაც მომენტში მომავალში ჩვენ დასრულდება მდე შემოწმების შუაში კვლავ. 968 01:07:22,000 --> 01:07:26,000 [სტუდენტური] დავიწყე pset, ხოლო შემდეგ მე მქონდა რაღაც მსგავსი 969 01:07:26,000 --> 01:07:30,000 აქ დამავიწყდა + 1 და მას ჩარჩენილი უსასრულო ციკლი. 970 01:07:30,000 --> 01:07:34,000 მარჯვენა, რადგან რაღაც მომენტში თქვენ არასდროს მისაღებად დაიწყოს და დამთავრდეს 971 01:07:34,000 --> 01:07:39,000 რეალურად გადახურვა. 972 01:07:39,000 --> 01:07:41,000 ზემოთ. 973 01:07:41,000 --> 01:07:44,000 თუმცა ერთი უფრო ლოგიკური ხარვეზია, და რომ ის არის, რომ ეს უნდა იყოს აუცილებლად 974 01:07:44,000 --> 01:07:48,000 სხვაგან თუ. 975 01:07:48,000 --> 01:07:55,000 რატომ შეიძლება, რომ იყოს? 976 01:07:55,000 --> 01:07:59,000 >> მიზეზი კი ის არის, თუ ის არ სხვაგან თუ-არ ჩანს, კევინ? 977 01:07:59,000 --> 01:08:02,000 [Kevin] ჰო, იმიტომ, რომ თქვენ შეცვლით ბოლომდე წერტილი. 978 01:08:02,000 --> 01:08:05,000 [Nate] ზუსტად. 979 01:08:05,000 --> 01:08:07,000 ჩვენ იცვლება Endpoint, 980 01:08:07,000 --> 01:08:12,000 და თუ მას წერილობითი მოსწონს-we'll მიიღოს ფართების შორის- 981 01:08:12,000 --> 01:08:14,000 ეს შეამოწმებს ამ შემთხვევაში. 982 01:08:14,000 --> 01:08:18,000 ამ შემთხვევაში, თუ ის გაამართლებს, პროცესი შეწყვეტილია გარეთ ფუნქცია. 983 01:08:18,000 --> 01:08:21,000 მერე შეამოწმებს ამ შემდეგი შემთხვევაში, 984 01:08:21,000 --> 01:08:24,000 და თუ ეს გაამართლებს, ის შეცვალოს Endpoint, 985 01:08:24,000 --> 01:08:28,000 და მერე გაგრძელდება და შეამოწმოთ ამ შემთხვევაში. 986 01:08:28,000 --> 01:08:31,000 მაგრამ ამ ეტაპზე, ჩვენ არ გვსურს გავაგრძელოთ შემოწმების. 987 01:08:31,000 --> 01:08:35,000 საბედნიეროდ, ჩვენ არ აღადგინოთ შუაში აქ, 988 01:08:35,000 --> 01:08:39,000 და ვიცით, რომ ამ შემთხვევაში შედეგს ვერ მოიტანს. 989 01:08:39,000 --> 01:08:44,000 მაგრამ ჩვენ ნამდვილად გვინდა დააყენა სხვაგან თუ არსებობს 990 01:08:44,000 --> 01:08:48,000 მიუხედავად იმისა, რომ ეს შეიძლება, ამ შემთხვევაში 991 01:08:48,000 --> 01:08:52,000 მას შემდეგ, რაც ჩვენ არ მორგება შუაში, რომ რომ განსხვავება? 992 01:08:52,000 --> 01:08:54,000 არა, რადგან ამ შემთხვევაში ყველა ექსკლუზიური. 993 01:08:54,000 --> 01:08:58,000 ისევ და ისევ, ჩემი ცუდი. 994 01:08:58,000 --> 01:09:01,000 ჩვენ არ ვფიქრობ, გვჭირდება ეს სხვაგან თუ. 995 01:09:01,000 --> 01:09:05,000 ჩვენ შეგვიძლია გინება და გაუშვით და ვნახოთ, რა მოხდება. 996 01:09:05,000 --> 01:09:08,000 შენობა, შეცდომა. 997 01:09:08,000 --> 01:09:12,000 ალბათ იმიტომ, რომ დავტოვე ეს ბ და ე ს აქ. 998 01:09:12,000 --> 01:09:14,000 მაქვს იმის მეტი იმ up ზედა? 999 01:09:14,000 --> 01:09:16,000 ეს არ ჰგავს მას. 1000 01:09:16,000 --> 01:09:20,000 ჩვენ დააშორებს, აშენება, 1001 01:09:20,000 --> 01:09:24,000 იქ მიდის, ასე რომ, ახლა თუ ჩვენ მოძებნოთ 15, 1002 01:09:24,000 --> 01:09:28,000 დიახ. 1003 01:09:28,000 --> 01:09:30,000 ნება მომეცით zoom სისტემაში 1004 01:09:30,000 --> 01:09:33,000 15, დიახ. ჩვენ შეგვიძლია გაუშვით ერთხელ. 1005 01:09:33,000 --> 01:09:36,000 ატვირთვა კოდის, შენობა, გაშვებული. 1006 01:09:36,000 --> 01:09:41,000 ჩვენ შეგვიძლია ვეძებოთ რაღაც 13, 1007 01:09:41,000 --> 01:09:45,000 და ჩვენ არ მიიღოთ არაფერი დაბეჭდვისას, ამიტომ არ მოძიებაში, რომ ჩვენთვის. 1008 01:09:45,000 --> 01:09:51,000 სწორედ დიდი, იმიტომ, რომ ეს არ არის ჩვენი სია. 1009 01:09:51,000 --> 01:09:53,000 >> ჩვენ ახლა გარეთ დრო. 1010 01:09:53,000 --> 01:09:55,000 რომ იქნება ეს ამ კვირაში. 1011 01:09:55,000 --> 01:10:00,000 მადლობა გაწევრიანების და ვნახავთ მოგაწვდით. 1012 01:10:00,000 --> 01:10:02,000 >> [CS50.TV]