1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> ΟΜΙΛΗΤΗΣ 1: Γεια σε όλους! 3 00:00:12,300 --> 00:00:13,890 Καλώς ήρθατε και πάλι στο τμήμα. 4 00:00:13,890 --> 00:00:17,480 Τόσο ευτυχής να δει τόσα πολλά από εσάς τόσο εδώ, και όλους όσους παρακολουθούν σε απευθείας σύνδεση. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Έτσι, ως συνήθως, πίσω ευπρόσδεκτη. 7 00:00:20,920 --> 00:00:24,360 Ελπίζω ότι όλοι είχαν μια υπέροχη Σαββατοκύριακο, γεμάτο ξεκούραση, χαλάρωση. 8 00:00:24,360 --> 00:00:26,026 Ήταν όμορφα χθες. 9 00:00:26,026 --> 00:00:27,525 Έτσι, ελπίζω να απολαύσατε την ύπαιθρο. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Έτσι, για πρώτη φορά δυο ανακοινώσεις. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Βαθμολόγησης. 14 00:00:32,700 --> 00:00:37,350 Έτσι, οι περισσότεροι από εσάς θα έπρεπε να πάρει ένα e-mail από μένα για το Ξυστό Pset σας, 15 00:00:37,350 --> 00:00:39,920 καθώς και η ταξινόμηση για το chipset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Έτσι, μόνο ένα ζευγάρι πράγματα. 18 00:00:42,220 --> 00:00:45,150 Να είστε βέβαιος να χρησιμοποιήσει check50 στο style50. 19 00:00:45,150 --> 00:00:47,250 Αυτά εννοούνται να είναι πόρους για σας παιδιά, 20 00:00:47,250 --> 00:00:50,660 για να βεβαιωθείτε ότι έχετε πάρει όπως πολλά σημεία, όπως μπορείτε να 21 00:00:50,660 --> 00:00:52,390 χωρίς άσκοπα χάνοντας τους. 22 00:00:52,390 --> 00:00:54,407 Έτσι, πράγματα όπως στυλ είναι πολύ σημαντικά. 23 00:00:54,407 --> 00:00:55,740 Είμαστε πρόκειται να απογειωθεί για αυτό. 24 00:00:55,740 --> 00:00:58,115 Μερικοί από εσάς μπορεί να έχουν ήδη παρατηρήσει ότι από το chipset σας. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 Και check50 είναι μόνο ένα πραγματικά εύκολος τρόπος για να βεβαιωθείτε ότι 27 00:01:01,450 --> 00:01:05,050 ότι είμαστε στην πραγματικότητα επιστρέφουν ό, τι θα πρέπει να επιστραφεί στον χρήστη, 28 00:01:05,050 --> 00:01:06,690 και ότι τα πάντα λειτουργεί σωστά. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> Στο δεύτερο σημείωμα, βεβαιωθείτε ότι σας φορτώνοντας τα πράγματα στο σωστό φάκελο. 31 00:01:12,040 --> 00:01:14,470 Κάνει τη ζωή μου μόνο ένα λίγο πιο δύσκολο 32 00:01:14,470 --> 00:01:18,836 αν φορτώνετε το chipset 2 σε Pset 1 γιατί όταν μπορώ να κατεβάσω τα πράγματα, 33 00:01:18,836 --> 00:01:20,085 δεν κάνετε σωστή λήψη. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 Και ξέρω ότι είναι λίγο ξεχαρβαλωμένος σε ένα σύστημα για να το συνηθίσετε, 36 00:01:24,560 --> 00:01:26,950 αλλά απλά να είναι σούπερ προσεκτικοί, εάν μόνο για μένα, 37 00:01:26,950 --> 00:01:30,080 έτσι ώστε όταν παίρνετε τα μηνύματα όπως σε δύο και είμαι ταξινόμησης. 38 00:01:30,080 --> 00:01:33,710 Εάν δεν προκαλούν έχω να κοιτάξουμε όλα γύρω για το chipset σας. 39 00:01:33,710 --> 00:01:34,440 Cool. 40 00:01:34,440 --> 00:01:37,270 >> Ξέρω ότι είναι νωρίς, αλλά εγώ εντελώς πήγαν από τη φρουρά 41 00:01:37,270 --> 00:01:40,800 από ένα δοκίμιο που είναι οφείλεται αυτή την Παρασκευή, ότι καθηγητές μου ήταν ακριβώς όπως, OH ναι. 42 00:01:40,800 --> 00:01:42,550 Θυμηθείτε, έχετε ένα δοκίμιο αναμένονται την Παρασκευή. 43 00:01:42,550 --> 00:01:45,780 Έτσι, ξέρω ότι κανείς δεν συμπαθεί να σκεφτούμε εξετάσεις προόδου, 44 00:01:45,780 --> 00:01:50,620 αλλά η πρώτη σας κουίζ είναι στις 15 Οκτωβρίου η οποία Οκτώβριο ξεκινά αυτή την εβδομάδα. 45 00:01:50,620 --> 00:01:53,290 Έτσι, θα μπορούσε να είναι νωρίτερα από ό, τι αναμενόταν είναι όλα. 46 00:01:53,290 --> 00:01:57,510 Έτσι, ότι δεν είστε ρίχνονται από τη φρουρά όταν Αναφέρω ενότητα την επόμενη εβδομάδα ότι OH, 47 00:01:57,510 --> 00:02:00,560 κουίζ επόμενη εβδομάδα σας, σκέφτηκα Θα σας δώσω ένα λίγο πιο 48 00:02:00,560 --> 00:02:01,500 του ένα heads-up τώρα. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Έτσι, ορίστε το πρόβλημα σας, τον αριθμό τρία. 51 00:02:04,660 --> 00:02:07,070 Πώς οι άνθρωποι έχουν διαβάσει το spec από περιέργεια; 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 ΟΚ. 54 00:02:09,199 --> 00:02:10,229 Πήραμε ένα ζευγάρι. 55 00:02:10,229 --> 00:02:12,320 Είδος κάτω από την τελευταία εβδομάδα, αλλά αυτό είναι εντάξει. 56 00:02:12,320 --> 00:02:13,650 Ξέρω ότι ήταν όμορφη έξω. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Έτσι Break Out. 59 00:02:16,660 --> 00:02:21,010 Σίγουρα μετά την έχετε κάνει διαβάσετε σήμερα spec σας τουλάχιστον 60 00:02:21,010 --> 00:02:25,240 προσπαθήσουμε, όπως το κατέβασμα Κωδικός διανομής και λειτουργίας 61 00:02:25,240 --> 00:02:27,430 όπως την πρώτη αρχική πράγμα που θα σας ζητήσω να. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Επειδή είμαστε χρησιμοποιώντας Κωδικός διανομής και μια βιβλιοθήκη 64 00:02:32,590 --> 00:02:36,790 ότι έχουμε μόνο using-- --It μόνο η δεύτερη φορά που έχουμε κάνει αυτό το chipset, 65 00:02:36,790 --> 00:02:38,650 τρελά πράγματα μπορούν να συμβούν με τη συσκευή σας, 66 00:02:38,650 --> 00:02:41,370 και θέλετε να βρείτε ότι έξω τώρα σε σχέση με αργότερα. 67 00:02:41,370 --> 00:02:45,570 >> Διότι αν είναι Πέμπτη το βράδυ ή είναι Το βράδυ της Τετάρτης και για κάποιο λόγο 68 00:02:45,570 --> 00:02:48,912 η συσκευή σας δεν κάνει μόνο θέλετε να εκτελέσετε με τη βιβλιοθήκη 69 00:02:48,912 --> 00:02:50,620 ή με τη διανομή κώδικα, ότι μέσα 70 00:02:50,620 --> 00:02:52,309 δεν μπορείτε καν να αρχίσουν να κάνουν την κωδικοποίηση. 71 00:02:52,309 --> 00:02:54,100 Επειδή δεν μπορείτε να ελέγξετε για να δείτε αν αυτό δουλεύει. 72 00:02:54,100 --> 00:02:55,975 Δε θα σας να είναι σε θέση για να δούμε αν αυτό συγκεφαλαιώνει. 73 00:02:55,975 --> 00:03:00,500 Θέλετε να αναλάβει τη φροντίδα εκείνων νωρίς η εβδομάδα, όταν μπορείτε ακόμα να στείλετε email μου 74 00:03:00,500 --> 00:03:03,100 ή ένα από τα άλλα ΤΡ, και μπορούμε να πάρουμε εκείνα που έχουν καθοριστεί. 75 00:03:03,100 --> 00:03:05,410 Επειδή αυτά είναι ζητήματα που πρόκειται να σας σταματήσει 76 00:03:05,410 --> 00:03:07,120 από προβεί σε οποιαδήποτε πραγματική πρόοδο. 77 00:03:07,120 --> 00:03:10,055 Δεν είναι όπως ένα σφάλμα, ότι μπορείτε να ακριβώς το είδος του να υπερπηδήσει. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Αν αντιμετωπίζετε προβλήματα με σας συσκευή ή τον κωδικό διανομής, 80 00:03:13,420 --> 00:03:16,211 θέλετε πραγματικά να πάρει ότι λαμβάνονται φροντίδα του νωρίτερα παρά αργότερα. 81 00:03:16,211 --> 00:03:20,410 Έτσι, ακόμα και αν δεν είστε gonna πραγματικότητα την έναρξη της κωδικοποίησης, κατεβάστε τη διανομή 82 00:03:20,410 --> 00:03:24,040 κώδικα, διαβάστε το spec, βεβαιωθείτε ό, τι δουλεύει εκεί. 83 00:03:24,040 --> 00:03:25,134 Εντάξει; 84 00:03:25,134 --> 00:03:27,675 Εάν μπορείτε να κάνετε ακριβώς αυτό, εγώ υπόσχονται ζωή σας θα είναι ευκολότερη. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 Και έτσι είστε κατά πάσα πιθανότητα θα για να το κάνετε τώρα σωστά; 87 00:03:31,410 --> 00:03:32,100 ΟΚ. 88 00:03:32,100 --> 00:03:33,950 Έτσι, οποιεσδήποτε ερωτήσεις εκεί; 89 00:03:33,950 --> 00:03:35,850 Τυχόν υλικοτεχνική πράγματα; 90 00:03:35,850 --> 00:03:36,910 Ο καθένας είναι καλό; 91 00:03:36,910 --> 00:03:38,270 ΟΚ. 92 00:03:38,270 --> 00:03:41,700 >> Αποποίηση ευθυνών για εκείνους της σας στην αίθουσα και στο διαδίκτυο. 93 00:03:41,700 --> 00:03:45,437 Πάω να προσπαθεί να στραφούν μεταξύ του PowerPoint στη συσκευή 94 00:03:45,437 --> 00:03:47,270 επειδή πρόκειται να κάνει κάποια κωδικοποίηση 95 00:03:47,270 --> 00:03:53,630 σήμερα από την λαϊκή απαίτηση της ανώνυμης πρόταση δημοσκόπηση έστειλα την περασμένη εβδομάδα. 96 00:03:53,630 --> 00:03:55,480 Έτσι, θα πρέπει να κάνει κάποια κωδικοποίηση. 97 00:03:55,480 --> 00:03:57,800 Έτσι, αν εσείς θέλετε, επίσης, να ανάψουν τις συσκευές σας, 98 00:03:57,800 --> 00:04:02,910 και θα πρέπει να έχεις ένα email από μένα, με ένα δείγμα αρχείου. 99 00:04:02,910 --> 00:04:04,310 Παρακαλώ μη διστάσετε να το κάνουμε αυτό. 100 00:04:04,310 --> 00:04:07,340 >> Έτσι, θα πάμε να μιλήσουμε για GDB, το οποίο είναι ένα πρόγραμμα εντοπισμού σφαλμάτων. 101 00:04:07,340 --> 00:04:09,970 Δεν πρόκειται να σας βοηθήσει το είδος των καταλάβω πού 102 00:04:09,970 --> 00:04:11,860 Τα πράγματα πηγαίνουν στραβά στον κώδικά σας. 103 00:04:11,860 --> 00:04:15,370 Είναι πραγματικά μόνο ένας τρόπος για να ενισχύσουν μέσω του κωδικού σας, καθώς αυτό συμβαίνει, 104 00:04:15,370 --> 00:04:19,100 και να είναι σε θέση να εκτυπώσετε τις μεταβλητές ή να δούμε τι πραγματικά συμβαίνει 105 00:04:19,100 --> 00:04:22,980 Κάτω από το καπό στίχοι πρόγραμμα σας απλά τρέχει, είναι σαν προβληματική, 106 00:04:22,980 --> 00:04:25,030 και είστε όπως, καμία ιδέα τι ακριβώς συνέβη εδώ. 107 00:04:25,030 --> 00:04:26,730 Δεν ξέρω ποια γραμμή που απέτυχε σε. 108 00:04:26,730 --> 00:04:29,040 Δεν ξέρω πού πήγε στραβά. 109 00:04:29,040 --> 00:04:31,280 Έτσι, GDB πρόκειται να σας βοηθήσει με αυτό. 110 00:04:31,280 --> 00:04:35,240 Επίσης, αν αποφασίσετε να συνεχίσει ναι, και να λάβει 61, 111 00:04:35,240 --> 00:04:38,430 αυτό θα είναι πραγματικά, πραγματικά να σας Ο καλύτερος φίλος, αιτία μπορώ να σας πω 112 00:04:38,430 --> 00:04:40,840 επειδή Πάω μέσα αυτής της κατηγορίας. 113 00:04:40,840 --> 00:04:43,620 >> Εμείς πάμε για να δούμε σε δυαδικό αναζήτησης, η οποία αν εσείς θυμάστε 114 00:04:43,620 --> 00:04:47,540 το μεγάλο παράδειγμα τηλεφωνικό κατάλογο θέαμα από την τάξη. 115 00:04:47,540 --> 00:04:50,620 Θα πρέπει να εκτελεστικές ότι, και περπατώντας μέσα από αυτό λίγο περισσότερο, 116 00:04:50,620 --> 00:04:54,650 και στη συνέχεια θα πάμε μέσω τεσσάρων διαφορετικά είδη, τα οποία είναι φούσκα, 117 00:04:54,650 --> 00:04:56,285 Επιλογή, Εισαγωγή, και Συγχώνευση. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Cool. 120 00:04:58,330 --> 00:05:00,390 Έτσι, GDB, όπως ανέφερα, είναι ένα πρόγραμμα εντοπισμού σφαλμάτων. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 Και αυτά είναι το είδος του μεγάλου τα πράγματα, οι μεγάλες λειτουργίες ή εντολές 123 00:05:09,370 --> 00:05:13,240 ότι μπορείτε να χρησιμοποιήσετε μέσα GDB, και εγώ θα τα πόδια σας μέσα από ένα demo του σε ένα δευτερόλεπτο. 124 00:05:13,240 --> 00:05:15,360 >> Έτσι, αυτό δεν είναι μόνο πρόκειται να μείνει αφηρημένη. 125 00:05:15,360 --> 00:05:18,000 Θα προσπαθήσω και να το καταστήσει ως σκυρόδεμα όσο το δυνατόν για σας παιδιά. 126 00:05:18,000 --> 00:05:19,870 Έτσι, να σπάσει. 127 00:05:19,870 --> 00:05:22,200 Θα είναι είτε διάλειμμα όπως, κάποιος αριθμός, ο οποίος 128 00:05:22,200 --> 00:05:26,900 αντιπροσωπεύει μια γραμμή στο πρόγραμμά σας, ή μπορείτε να ονομάσετε μια λειτουργία. 129 00:05:26,900 --> 00:05:30,150 Έτσι, αν σας πω σπάσει κύρια, θα σταματήσει σε κεντρικό, 130 00:05:30,150 --> 00:05:32,400 και αφήστε τα πόδια σας μέσα από τη λειτουργία αυτή. 131 00:05:32,400 --> 00:05:36,350 >> Ομοίως, εάν έχετε κάποια εξωτερική λειτουργούν όπως Swap ή Cube, 132 00:05:36,350 --> 00:05:38,450 ότι κοιτάξαμε την περασμένη εβδομάδα. 133 00:05:38,450 --> 00:05:41,780 Εάν λέτε να σπάσει ένα από αυτά, κάθε φορά που το πρόγραμμα σας χτυπά ότι, 134 00:05:41,780 --> 00:05:44,290 αυτό θα σας περιμένουν να πείτε τι να κάνει. 135 00:05:44,290 --> 00:05:47,860 Πριν από αυτό θα εκτελέσει ακριβώς έτσι θα μπορούσε στην πραγματικότητα βήμα μέσα στη συνάρτηση 136 00:05:47,860 --> 00:05:49,020 και να δούμε τι συμβαίνει. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Έτσι, την επόμενη, προσπερνάει ακριβώς πάνω από το επόμενη γραμμή, πηγαίνει πάνω λειτουργίες. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Βήμα. 141 00:05:55,560 --> 00:05:56,810 Όλα αυτά είναι λίγο αφηρημένη. 142 00:05:56,810 --> 00:06:00,530 Έτσι, είμαι απλώς πρόκειται να τρέξει μέσα από αυτά, αλλά θα τα δείτε σε χρήση σε ένα δευτερόλεπτο. 143 00:06:00,530 --> 00:06:01,810 >> Βήμα σε λειτουργία. 144 00:06:01,810 --> 00:06:04,170 Έτσι, όπως έλεγα, όπως με Swap, θα ήταν 145 00:06:04,170 --> 00:06:07,110 σας επιτρέπουν να πραγματικά σαν να είστε όπως φυσικά Μπαίνοντας μέσα, 146 00:06:07,110 --> 00:06:10,990 μπορείτε να το χάος με αυτές τις μεταβλητές, εκτύπωση τι είναι, να δούμε τι συμβαίνει. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Λίστα θα κυριολεκτικά εκτύπωση από τον περιβάλλοντα κώδικα. 149 00:06:14,830 --> 00:06:17,570 Έτσι, αν το είδος των ξεχάσετε όπου είστε στο πρόγραμμά σας, 150 00:06:17,570 --> 00:06:19,880 ή αναρωτιέστε τι συμβαίνει γύρω από αυτό, 151 00:06:19,880 --> 00:06:23,790 Αυτό θα εκτυπώσετε μόνο ένα τμήμα του αρέσει πέντε ή έξι γραμμές γύρω από αυτό. 152 00:06:23,790 --> 00:06:26,080 Έτσι, μπορείτε να προσανατολιστείτε σχετικά με το πού βρίσκεστε. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Εκτυπώστε κάποια μεταβλητή. 155 00:06:28,650 --> 00:06:34,590 Έτσι, εάν έχετε το κλειδί, όπως σε Καίσαρα, που θα εξετάσουμε. 156 00:06:34,590 --> 00:06:36,220 Μπορείτε να πείτε Εκτύπωση Κλειδί σε οποιοδήποτε σημείο. 157 00:06:36,220 --> 00:06:40,070 Θα σας πω ποια είναι η αξία είναι έτσι ότι, ίσως κάπου στην πορεία, 158 00:06:40,070 --> 00:06:42,070 σβήσατε το κλειδί σας. 159 00:06:42,070 --> 00:06:45,495 Μπορείτε πραγματικά να πω ότι επειδή μπορείτε να παρατηρήσετε πραγματικά αυτή την τιμή. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Στους ντόπιους, ακριβώς εκτυπώσεις από τις τοπικές μεταβλητές σας. 162 00:06:48,780 --> 00:06:53,120 Έτσι, ανά πάσα στιγμή είστε μέσα σε ένα βρόχο, και απλά θέλετε να δείτε, όπως, oh. 163 00:06:53,120 --> 00:06:54,270 Τι είναι το εγώ μου; 164 00:06:54,270 --> 00:06:57,020 Τι είναι αυτή η βασική αξία ότι έχω προετοιμαστεί εδώ; 165 00:06:57,020 --> 00:06:58,537 Ποιο είναι το μήνυμα σε αυτό το σημείο; 166 00:06:58,537 --> 00:07:00,370 Θα εκτυπώσετε μόνο όλα από αυτούς, έτσι ώστε να 167 00:07:00,370 --> 00:07:04,330 Δεν χρειάζεται να ατομικά λένε, Εκτύπωση Ι Εκτύπωση μηνύματος. 168 00:07:04,330 --> 00:07:04,970 Εκτύπωση Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 Και στη συνέχεια να εμφανίσετε. 171 00:07:07,700 --> 00:07:10,370 Αυτό που κάνει είναι, όπως σας βήμα μέσα από το πρόγραμμα, 172 00:07:10,370 --> 00:07:13,980 θα πρέπει ακριβώς να βεβαιωθείτε ότι είναι εμφανίζοντας κάποια ορισμένη μεταβλητή 173 00:07:13,980 --> 00:07:14,780 σε κάθε σημείο. 174 00:07:14,780 --> 00:07:17,160 Έτσι ώστε να also-- --it είναι το είδος της συντόμευσης όπου 175 00:07:17,160 --> 00:07:19,530 δεν χρειάζεται να συνεχίσουμε όπως, oh. 176 00:07:19,530 --> 00:07:23,150 Εκτύπωση κλειδιά ή Εκτύπωση I. Είναι απλά θα το κάνει αυτόματα για εσάς. 177 00:07:23,150 --> 00:07:25,959 >> Έτσι, με αυτό, θα πάμε για να δούμε πώς θα πάει. 178 00:07:25,959 --> 00:07:28,000 Πάω να προσπαθήσουμε και διακόπτη πάνω στην συσκευή μου. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Δείτε αν μπορώ να το κάνω αυτό. 181 00:07:31,271 --> 00:07:31,770 Όλα. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Είμαστε ακριβώς πρόκειται να το αντιγράψει. 184 00:07:42,370 --> 00:07:44,530 Δεν υπάρχει τίποτα τρελό για το laptop μου ούτως ή άλλως. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 ΟΚ. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Αυτό πρέπει να είναι αυτό. 189 00:08:01,054 --> 00:08:01,795 Είναι τόσο μικρό. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Ας δούμε αν μπορούμε να το κάνουμε αυτό. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> ΟΚ. 194 00:08:10,940 --> 00:08:15,305 Η Alice είναι προφανώς αγωνίζονται εδώ ακριβώς λίγο, 195 00:08:15,305 --> 00:08:17,995 αλλά θα το πάρει σε ένα momento. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 ΟΚ. 198 00:08:22,020 --> 00:08:25,900 Είμαστε ακριβώς πρόκειται να αυξήσει αυτό. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 ΟΚ. 201 00:08:29,380 --> 00:08:31,679 Μπορεί ο καθένας το είδος δείτε ότι; 202 00:08:31,679 --> 00:08:32,470 Ίσως λίγο; 203 00:08:32,470 --> 00:08:33,594 Ξέρω ότι είναι λίγο μικρό. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Δεν μπορεί να είναι αρκετά να καταλάβω πώς να κάνει αυτό μεγαλύτερο. 206 00:08:37,530 --> 00:08:38,350 Αν κάποιος ξέρει. 207 00:08:38,350 --> 00:08:40,309 Ξέρει κανείς πώς να κάνει το μεγαλύτερο; 208 00:08:40,309 --> 00:08:40,932 ΟΚ. 209 00:08:40,932 --> 00:08:42,140 Εμείς πάμε για να κυλήσει με αυτό. 210 00:08:42,140 --> 00:08:45,801 Δεν πειράζει έτσι κι αλλιώς επειδή είναι ακριβώς αυτός είναι ο κώδικας που εσείς πρέπει να 211 00:08:45,801 --> 00:08:46,300 έχουν. 212 00:08:46,300 --> 00:08:48,310 >> Τι είναι πιο σημαντικό είναι το τερματικό εδώ. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 Και έχουμε εδώ Γιατί είναι τόσο μικρή; 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Ρυθμίσεις. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Ω. 219 00:09:08,420 --> 00:09:09,500 Αληθινή Ike. 220 00:09:09,500 --> 00:09:10,880 Πώς είναι αυτό; 221 00:09:10,880 --> 00:09:11,770 Από εκεί. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Είναι ότι καλύτερο για όλους; 224 00:09:21,810 --> 00:09:22,525 ΟΚ ,. 225 00:09:22,525 --> 00:09:23,025 Cool. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Ξέρεις, όταν είσαι σε μια CS κατηγορία τεχνικές δυσκολίες 228 00:09:28,220 --> 00:09:32,971 είναι το είδος του μέρους του the-- Έτσι, ας ξεκαθαρίσουμε αυτό. 229 00:09:32,971 --> 00:09:33,470 ΟΚ. 230 00:09:33,470 --> 00:09:38,060 Έτσι, εδώ στο τμήμα, που είχαμε εδώ. 231 00:09:38,060 --> 00:09:40,830 Καίσαρας είναι ένα εκτελέσιμο αρχείο. 232 00:09:40,830 --> 00:09:41,800 Έτσι έκανα. 233 00:09:41,800 --> 00:09:46,370 Έτσι, ένα πράγμα που πρέπει να συνειδητοποιήσουμε με GDB είναι ότι λειτουργεί μόνο σε εκτελέσιμα αρχεία. 234 00:09:46,370 --> 00:09:48,040 Έτσι, δεν μπορείτε να εκτελέσετε σε ένα dotsy. 235 00:09:48,040 --> 00:09:50,532 Θα πρέπει να κάνετε πραγματικότητα βεβαιωθείτε ότι ο κώδικας συγκεντρώνει, 236 00:09:50,532 --> 00:09:51,865 και ότι μπορεί πραγματικά να τρέξει. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Έτσι, βεβαιωθείτε ότι αν δεν το κάνει συγκεντρώνουν, να το πάρετε για την κατάρτιση, 239 00:09:56,186 --> 00:09:57,810 έτσι ώστε να μπορείτε να το είδος του τρέχει μέσα από αυτό. 240 00:09:57,810 --> 00:10:04,590 Έτσι, για να ξεκινήσει η GDB, το μόνο που κάνετε, Gloria Τύπος GDB, και στη συνέχεια, μόλις η 241 00:10:04,590 --> 00:10:06,250 αρχείο που θέλετε. 242 00:10:06,250 --> 00:10:08,240 Πάντα ανορθογραφώ Καίσαρα. 243 00:10:08,240 --> 00:10:11,730 Αλλά θέλετε να βεβαιωθείτε δεδομένου ότι είναι ένα εκτελέσιμο, 244 00:10:11,730 --> 00:10:14,210 dot flash ti έτσι ώστε σημαίνει ότι θα πάμε 245 00:10:14,210 --> 00:10:19,240 να τρέξει CSI θα πάμε να εκτελέσει το αρχείο αυτό είτε με το πρόγραμμα εντοπισμού σφαλμάτων. 246 00:10:19,240 --> 00:10:19,910 ΟΚ. 247 00:10:19,910 --> 00:10:22,885 Έτσι, το κάνετε αυτό, μπορείτε να πάρετε Αυτό το είδος της ασυναρτησίες. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Είναι ακριβώς όλα τα πράγματα για το πρόγραμμα εντοπισμού σφαλμάτων. 250 00:10:25,750 --> 00:10:28,200 Δεν χρειάζεται πραγματικά να ανησυχείτε γι 'αυτό τώρα. 251 00:10:28,200 --> 00:10:31,460 Και όπως βλέπετε, έχουμε αυτό ανοιχτή parens, ΑΕΠ, κοντά parens, 252 00:10:31,460 --> 00:10:34,690 και ακριβώς το είδος του μοιάζει γραμμή εντολών μας, σωστά; 253 00:10:34,690 --> 00:10:37,010 >> Έτσι, αυτό που θέλουμε να do-- --So, Το πρώτο πράγμα 254 00:10:37,010 --> 00:10:39,570 Είναι θέλουμε να επιλέξετε ένα μέρος για να το σπάσει. 255 00:10:39,570 --> 00:10:42,332 Έτσι, υπάρχει ένα bug σε αυτό το πρόγραμμα Καίσαρα 256 00:10:42,332 --> 00:10:44,290 ότι έχω εισαγάγει, ότι θα πάμε για να μάθετε. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Είναι αυτό που κάνει είναι να παίρνει την είσοδο Barfoo σε όλα τα καλύμματα, και για κάποιο λόγο 259 00:10:56,350 --> 00:11:01,950 αυτό δεν αλλάζει Α Αφήνει μόνο αυτό και μόνο, είναι ό, τι άλλο σωστή, 260 00:11:01,950 --> 00:11:03,980 αλλά η δεύτερη επιστολή Α παραμένει αμετάβλητη. 261 00:11:03,980 --> 00:11:07,120 Έτσι, θα πάμε για να προσπαθήσουμε και να καταλάβω γιατί συμβαίνει αυτό. 262 00:11:07,120 --> 00:11:10,440 Έτσι, το πρώτο πράγμα που συνήθως θέλετε να κάνετε κάθε φορά που ξεκινάτε για GDB 263 00:11:10,440 --> 00:11:12,010 Είναι καταλάβω πού να το σπάσει. 264 00:11:12,010 --> 00:11:14,956 >> Έτσι ο Καίσαρας είναι ένα αρκετά σύντομο πρόγραμμα. 265 00:11:14,956 --> 00:11:16,330 Εμείς απλά έχουμε μια λειτουργία, σωστά; 266 00:11:16,330 --> 00:11:18,520 Ποια ήταν η λειτουργία μας στον Καίσαρα; 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Υπάρχει μόνο μία λειτουργία, Κύρια σωστά; 269 00:11:24,350 --> 00:11:26,490 Main είναι μια συνάρτηση για όλα τα προγράμματά σας. 270 00:11:26,490 --> 00:11:29,230 Εάν δεν έχουν την κύρια, θα ήθελα να να είναι λίγο ανήσυχος τώρα, 271 00:11:29,230 --> 00:11:31,000 αλλά ελπίζω να περάσατε Κύρια εκεί. 272 00:11:31,000 --> 00:11:34,150 Έτσι, αυτό που μπορούμε να κάνουμε είναι να μπορούμε να απλά να σπάσει Κύριο, έτσι απλά. 273 00:11:34,150 --> 00:11:35,190 Έτσι, λέει, εντάξει. 274 00:11:35,190 --> 00:11:37,430 Θέτουμε ένα breakpoint μας εκεί. 275 00:11:37,430 --> 00:11:42,870 >> Έτσι, τώρα το πράγμα που πρέπει να θυμάστε είναι Καίσαρα λαμβάνει μία εντολή δεξιά επιχείρημα της γραμμής 276 00:11:42,870 --> 00:11:45,150 και δεν έχουμε κάνει ότι πουθενά ακόμα. 277 00:11:45,150 --> 00:11:47,560 Έτσι, αυτό που κάνουμε είναι όταν μπορείτε πραγματικά να πάει να τρέξει 278 00:11:47,560 --> 00:11:51,540 το πρόγραμμα, κάθε πρόγραμμα που είστε τρέξιμο στην GDB που χρειάζεται γραμμή εντολών 279 00:11:51,540 --> 00:11:55,010 επιχειρήματα, θα πάμε στην είσοδο όταν ξεκινάτε για πρώτη φορά τη λειτουργία του. 280 00:11:55,010 --> 00:11:59,280 Έτσι, στην περίπτωση αυτή, κάνουμε Τρέξτε με ένα κλειδί των τριών. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 Και θα αρχίσετε πραγματικά. 283 00:12:02,040 --> 00:12:08,480 >> Έτσι, αν δείτε εδώ, έχουμε Αν RC δεν είναι ίση με 2. 284 00:12:08,480 --> 00:12:12,210 Έτσι, αν εσείς έχετε όλα ότι το αρχείο που έστειλα επάνω 285 00:12:12,210 --> 00:12:15,100 θα δείτε ότι είναι σαν το πρώτη γραμμή κύρια λειτουργία μας, σωστά; 286 00:12:15,100 --> 00:12:17,890 Είναι έλεγχο για να δούμε αν έχουμε ο σωστός αριθμός των επιχειρημάτων. 287 00:12:17,890 --> 00:12:20,620 Έτσι, αν αναρωτιέστε εάν RC είναι σωστή, 288 00:12:20,620 --> 00:12:23,250 μπορείτε να κάνετε κάτι σαν Εκτύπωση RC. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC είναι δύο, η οποία είναι ό, τι περιμέναμε, σωστά; 291 00:12:28,640 --> 00:12:32,010 >> Έτσι, μπορούμε να πάμε Επόμενο, και να συνεχίσει μέσα. 292 00:12:32,010 --> 00:12:33,200 Έτσι, έχουμε κάποια βασικά εκεί. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 Και μπορούμε να εκτυπώσετε το κλειδί μας για να βεβαιωθείτε ότι είναι σωστό. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Ενδιαφέρουσες. 297 00:12:39,500 --> 00:12:41,210 Δεν είναι ακριβώς αυτό που περιμέναμε. 298 00:12:41,210 --> 00:12:44,810 Έτσι, ένα πράγμα που πρέπει να συνειδητοποιήσουμε με GDB, επίσης, είναι 299 00:12:44,810 --> 00:12:49,000 ότι δεν είναι πραγματικά μέχρι να χτυπήσει Στη συνέχεια, η γραμμή που μόλις είδατε 300 00:12:49,000 --> 00:12:50,720 είναι πράγματι εκτελεστεί. 301 00:12:50,720 --> 00:12:53,870 Έτσι, σε αυτή την περίπτωση Key δεν έχει εκχωρηθεί ακόμη. 302 00:12:53,870 --> 00:12:57,050 Έτσι, Βασικά είναι κάποια αξία σκουπίδια ότι βλέπετε στο κάτω μέρος εκεί. 303 00:12:57,050 --> 00:13:03,680 Αρνητική $ 120-- --It ένα δισεκατομμύριο και κάτι περίεργα πράγματα σωστά; 304 00:13:03,680 --> 00:13:05,340 Δεν είναι το κλειδί που περιμέναμε. 305 00:13:05,340 --> 00:13:10,720 Αλλά αν έχουμε χτυπήσει την επόμενη, και στη συνέχεια εμείς δοκιμάστε και πλήκτρο Print, είναι τρεις. 306 00:13:10,720 --> 00:13:11,710 >> Όλοι βλέπουμε ότι; 307 00:13:11,710 --> 00:13:13,780 Έτσι, αν έχετε κάτι ότι είστε όπως, περιμένετε. 308 00:13:13,780 --> 00:13:15,540 Αυτό είναι εντελώς λάθος, και δεν ξέρω 309 00:13:15,540 --> 00:13:20,150 πώς αυτό θα συμβεί, γιατί το μόνο που θέλω να κάνετε είναι να ορίσετε έναν αριθμό, μια μεταβλητή, 310 00:13:20,150 --> 00:13:22,900 δοκιμάστε το χτύπημα Στη συνέχεια, προσπαθήστε να εκτυπώσετε και πάλι, και να δούμε αν αυτό λειτουργεί. 311 00:13:22,900 --> 00:13:27,830 Επειδή πρόκειται μόνο για την εκτέλεση και πραγματικά εκχωρήσετε κάτι μετά 312 00:13:27,830 --> 00:13:29,340 χτύπησε Επόμενο. 313 00:13:29,340 --> 00:13:30,336 Έχουν νόημα για όλους; 314 00:13:30,336 --> 00:13:30,836 Λέμε τώρα; 315 00:13:30,836 --> 00:13:33,220 >> ΟΜΙΛΗΤΗΣ 2: Όταν τυχαία αριθμούς τι σημαίνει αυτό; 316 00:13:33,220 --> 00:13:34,790 >> ΟΜΙΛΗΤΗΣ 1: Είναι απλά τυχαίο. 317 00:13:34,790 --> 00:13:35,710 Είναι απλά σκουπίδια. 318 00:13:35,710 --> 00:13:38,320 Είναι απλά κάτι που σας υπολογιστής θα εκχωρήσει τυχαία. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Cool. 321 00:13:40,220 --> 00:13:45,760 Έτσι, τώρα μπορούμε να κινηθούμε μέσα, και έτσι Τώρα έχουμε αυτό το απλό GetString κειμένου. 322 00:13:45,760 --> 00:13:48,600 Έτσι, επιτρέψτε μου να εισαγάγει τι θα συμβεί όταν χτύπησε Επόμενο εδώ. 323 00:13:48,600 --> 00:13:51,320 GDB μας είδος εξαφανίζεται, σωστά; 324 00:13:51,320 --> 00:13:55,720 Αυτό συμβαίνει γιατί GetString τώρα εκτέλεση, σωστά; 325 00:13:55,720 --> 00:14:01,460 Έτσι, όταν είδαμε απλό κείμενο ισούται GetString, ανοιχτή parens και parens, 326 00:14:01,460 --> 00:14:04,380 και χτυπάμε συνέχεια, ότι έχει πράγματι εκτελεστεί τώρα. 327 00:14:04,380 --> 00:14:06,580 Έτσι, σας περιμένει για μας σε κάτι εισόδου. 328 00:14:06,580 --> 00:14:13,560 >> Έτσι, θα πάμε στην είσοδο τροφίμων μας που είναι ό, τι είναι αδυναμία, όπως σας είπα 329 00:14:13,560 --> 00:14:18,020 και ότι ακριβώς λέει ότι είναι τελειώσει την εκτέλεση, ότι το κλειστό 330 00:14:18,020 --> 00:14:19,980 βραχίονα σημαίνει ότι είναι που εξέρχεται από την εν λόγω βρόχο. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Έτσι, μπορούμε να χτυπήσει την επόμενη, και τώρα, όπως είμαι ότι είστε όλοι εξοικειωμένοι από τον Καίσαρα, 333 00:14:25,420 --> 00:14:27,260 Αυτό είναι, τι είναι αυτή η γραμμή πρόκειται να κάνει. 334 00:14:27,260 --> 00:14:32,030 Είναι για Int Ι ισούται με μηδέν, Ν ισούται Strlen, απλό κείμενο, και στη συνέχεια, 335 00:14:32,030 --> 00:14:33,960 Ι είναι μικρότερο από το η, I, συν, συν. 336 00:14:33,960 --> 00:14:35,210 Τι είναι αυτός ο βρόχος πρόκειται να κάνει; 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Ανοίξτε το μήνυμά σας. 339 00:14:39,160 --> 00:14:39,770 Cool. 340 00:14:39,770 --> 00:14:41,330 Οπότε, ας αρχίσει να κάνει αυτό. 341 00:14:41,330 --> 00:14:47,210 >> Έτσι, θα πρέπει αυτή η κατάσταση ταιριάζουν, για πρώτη μας; 342 00:14:47,210 --> 00:14:52,250 Αν πρόκειται για ένα Β, είναι απλό κείμενο I. Εμείς μπορεί να πάρει πληροφορίες για τους ντόπιους μας. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Έτσι, είναι μηδέν, και αν έξι, που περιμένουμε, και το κλειδί μας είναι τρεις. 345 00:14:57,970 --> 00:14:59,227 Το μόνο που έχει νόημα, σωστά; 346 00:14:59,227 --> 00:15:01,310 Αυτοί οι αριθμοί είναι όλα και τι ακριβώς πρέπει να είναι. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Έτσι, βουητό; 349 00:15:03,870 --> 00:15:05,620 ΟΜΙΛΗΤΗΣ 3: Έχω τυχαίων αριθμών για το δικό μου. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 ΟΜΙΛΗΤΗΣ 1: Λοιπόν, μπορούμε να --we check-- μπορούν να συνομιλήσουν για αυτό σε μια δεύτερη. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Αλλά θα πρέπει να πάρει αυτό. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Έτσι, αν έχουμε ένα κεφάλαιο Β για πρώτη μας, 356 00:15:20,130 --> 00:15:22,080 Αυτή η κατάσταση πρέπει να το πιάσει, σωστά; 357 00:15:22,080 --> 00:15:27,120 Έτσι, αν έχουμε χτυπήσει συνέχεια, βλέπουμε ότι αυτό το Αν εκτελεί στην πραγματικότητα. 358 00:15:27,120 --> 00:15:29,220 Διότι, αν είστε μετά μαζί με τον κωδικό σας, 359 00:15:29,220 --> 00:15:33,460 Αυτή η γραμμή εδώ, όπου απλού κειμένου μου αντικαθίσταται με αυτήν την αριθμητική, 360 00:15:33,460 --> 00:15:35,720 εκτελεί μόνο εάν το Αν προϋπόθεση είναι η σωστή σωστά; 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB είναι μόνο για να σας δείξω πράγματα που είναι πραγματικά εκτέλεσης. 363 00:15:40,240 --> 00:15:45,140 Έτσι, αν η προϋπόθεση αυτή Αν δεν πληρούνται, είναι ακριβώς πρόκειται να προχωρήσετε στην επόμενη γραμμή. 364 00:15:45,140 --> 00:15:46,540 Εντάξει; 365 00:15:46,540 --> 00:15:48,510 Έτσι, έχουμε ότι. 366 00:15:48,510 --> 00:15:51,171 Ο βραχίονας αυτός σημαίνει ότι είναι κλειστά από αυτό το βρόχο τώρα. 367 00:15:51,171 --> 00:15:52,420 Έτσι, πρόκειται να ξεκινήσει και πάλι. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Ακριβώς έτσι. 370 00:15:56,280 --> 00:15:59,120 Έτσι, ότι μπορούμε να πάρουμε πληροφορίες για τους ντόπιους μας εδώ, 371 00:15:59,120 --> 00:16:02,575 και βλέπουμε ότι η πρώτη μας επιστολή έχει αλλάξει, σωστά; 372 00:16:02,575 --> 00:16:05,150 Είναι τώρα ένα Ε, όπως θα έπρεπε να είναι. 373 00:16:05,150 --> 00:16:07,360 Έτσι, μπορούμε να συνεχίσουμε. 374 00:16:07,360 --> 00:16:08,500 >> Και έχουμε αυτόν τον έλεγχο. 375 00:16:08,500 --> 00:16:09,916 Και αυτός ο έλεγχος θα πρέπει να λειτουργήσει, σωστά; 376 00:16:09,916 --> 00:16:12,570 Είναι Α θα πρέπει να αλλάξει τρεις επιστολές προς τα εμπρός. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Αλλά αν παρατηρήσετε, θα να πάρει κάτι διαφορετικό. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Έτσι, σε αυτή την περίπτωση εδώ, είναι που αλιεύονται αυτό, και έτσι αυτή η γραμμή εκτελείται, 381 00:16:22,860 --> 00:16:28,620 που τροποποίησε Β μας Όμως, σε αυτή την περίπτωση εδώ, 382 00:16:28,620 --> 00:16:32,860 έχουμε ότι ακριβώς παραλείπεται, και πήγε στο [; L Siff. ?] 383 00:16:32,860 --> 00:16:34,660 Έτσι, κάτι συμβαίνει εκεί. 384 00:16:34,660 --> 00:16:37,780 Αυτό που σου λέει είναι ότι, γνωρίζουμε ότι θα πρέπει να πιάσει εδώ, 385 00:16:37,780 --> 00:16:39,200 αλλά δεν είναι. 386 00:16:39,200 --> 00:16:42,210 Μπορεί ο καθένας να δούμε τι μας το πρόβλημα είναι σε αυτή τη γραμμή; 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Είναι ένα πολύ λεπτό πράγμα. 389 00:16:46,969 --> 00:16:48,510 Και θα μπορούσε επίσης να εξετάσουμε τον κωδικό σας. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Είναι επίσης line-- ξεχνάμε ποια γραμμή είναι σε there-- αλλά είναι στο [δεν ακούγεται]. 392 00:16:54,940 --> 00:16:55,480 Ναι; 393 00:16:55,480 --> 00:16:58,639 >> ΟΜΙΛΗΤΗΣ 4: Είναι στο μεγαλύτερο από σελίδα, αν μπορείτε να το διαβάσετε στο βιβλίο. 394 00:16:58,639 --> 00:16:59,430 ΟΜΙΛΗΤΗΣ 1: Ακριβώς. 395 00:16:59,430 --> 00:17:02,620 Έτσι, το πρόγραμμα εντοπισμού σφαλμάτων δεν θα μπορούσε να πει σας ότι, αλλά το πρόγραμμα εντοπισμού σφαλμάτων 396 00:17:02,620 --> 00:17:05,880 θα μπορούσε να πιάσουμε μια γραμμή ότι ξέρετε δεν λειτουργεί. 397 00:17:05,880 --> 00:17:09,319 Και μερικές φορές, όταν ειδικά αργότερα στο εξάμηνο, όταν 398 00:17:09,319 --> 00:17:12,910 έχουμε να κάνουμε με ένα εκατό, ένα Εκατό λίγες γραμμές κώδικα, και σας 399 00:17:12,910 --> 00:17:16,190 Δεν ξέρω πού είναι αδυναμία, Αυτό είναι ένας πολύ καλός τρόπος για να το κάνουμε. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Έτσι, βρήκαμε το σφάλμα μας. 402 00:17:18,989 --> 00:17:21,530 Μπορείτε να το διορθώσετε στο αρχείο σας, και τότε θα μπορούσε να τρέξει και πάλι, 403 00:17:21,530 --> 00:17:23,029 και όλα θα λειτουργούν τέλεια. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 Και το μεγαλύτερο πράγμα είναι Αυτό μπορεί να φαίνεται σαν, εντάξει. 406 00:17:30,590 --> 00:17:31,090 Ναι. 407 00:17:31,090 --> 00:17:31,370 Cool. 408 00:17:31,370 --> 00:17:32,744 Μπορείτε ήξερε τι ψάχνετε. 409 00:17:32,744 --> 00:17:34,910 Έτσι, θα ήξερε τι να κάνει. 410 00:17:34,910 --> 00:17:39,021 >> GDB μπορεί να είναι εξαιρετικά χρήσιμη γιατί σας μπορεί να εκτυπώσει όλα αυτά τα πράγματα που σας 411 00:17:39,021 --> 00:17:39,520 δεν θα ήταν. 412 00:17:39,520 --> 00:17:41,160 Είναι πολύ πιο χρήσιμο από ό, τι printf. 413 00:17:41,160 --> 00:17:43,440 Πόσοι από εσάς χρησιμοποιείτε όπως δηλώσεις printf 414 00:17:43,440 --> 00:17:46,200 για να καταλάβω, όπου ένα ζωύφιο, σωστά; 415 00:17:46,200 --> 00:17:48,450 Έτσι, με αυτό, δεν το κάνετε πρέπει να συνεχίζω πίσω, 416 00:17:48,450 --> 00:17:51,139 και τους αρέσει σχολιάζοντας Printf, ή σχολιάζοντας έξω, 417 00:17:51,139 --> 00:17:52,930 και να καταλάβω τι θα πρέπει να εκτυπώσετε. 418 00:17:52,930 --> 00:17:55,670 Αυτό πραγματικά σας επιτρέπει ακριβώς να βήμα μέσα, εκτυπώστε τα πράγματα 419 00:17:55,670 --> 00:18:00,000 όπως περνάτε, έτσι, μπορείτε να παρατηρήσουμε πώς αλλάζουν σε πραγματικό χρόνο, 420 00:18:00,000 --> 00:18:02,190 ως πρόγραμμα τρέχει. 421 00:18:02,190 --> 00:18:04,390 >> Και αυτό έχει πάρει λίγο λίγο να συνηθίσει. 422 00:18:04,390 --> 00:18:07,850 Θα συνιστούσα ανεπιφύλακτα ακριβώς το είδος να είναι λίγο απογοητευμένος με αυτό 423 00:18:07,850 --> 00:18:08,930 για τώρα. 424 00:18:08,930 --> 00:18:13,450 Εάν περάσετε μια ώρα πάνω από το την επόμενη εβδομάδα μαθαίνοντας πώς να χρησιμοποιήσετε GDB, 425 00:18:13,450 --> 00:18:16,140 θα σώσει τον εαυτό σας τόσο πολύ χρόνο αργότερα. 426 00:18:16,140 --> 00:18:18,750 Και κυριολεκτικά. λέμε Αυτό σε ανθρώπους κάθε χρόνο, 427 00:18:18,750 --> 00:18:23,890 και θυμάμαι όταν πήρα το τάξη, ήμουν όπως, θα είμαι μια χαρά. 428 00:18:23,890 --> 00:18:24,700 Όχι. 429 00:18:24,700 --> 00:18:27,030 Pset 6 ήρθε και ήμουν όπως, είμαι θα μάθω 430 00:18:27,030 --> 00:18:29,500 πώς να χρησιμοποιήσετε GDB επειδή εγώ δεν κάνω γνωρίζουν τι συμβαίνει εδώ. 431 00:18:29,500 --> 00:18:32,940 >> Έτσι, εάν παίρνετε το χρόνο έτσι χρησιμοποιήσετε σε μικρότερα προγράμματα 432 00:18:32,940 --> 00:18:35,697 ότι θα πάμε να είναι που εργάζονται σε, όπως την εργασία 433 00:18:35,697 --> 00:18:37,530 μέσα από κάτι σαν Visionare, όπως αυτό. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Ή αν θέλετε επιπλέον πρακτική, είμαι βέβαιος Θα μπορούσα να καταλήξουμε σε προγράμματα λάθη, 436 00:18:42,850 --> 00:18:45,300 για σας για να διορθώσετε αν θέλετε. 437 00:18:45,300 --> 00:18:49,300 >> Αλλά αν απλά χρειάζεται κάποιο χρόνο για να πάρει που χρησιμοποιούνται σε αυτό, απλά παίζουν με αυτό, 438 00:18:49,300 --> 00:18:50,550 θα σας εξυπηρετήσει πολύ καλά. 439 00:18:50,550 --> 00:18:52,591 Και αυτό είναι πραγματικά ένα από τα αυτά τα πράγματα που απλά 440 00:18:52,591 --> 00:18:57,340 Πρέπει να δοκιμάσετε, και να πάρετε τα χέρια σας βρώμικα με, προτού να καταλάβουν πραγματικά. 441 00:18:57,340 --> 00:19:02,090 Πραγματικά μόνο αυτό κατανοητό φορά Έπρεπε να διορθώσετε τα πράγματα με αυτό, 442 00:19:02,090 --> 00:19:08,170 και αυτό είναι πολύ καλύτερο να έχουμε μια ιδέα του πώς να debug νωρίτερα παρά αργότερα. 443 00:19:08,170 --> 00:19:08,850 ΟΚ. 444 00:19:08,850 --> 00:19:09,625 Cool. 445 00:19:09,625 --> 00:19:12,960 Ξέρω ότι είναι κάτι σαν μια πορεία σύγκρουσης στην GDB, 446 00:19:12,960 --> 00:19:16,400 και εγώ σίγουρα θα εργαστούμε για να πάρει αυτά να φαίνονται μεγαλύτερα επόμενη φορά. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Cool. 449 00:19:18,280 --> 00:19:20,390 >> Έτσι, αν πάμε πίσω στο PowerPoint μας. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Είναι αυτό πρόκειται να λειτουργήσει; 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 AWH. 454 00:19:30,210 --> 00:19:31,101 Ναι. 455 00:19:31,101 --> 00:19:31,600 ΟΚ. 456 00:19:31,600 --> 00:19:35,480 Έτσι, αν ποτέ χρειαστείτε κάποιο από εκείνους πάλι, υπάρχει η λίστα. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Έτσι δυαδική αναζήτηση, που ο καθένας θυμάται το μεγάλο θέαμα του Δαβίδ 459 00:19:40,830 --> 00:19:42,259 αντιγραφή τηλέφωνο βιβλία στο μισό. 460 00:19:42,259 --> 00:19:44,050 Εγώ δεν πραγματικά να πάρει το τηλέφωνο βιβλία πια, 461 00:19:44,050 --> 00:19:46,530 γιατί όπως όταν κάνετε πάρετε τηλέφωνο βιβλία αυτές τις μέρες; 462 00:19:46,530 --> 00:19:48,220 Πραγματικά δεν ξέρω. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Η δυαδική αναζήτηση. 465 00:19:50,590 --> 00:19:52,464 Υπάρχει κάποιος που θυμάται πώς εκτελέσιμο δουλεύει αναζήτησης; 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Όποιος καθόλου; 468 00:19:55,220 --> 00:19:56,325 Ναι; 469 00:19:56,325 --> 00:19:58,283 ΟΜΙΛΗΤΗΣ 5: Ξέρετε πότε κοιτάς τα οποία τα μισά 470 00:19:58,283 --> 00:20:01,146 θα ήταν σε, με βάση αυτή, και να απαλλαγούμε από το άλλο μισό. 471 00:20:01,146 --> 00:20:01,896 >> ΟΜΙΛΗΤΗΣ 1 Ακριβώς. 472 00:20:01,896 --> 00:20:06,290 Έτσι, δυαδική αναζήτηση, αυτό είναι το είδος της a-- --we ήθελα να καλέσω το διαίρει και βασίλευε. 473 00:20:06,290 --> 00:20:09,170 Έτσι, αυτό που θα κάνουμε είναι θα δούμε στη μέση, 474 00:20:09,170 --> 00:20:11,990 και θα δείτε αν ταιριάζει αυτό που ψάχνετε. 475 00:20:11,990 --> 00:20:15,420 Και αν δεν το κάνει, τότε θα προσπαθήσει να καταλάβω, είναι αυτό που πηγαίνει να μείνει 476 00:20:15,420 --> 00:20:16,450 το μισό ή το δεξί μισό. 477 00:20:16,450 --> 00:20:19,325 Έτσι, αυτό θα μπορούσε να είναι, αν ψάχνετε σε κάτι που είναι αλφαβητικά, 478 00:20:19,325 --> 00:20:20,720 βλέπετε, oh. 479 00:20:20,720 --> 00:20:22,750 Μήπως Allison έρθει πριν από Μ; 480 00:20:22,750 --> 00:20:23,250 Ναι. 481 00:20:23,250 --> 00:20:25,030 Έτσι, θα πάμε να εξετάσουμε το πρώτο εξάμηνο. 482 00:20:25,030 --> 00:20:26,450 >> Ή θα μπορούσε να είναι όπως και με τους αριθμούς. 483 00:20:26,450 --> 00:20:28,830 Οτιδήποτε που μπορείτε να συγκρίνουν, να μπορούν να ταξινομηθούν. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Μπορείτε να χρησιμοποιήσετε τη δυαδική αναζήτηση για. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Έτσι, κάποιος που θυμάται αυτό γράφημα ή τι είναι αυτό; 488 00:20:37,455 --> 00:20:39,520 Είναι Ασυμπτωτική Πολυπλοκότητα. 489 00:20:39,520 --> 00:20:42,830 Έτσι, αυτή η γραφική παράσταση μόνο περιγράφει πόσο καιρό 490 00:20:42,830 --> 00:20:46,230 Σας χρειάζεται για να λύσει ένα πρόβλημα, όπως θα αυξήσει τον αριθμό των πραγμάτων 491 00:20:46,230 --> 00:20:47,090 ότι είστε χρησιμοποιώντας. 492 00:20:47,090 --> 00:20:51,260 >> Έτσι, έχουμε Ν, το οποίο είναι γραμμικό χρόνο. 493 00:20:51,260 --> 00:20:54,560 Εάν N πάνω από δύο, το οποίο είναι ελαφρώς καλύτερα, εξακολουθεί να αναπτύσσεται εξαιρετικά γρήγορα. 494 00:20:54,560 --> 00:20:58,360 Και τότε έχουμε Είσοδος, το οποίο είναι τι θεωρούμε δυαδική αναζήτηση. 495 00:20:58,360 --> 00:21:03,630 Αν παρατηρήσετε, καθώς το πρόβλημά σας παίρνει πολύ και πολύ μεγαλύτερη, 496 00:21:03,630 --> 00:21:06,600 το χρόνο που χρειάζεται για να το λύσουμε δεν έχει πραγματικά αυξηθεί τόσο πολύ. 497 00:21:06,600 --> 00:21:09,010 Είναι σαν συγκρίσιμη εδώ στην αρχή. 498 00:21:09,010 --> 00:21:10,060 Είσαι σαν, εντάξει. 499 00:21:10,060 --> 00:21:13,000 Τίποτα εδώ δεν κάνει πραγματικά έχει σημασία ποια θα χρησιμοποιήσετε, 500 00:21:13,000 --> 00:21:16,220 αλλά μπορείτε να πάρετε έξω με ένα εκατομμύριο, ένα δισεκατομμύριο. 501 00:21:16,220 --> 00:21:20,010 Προσπαθείς να βρείτε some-- --you're προσπαθεί να βρει μια βελόνα στα άχυρα. 502 00:21:20,010 --> 00:21:21,550 >> Νομίζω ότι θέλετε αυτό το πρόβλημα. 503 00:21:21,550 --> 00:21:25,850 Θέλετε αυτής της πολυπλοκότητας, δεν γραμμική, γιατί για όλους σας 504 00:21:25,850 --> 00:21:30,049 ξέρετε το gonna σας να ψάχνουν μέσα κάθε ατομική βελόνα, πράγμα σανό, 505 00:21:30,049 --> 00:21:31,340 προσπαθούν να ψάξουν για τη βελόνα σας. 506 00:21:31,340 --> 00:21:34,730 Και αυτό δεν είναι πάρα πολύ διασκεδαστικό κατά τη γνώμη μου. 507 00:21:34,730 --> 00:21:35,500 Μου αρέσει γρήγορα. 508 00:21:35,500 --> 00:21:36,620 Μου αρέσει αποτελεσματική. 509 00:21:36,620 --> 00:21:40,450 Και όπως εργατικοί φοιτητές σας οι τύποι είναι, ξέρετε εργάζεστε εξυπνότερα, 510 00:21:40,450 --> 00:21:43,010 δεν είναι δύσκολο πράγμα τύπου, πώς θα μπορούν να κάνουν αυτές τις αλγόριθμους. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Έτσι, θα πάμε να περπατήσει μέσω ακριβώς ένα γρήγορο παράδειγμα. 513 00:21:47,910 --> 00:21:51,090 Νομίζω ότι τα παιδιά θα πρέπει να έχουν ένα χέρι σε δυαδική αναζήτηση, 514 00:21:51,090 --> 00:21:54,352 αλλά σε περίπτωση που κάποιος είναι λίγο fuzzy, θέλουν να την ενισχύσει, 515 00:21:54,352 --> 00:21:56,310 θα πάμε να φύγουμε μέσα από ένα παράδειγμα εδώ. 516 00:21:56,310 --> 00:21:59,490 Έτσι, ψάχνουμε για το αν η σειρά περιέχει επτά. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Έτσι, το πρώτο πράγμα που κάνουμε είναι εξετάσουμε στη μέση, δεξιά; 519 00:22:06,010 --> 00:22:09,340 Και επίσης, θα πάμε να κωδικοποίησης Δυαδική αναζήτηση σε μόλις ένα δευτερόλεπτο. 520 00:22:09,340 --> 00:22:11,310 Έτσι, πρόκειται να είναι διασκέδαση. 521 00:22:11,310 --> 00:22:13,710 Έτσι κοιτάξουμε το Μέση λίγο συστοιχίες 3. 522 00:22:13,710 --> 00:22:15,501 Μήπως 3 ισούται με 7; 523 00:22:15,501 --> 00:22:16,000 Δεν το κάνει. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Είναι έξι. 526 00:22:19,550 --> 00:22:21,480 Έτσι, είναι μικρότερη από ή μεγαλύτερο από επτά; 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Λιγότερο από. 529 00:22:23,960 --> 00:22:24,570 Ναι. 530 00:22:24,570 --> 00:22:25,170 Νίκαια παιδιά δουλειά. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Αισθάνομαι πως θα έπρεπε να έχουν καραμέλα γιατί 533 00:22:27,360 --> 00:22:29,460 θέλουν να το ρίξει έξω στις αυλές. 534 00:22:29,460 --> 00:22:30,270 Είναι αυτό που εγώ είμαι πρόκειται να κάνει την επόμενη εβδομάδα. 535 00:22:30,270 --> 00:22:31,436 Θα σας κρατήσει παιδιά απότομη. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Έτσι, πετάμε ότι πρώτο εξάμηνο, σωστά; 538 00:22:34,690 --> 00:22:35,670 ήταν λιγότερο από ό, τι. 539 00:22:35,670 --> 00:22:39,325 γνωρίζουμε ότι τα πάντα σε αυτή την αριστερή πλευρά 540 00:22:39,325 --> 00:22:41,700 πρόκειται να είναι μικρότερη από ό, τι είμαστε πραγματικά αναζητούν. 541 00:22:41,700 --> 00:22:43,491 Έτσι, δεν υπάρχει καμία ανάγκη να να δώσουν προσοχή σε αυτό. 542 00:22:43,491 --> 00:22:45,120 Απλά ξεχάστε το. 543 00:22:45,120 --> 00:22:48,720 Έτσι, τώρα θα δούμε στο δεξί μας χέρι, και να κοιτάξουμε τη μέση εκεί πέρα, 544 00:22:48,720 --> 00:22:50,510 και τώρα είναι εννέα. 545 00:22:50,510 --> 00:22:55,510 Έτσι, 9 is-- --Everyone; 546 00:22:55,510 --> 00:22:57,470 Μεγαλύτερη από ό, τι είμαστε αναζητούν, σωστά; 547 00:22:57,470 --> 00:22:59,860 Έτσι, θα πάμε να ρίξει μακριά τα πάντα προς τα δεξιά. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Όπως αυτό. 550 00:23:01,940 --> 00:23:03,700 Τώρα, το μόνο που μας μένει είναι μία. 551 00:23:03,700 --> 00:23:07,760 Έτσι ελέγχουμε, είναι αυτό τι ψάχνουμε; είναι. 552 00:23:07,760 --> 00:23:08,970 Βρήκαμε αυτό που θέλαμε. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Έτσι τελειώσαμε. 555 00:23:11,690 --> 00:23:12,550 Διγραμμική αναζήτησης. 556 00:23:12,550 --> 00:23:15,740 >> Και αν παρατηρήσετε, θα είχε επτά εισόδους εκεί. 557 00:23:15,740 --> 00:23:24,320 Το μόνο που μας πήρε σαν τρεις φορές, αλλά αν κάνεις σαν ένα δισεκατομμύριο, 558 00:23:24,320 --> 00:23:28,190 εσείς ξέρετε πόσα βήματα που θα να λάβει εάν είχαμε τέσσερα δισεκατομμύρια πράγματα; 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Οποιαδήποτε εικασίες; 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Είναι 32. 563 00:23:33,960 --> 00:23:37,110 32 βήματα για να βρείτε κάτι σε τέσσερα δισεκατομμύρια 564 00:23:37,110 --> 00:23:39,650 στοιχείο του πίνακα, λόγω των αρμοδιοτήτων των δύο. 565 00:23:39,650 --> 00:23:43,550 Έτσι, δύο είναι 32, είναι σε τέσσερα δισεκατομμύρια. 566 00:23:43,550 --> 00:23:50,430 >> Έτσι, πολύ τρελό πώς είστε ακόμα μέσα σαν ένα σχετικά μικρό αριθμό των βημάτων 567 00:23:50,430 --> 00:23:52,650 να βρείτε κάτι στο τέσσερα δισεκατομμύρια στοιχεία. 568 00:23:52,650 --> 00:23:55,730 Έτσι, σε αυτό το σημείωμα, είμαστε πρόκειται να κωδικοποιήσει αυτό 569 00:23:55,730 --> 00:23:58,950 έτσι εσείς μπορείτε πραγματικότητα είδος δούμε πώς αυτό λειτουργεί. 570 00:23:58,950 --> 00:24:01,520 Εντάξει, έτσι εσείς μπορεί να κωδικοποιήσει. 571 00:24:01,520 --> 00:24:04,100 Πάω να σας παιδιά ας μιλήσουμε για λίγο. 572 00:24:04,100 --> 00:24:07,970 Γνωρίστε τους ανθρώπους γύρω σας, η οποία είναι τι κάποιος ήθελε από την τελευταία ενότητα. 573 00:24:07,970 --> 00:24:10,280 >> Έτσι, να γνωρίσουν τους ανθρώπους γύρω σας. 574 00:24:10,280 --> 00:24:11,305 Συζήτηση για λίγο. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 Και το μόνο που θέλω από σένα ρε παιδιά τώρα είναι απλά 577 00:24:15,730 --> 00:24:17,575 προσπαθήστε να δημιουργήσετε ένα περίγραμμα του ψευδοκώδικα. 578 00:24:17,575 --> 00:24:18,075 Εντάξει; 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Πω πω. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Το μόνο που θέλω από σας παιδιά είναι είστε ακριβώς πρόκειται να συμπληρώσετε σε αυτό, ενώ την περίπτωση. 583 00:24:29,520 --> 00:24:32,170 Γι 'αυτό και έχουν θέσει αυτά τα ανώτερα και κάτω όρια που 584 00:24:32,170 --> 00:24:35,250 αντιπροσωπεύουν την αρχή και το τέλος της σειράς μας. 585 00:24:35,250 --> 00:24:40,440 Και θα έχετε την ευκαιρία να πραγματικά βρόχο μέσα και να καταλάβω 586 00:24:40,440 --> 00:24:42,470 τι κάνουμε σε αυτό το βρόχο while. 587 00:24:42,470 --> 00:24:45,810 >> Έτσι, αν μπορείτε να υπολογίσετε out-- έχω ένας υπαινιγμός there-- ποιες είναι οι περιπτώσεις 588 00:24:45,810 --> 00:24:46,640 ότι έχουμε εδώ; 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Έτσι, εάν θέλετε να καταλάβω το περιπτώσεις, θα ψευδοκώδικα εκείνες 591 00:24:51,560 --> 00:24:53,350 και στη συνέχεια θα κωδικοποιήσει τους πραγματικότητα. 592 00:24:53,350 --> 00:24:55,330 Και αυτό πρόκειται να είναι, εγώ πιστεύω, ελπίζω ότι θα 593 00:24:55,330 --> 00:24:56,788 να είναι λίγο πιο εύκολο από ό, τι θα περιμένατε. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Επειδή δεν είναι ότι μεγάλο μέρος του κώδικα, στην πραγματικότητα, η οποία είναι πραγματικά δροσερό. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> MM-hm; 598 00:25:35,018 --> 00:25:35,893 >> Φοιτητής: [δεν ακούγεται]; 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Διδάσκων: Ναι. 601 00:25:37,650 --> 00:25:38,595 Υπήρχε κάτι να βρεθεί στη μέση. 602 00:25:38,595 --> 00:25:39,552 >> Φοιτητής: Έτσι μπορούμε να χρησιμοποιήσουμε. 603 00:25:39,552 --> 00:25:39,770 ΟΚ. 604 00:25:39,770 --> 00:25:40,603 >> Διδάσκων: Τέλεια. 605 00:25:40,603 --> 00:25:42,950 Έτσι, αυτό είναι το πρώτο πράγμα που πρέπει να κάνουμε. 606 00:25:42,950 --> 00:25:44,330 Έτσι, βρείτε τη μέση. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Μεγάλη. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Έτσι έχετε μια ιδέα για το πώς θα μπορούσαμε να πραγματικά να βρει τη μέση με κωδικό; 611 00:25:55,010 --> 00:25:55,980 >> Φοιτητής: Ναι. 612 00:25:55,980 --> 00:25:57,000 n πάνω από 2; 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Διδάσκων: Έτσι n πάνω από 2. 615 00:25:59,500 --> 00:26:05,170 Έτσι, ένα πράγμα που πρέπει να θυμάστε είναι ότι άνω και κάτω όρια σας αλλάζουν. 616 00:26:05,170 --> 00:26:08,110 Κρατάμε ασφυκτικά το μέρος της συστοιχίας ψάχνουμε να. 617 00:26:08,110 --> 00:26:11,970 Έτσι n πάνω από 2 θα λειτουργήσει μόνο για το πρώτο πράγμα που κάνουμε. 618 00:26:11,970 --> 00:26:17,810 Έτσι, λαμβάνοντας άνω και κάτω υπόψη, πώς θα μπορούσε να παίρνουμε ότι μεσαίο στοιχείο; 619 00:26:17,810 --> 00:26:20,640 Επειδή θέλουμε την μέση μεταξύ των άνω και κάτω, σωστά; 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 MM-hm; 622 00:26:22,494 --> 00:26:23,369 >> Φοιτητής: [δεν ακούγεται]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> Διδάσκων: Έτσι έχουμε κάποια μέση. 625 00:26:28,080 --> 00:26:32,730 Και αυτό θα είναι ανώτερο συνδυασμό με τις χαμηλότερες πάνω από 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Awesome. 628 00:26:35,690 --> 00:26:36,570 Εκεί πάμε. 629 00:26:36,570 --> 00:26:37,280 Μια γραμμή προς τα κάτω. 630 00:26:37,280 --> 00:26:38,560 Εσείς είστε στο δρόμο σας. 631 00:26:38,560 --> 00:26:41,400 Έτσι, τώρα που έχουμε μας μεσαίο, τι θέλουμε να κάνουμε; 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Ακριβώς σε γενικές γραμμές. 634 00:26:45,900 --> 00:26:47,734 Δεν χρειάζεται να το κωδικοποιήσει. 635 00:26:47,734 --> 00:26:48,335 Ναι. 636 00:26:48,335 --> 00:26:49,210 Φοιτητής: [δεν ακούγεται]; 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 Διδάσκων: Έτσι είναι συν επειδή είστε εύρεση του μέσου όρου μεταξύ των δύο 639 00:27:10,310 --> 00:27:10,810 από αυτούς. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Έτσι, αν σκεφτείτε τους ως είδος της αύξησης από τις πλευρές, 642 00:27:17,370 --> 00:27:21,640 σκέφτομαι καθώς πλησιάζετε η μέση, θέλετε έτσι. 643 00:27:21,640 --> 00:27:27,150 Έτσι, αν ήταν και στις δύο πλευρές του μέση, και έχουμε σαν 5 και 7. 644 00:27:27,150 --> 00:27:31,440 Όταν τα προσθέσετε μαζί σας να πάρει 12, διαιρείτε με το 2, είναι 6. 645 00:27:31,440 --> 00:27:33,726 >> Μερικές φορές είναι δύσκολο να εξηγήσει γιατί ότι λειτουργεί, 646 00:27:33,726 --> 00:27:35,600 αλλά εάν εργάζεστε μέσω ένα παράδειγμα, μερικές φορές, 647 00:27:35,600 --> 00:27:37,962 αυτό θα σας βοηθήσει να καταλάβω αν θα πρέπει να είναι συν ή μείον. 648 00:27:37,962 --> 00:27:38,846 Ναι. 649 00:27:38,846 --> 00:27:40,830 >> Φοιτητής: [δεν ακούγεται] ακριβώς στη μέση 650 00:27:40,830 --> 00:27:43,950 αν είχαν μια περίπτωση όπου υπάρχει μια πολύ μικρότερους αριθμούς 651 00:27:43,950 --> 00:27:45,860 και σαν ένας μεγάλος αριθμός; 652 00:27:45,860 --> 00:27:49,750 >> Διδάσκων: Έτσι, το μόνο που χρειάζεστε είναι το μέσον της συστοιχίας. 653 00:27:49,750 --> 00:27:53,010 Έτσι, αν είχατε μια δέσμη των μικρών αριθμών και στη συνέχεια ένα πραγματικά μεγάλο αριθμό 654 00:27:53,010 --> 00:27:54,799 Στο τέλος, δεν έχει σημασία. 655 00:27:54,799 --> 00:27:56,840 Το μόνο που έχει σημασία είναι ότι από όπου και αν ταξινομηθεί, απλά 656 00:27:56,840 --> 00:27:59,339 θέλουμε να δούμε τη μέση του η συστοιχία γιατί είστε ακόμα 657 00:27:59,339 --> 00:28:00,700 τεμαχισμό πρόβλημα σας στο μισό. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Cool. 660 00:28:03,680 --> 00:28:06,430 Έτσι, τώρα που έχουμε το μεσαίο, τι κάνουμε το επόμενο βήμα; 661 00:28:06,430 --> 00:28:07,150 >> Φοιτητής: Σύγκριση. 662 00:28:07,150 --> 00:28:08,150 Διδάσκων: Η συγκρίνετε. 663 00:28:08,150 --> 00:28:11,670 Έτσι συγκρίνετε μέση για να value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Cool. 666 00:28:15,160 --> 00:28:17,950 Έτσι βλέπετε εδώ έχουμε Η τιμή αυτή θέλουμε εδώ. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Θυμηθείτε ότι αυτό είναι ένας πίνακας. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Έτσι μέση αναφέρεται στο ευρετήριο. 671 00:28:26,970 --> 00:28:29,785 Έτσι, θέλουμε να κάνουμε τις αξίες της μέσης. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Μην ξεχνάτε, αν θέλετε να συγκρίνουν, διπλά ίσων. 674 00:28:35,650 --> 00:28:38,250 Μπορείτε να το κάνετε μόνο ισούται είστε ακριβώς πρόκειται να τις μεταβιβάσει εκ νέου, 675 00:28:38,250 --> 00:28:41,090 και στη συνέχεια, φυσικά, είναι πρόκειται να είναι η τιμή που θέλετε. 676 00:28:41,090 --> 00:28:42,300 Έτσι δεν το κάνουμε αυτό. 677 00:28:42,300 --> 00:28:44,350 >> Έτσι θα πάμε να δούμε αν οι τιμές στη μέση 678 00:28:44,350 --> 00:28:46,460 είναι ίση με την αξία που θέλουμε. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Μην ξεχάσετε τιράντες σας. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox θα πρέπει να πάει μακριά. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Οπότε τι κάνουμε σε αυτή την περίπτωση; 685 00:28:56,200 --> 00:28:59,360 Αν είναι αυτό που θέλουμε να επιστρέψουν; 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Προσπαθούμε να πω. 688 00:29:02,626 --> 00:29:03,440 >> Φοιτητής: Εκτυπώστε μακριά. 689 00:29:03,440 --> 00:29:05,314 >> Διδάσκων: Λοιπόν, εμείς Δεν θέλετε να εκτυπώσετε. 690 00:29:05,314 --> 00:29:08,220 Έτσι, αυτό είναι μια bool εδώ, έτσι ώστε να θέλουν να επιστρέψουν αληθείς ή ψευδείς. 691 00:29:08,220 --> 00:29:12,280 Εμείς λέμε, είναι αυτός ο αριθμός μια [? RRA; ?] Έτσι, αν αυτό είναι, 692 00:29:12,280 --> 00:29:13,788 εμείς απλά επιστρέψει αλήθεια. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Αν μπορώ να συλλαβίσω αλήθεια. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> Φοιτητής: Γιατί δεν θα σας επιστρέψει το μηδέν; 697 00:29:20,805 --> 00:29:22,930 Διδάσκων: Έτσι, θα μπορούσατε επιστρέφει μηδέν, αν ήθελε. 698 00:29:22,930 --> 00:29:26,780 Αλλά στην περίπτωση αυτή, επειδή λειτουργία μας επιστρέφει μια bool, 699 00:29:26,780 --> 00:29:28,962 θα πρέπει να επιστρέψει είτε αληθείς ή ψευδείς. 700 00:29:28,962 --> 00:29:30,920 Φοιτητής: Όταν είσαι λέγοντας boolean έκφραση, 701 00:29:30,920 --> 00:29:33,450 μπορείτε να το ρυθμίσετε ψευδής; 702 00:29:33,450 --> 00:29:39,860 Όπως και αν θέλω να πω, αν αυτή η προϋπόθεση δεν πληρούται, όπως είναι άνω ισούται με ψευδείς. 703 00:29:39,860 --> 00:29:42,332 Θα το καταλάβετε αν απλά βάλει ψεύτικες από την άλλη πλευρά; 704 00:29:42,332 --> 00:29:43,040 Διδάσκων: Ναι. 705 00:29:43,040 --> 00:29:44,820 Έτσι, στην πραγματικότητα, εάν είστε ποτέ να κάνει κάτι 706 00:29:44,820 --> 00:29:49,600 όπως είναι ανώτερο ή είναι χαμηλότερη, ότι επιστρέφει true ή false 707 00:29:49,600 --> 00:29:53,850 και αυτό είναι πραγματικά κακό στυλ ας πούμε ισούται ισούται αλήθεια ή ισοτίμων 708 00:29:53,850 --> 00:29:54,840 ισούται με ψευδείς. 709 00:29:54,840 --> 00:30:00,210 Θέλετε να χρησιμοποιήσετε αυτό το αποτέλεσμα όπως η ίδια η επιταγή σας. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Δεν είναι αυτό που ήθελα. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Αυτό είναι ό, τι ήθελα. 714 00:30:09,240 --> 00:30:13,205 Έτσι, στην περίπτωση του ζητάς περίπου κάτι σαν να σώσει αυτό το c. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Έτσι, αν έχουμε int main (void) και κάτι σαν αυτό. 717 00:30:25,150 --> 00:30:31,922 Και έχετε, αν είναι ανώτερο κάποιας εισόδου και είστε 718 00:30:31,922 --> 00:30:33,630 ρωτά εάν μπορείτε να το κάνετε κάτι σαν αυτό; 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Σωστά; 721 00:30:35,679 --> 00:30:37,470 ΣΠΟΥΔΑΣΤΩΝ: Προσπαθούσα να το κάνει [δεν ακούγεται]. 722 00:30:37,470 --> 00:30:38,450 Διότι, αν it's-- 723 00:30:38,450 --> 00:30:39,200 Διδάσκων: Δεξιά. 724 00:30:39,200 --> 00:30:41,197 Έτσι θέλετε αυτό να είναι ψευδής, σωστά; 725 00:30:41,197 --> 00:30:41,780 Φοιτητής: Ναι. 726 00:30:41,780 --> 00:30:45,960 Διδάσκων: Έτσι, σε αυτή την περίπτωση θα θέλουν να εκτελέσει αν δεν είναι αλήθεια. 727 00:30:45,960 --> 00:30:50,510 Έτσι, το δροσερό πράγμα που κάνετε εκεί είναι αυτό. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Έτσι θυμηθείτε θαυμαστικό σημείο αναιρεί τα πράγματα; 730 00:30:55,650 --> 00:30:58,270 Λέει [δεν ακούγεται] δεν σημαίνει. 731 00:30:58,270 --> 00:31:03,590 Έτσι, αν κοιτάξουμε μόνο αυτό το μέρος εδώ, τότε θα 732 00:31:03,590 --> 00:31:05,740 λένε ότι αποτιμάται σε ψευδείς, όπως θέλετε να. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Δεν είναι ψευδείς είναι αληθινό αυτό που σημαίνει ότι αυτή θα εκτελέσει. 735 00:31:09,880 --> 00:31:11,037 Μήπως αυτό έχει νόημα; 736 00:31:11,037 --> 00:31:11,620 Φοιτητής: Ναι. 737 00:31:11,620 --> 00:31:12,453 Διδάσκων: Awesome. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 ΟΚ. 740 00:31:14,300 --> 00:31:16,330 Έτσι, θα μπορούσαμε απλά να επιστρέψει αλήθεια σε αυτή την περίπτωση. 741 00:31:16,330 --> 00:31:20,357 Έτσι τώρα έχουμε δύο άλλα περιπτώσεις σε αυτή την περίπτωση. 742 00:31:20,357 --> 00:31:21,565 Ποιες είναι οι δύο άλλες υποθέσεις μας; 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Ας το κάνουμε έτσι. 745 00:31:32,900 --> 00:31:40,660 Ας αρχίσουμε λοιπόν με άλλο αν οι τιμές στη μέση 746 00:31:40,660 --> 00:31:43,230 είναι μικρότερη από την τιμή που θέλουμε. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Έτσι αξία μας στη μέση είναι λιγότερο από την τιμή που ψάχνουμε. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Έτσι, η οποία δεσμεύεται να κάνετε πιστεύω ότι θέλετε να ενημερώσετε; 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Πάνω ή κάτω; 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Άνω; 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Έτσι ποια πλευρά της συστοιχίας θα πάμε να εξετάσουμε; 757 00:32:06,470 --> 00:32:07,500 >> ΜΑΘΗΤΗ: Το χαμηλότερο. 758 00:32:07,500 --> 00:32:09,750 >> Διδάσκων: Εμείς θα πάμε να ψάχνει στα αριστερά. 759 00:32:09,750 --> 00:32:11,120 Έτσι, άλλο αν λίγη αξία είναι μικρότερη. 760 00:32:11,120 --> 00:32:14,730 Έτσι μέση αξία σας εδώ είναι μικρότερη από ό, τι θέλουμε. 761 00:32:14,730 --> 00:32:17,202 Έτσι θέλουμε να λάβει η δεξιά πλευρά του πίνακα μας. 762 00:32:17,202 --> 00:32:18,910 Έτσι θα πάμε να ενημερώσετε κάτω φράγμα μας. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Έτσι θα επανεκχώρηση κάτω μας. 765 00:32:23,020 --> 00:32:25,221 Και τι νομίζετε ότι πρέπει να είναι μικρότερη; 766 00:32:25,221 --> 00:32:26,304 ΜΑΘΗΤΗ: Η μέση τιμή; 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Διδάσκων: Έτσι, η μέση value-- 769 00:32:28,820 --> 00:32:30,136 Φοιτητής: Συν 1. 770 00:32:30,136 --> 00:32:31,010 Διδάσκων: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Μπορεί κάποιος να μου πει γιατί έχουμε ότι συν 1; 773 00:32:34,380 --> 00:32:35,730 >> Φοιτητής: [? Δεν υπάρχει τιμή;] είναι πιο ίσο με αυτό. 774 00:32:35,730 --> 00:32:36,120 >> Διδάσκων: Δεξιά. 775 00:32:36,120 --> 00:32:38,661 Επειδή γνωρίζουμε ήδη ότι Μέση τιμή μας δεν είναι ίση με 776 00:32:38,661 --> 00:32:42,750 αυτό και θέλουμε να την αποκλείσει από όλες τις μεταγενέστερες αναζητήσεις. 777 00:32:42,750 --> 00:32:46,360 Εάν ξεχάσετε ότι συν 1, αυτό θα ήθελα βρόχο επ 'αόριστον. 778 00:32:46,360 --> 00:32:49,620 Και θα πρέπει ακριβώς να αλιεύονται σε μια άπειρο βρόχο και στη συνέχεια θα segfault 779 00:32:49,620 --> 00:32:50,370 και τα πράγματα πάνε άσχημα. 780 00:32:50,370 --> 00:32:54,780 Έτσι, πάντα να βεβαιωθείτε ότι δεν είστε συμπεριλαμβανομένης της αξίας που μόλις 781 00:32:54,780 --> 00:32:55,380 κοίταξε. 782 00:32:55,380 --> 00:32:58,530 Έτσι φροντίζουμε ώστε με ένα συν 1. 783 00:32:58,530 --> 00:33:04,840 >> Έτσι τώρα έχουμε την τελευταία μας κατάσταση που πάντα μου για λόγους ασφαλείας 784 00:33:04,840 --> 00:33:12,664 μπορείτε να δείτε εδώ, αλλιώς εάν η αξία σε η μεσαία είναι μεγαλύτερη από την αξία 785 00:33:12,664 --> 00:33:13,163 θέλουμε. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Αυτό σημαίνει ότι θέλουμε το αριστερό μισό χέρι. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Έτσι που το ένα θα πάμε να ενημερώσετε; 790 00:33:23,260 --> 00:33:23,760 Άνω. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 Και αυτό είναι ένα από αυτό θα ισούται; 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Μέση μείον 1, διότι, Φυσικά, θέλουμε 795 00:33:33,690 --> 00:33:38,370 για να βεβαιωθείτε ότι δεν είμαστε κοιτάζοντας και πάλι σε αυτή τη μεσαία τιμή. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 Και τότε την έχουμε. 798 00:33:45,110 --> 00:33:45,610 Έτσι μπράβο. 799 00:33:45,610 --> 00:33:46,820 Αυτό είναι το μόνο δυαδική αναζήτηση είναι. 800 00:33:46,820 --> 00:33:48,190 Δεν είναι τόσο κακό, σωστά; 801 00:33:48,190 --> 00:33:51,590 Είναι σαν 10 γραμμές κώδικα με άσπρο διάστημα. 802 00:33:51,590 --> 00:33:57,510 Έτσι, πολύ ισχυρή, πολύ χρήσιμο, θα σας να το χρησιμοποιεί σε μια από τις μετέπειτα psets σας. 803 00:33:57,510 --> 00:33:59,360 Ίσως δεν είναι αυτό, αλλά αργότερα. 804 00:33:59,360 --> 00:34:00,670 Έτσι μαθαίνουν. 805 00:34:00,670 --> 00:34:01,510 Love it. 806 00:34:01,510 --> 00:34:02,980 Θα σας φέρονται καλά. 807 00:34:02,980 --> 00:34:05,370 Έτσι κάνει κάποιος που έχει κάποια ερωτήσεις σχετικά με δυαδική αναζήτηση; 808 00:34:05,370 --> 00:34:06,196 Ναι. 809 00:34:06,196 --> 00:34:09,840 >> Φοιτητής: Πειράζει αν n σας είναι άρτιο ή περιττό; 810 00:34:09,840 --> 00:34:10,750 >> Διδάσκων: Όχι. 811 00:34:10,750 --> 00:34:18,150 Επειδή το ρίχνει στη μέση, όπως ένας int, θα περικόψει μόνο. 812 00:34:18,150 --> 00:34:21,600 Έτσι θα μείνει έναν ακέραιο και θα τελικά να ταξινομήσετε μέσω όλων. 813 00:34:21,600 --> 00:34:23,909 Έτσι, δεν έχετε να ανησυχείτε για αυτό. 814 00:34:23,909 --> 00:34:24,580 Όλοι καλό; 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Awesome. 817 00:34:26,850 --> 00:34:27,919 Cool. 818 00:34:27,919 --> 00:34:30,836 Έτσι, εσείς πήρε αυτό. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Προβολή διαφανειών. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Έτσι όπως μιλούσαμε για, ξέρω David αναφέρθηκε runtimes πολυπλοκότητα. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Έτσι, στην καλύτερη περίπτωση, είναι ακριβώς ένα, το οποίο ονομάζουμε σταθερό χρόνο. 825 00:34:50,340 --> 00:34:51,909 Μπορεί κάποιος να μου πει γιατί αυτό θα μπορούσε να είναι; 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Τι είδους σενάριο θα ήταν αυτό συνεπάγεται; 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 MM-HM. 830 00:34:58,760 --> 00:34:59,926 >> Φοιτητής: [δεν ακούγεται] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Διδάσκων: Έτσι, η μέση είναι η το πρώτο στοιχείο που θα έρθει να, έτσι δεν είναι; 833 00:35:03,830 --> 00:35:08,167 Έτσι, είτε μια σειρά ενός ή ό, τι ψάχνουμε μόνο 834 00:35:08,167 --> 00:35:09,750 συμβαίνει να είναι σκαμπίλι χωματίδα στη μέση. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Έτσι, αυτό είναι το καλύτερο περίπτωσή μας. 837 00:35:13,380 --> 00:35:17,540 Μπορείτε να πάρετε σε πραγματικά προβλήματα, πιθανόν να μην πρόκειται να φτάσουν [δεν ακούγεται] ότι συχνά. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Τι γίνεται χειρότερη περίπτωση μας; 840 00:35:19,750 --> 00:35:21,270 Χειρότερη περίπτωση μας είναι log n. 841 00:35:21,270 --> 00:35:25,360 Και αυτό έχει να κάνει με το σύνολο αρμοδιότητες των δύο πράγμα που μίλησα. 842 00:35:25,360 --> 00:35:30,930 >> Έτσι, στη χειρότερη περίπτωση, αυτό θα σήμαινε ότι θα έπρεπε να κόψουν τον πίνακα κάτω 843 00:35:30,930 --> 00:35:33,270 έως ότου ήταν ένα στοιχείο του ενός. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Έτσι θα έπρεπε να το τεμαχίσει κάτω στο μισό όπως πολλές φορές έχουμε ενδεχομένως θα μπορούσε. 846 00:35:38,930 --> 00:35:41,430 Γι 'αυτό είναι log n, επειδή μπορείτε απλά να κρατήσει τη διαίρεση δια δύο. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Έτσι υποθέσεις, πράγματα που Πρέπει να γνωρίζει αν είστε ποτέ 849 00:35:45,830 --> 00:35:48,050 πρόκειται να χρησιμοποιήσετε μια δυαδική αναζήτηση. 850 00:35:48,050 --> 00:35:50,680 Τα στοιχεία σας θα πρέπει να ταξινομηθούν. 851 00:35:50,680 --> 00:35:53,890 Θα πρέπει να διευθετηθεί επειδή αυτός είναι ο μόνος τρόπος που 852 00:35:53,890 --> 00:35:57,060 μπορεί να ξέρει εάν είστε σε θέση να ρίξει έξω το μισό από αυτό. 853 00:35:57,060 --> 00:36:00,260 >> Αν είχε αυτή την μπερδεμένες τσάντα των αριθμών και λέτε, 854 00:36:00,260 --> 00:36:05,380 Εντάξει, Πάω να ελέγξτε το μεσαίο καθώς και ο αριθμός Ψάχνω για 855 00:36:05,380 --> 00:36:08,510 είναι μικρότερη από εκείνη, είμαι απλώς πρόκειται σε αυθαίρετα ρίξει έξω κατά το ήμισυ. 856 00:36:08,510 --> 00:36:11,130 Δεν θα ξέρετε αν σας οι αριθμοί σε αυτό το άλλο μισό. 857 00:36:11,130 --> 00:36:12,655 Η λίστα σας θα πρέπει να διευθετηθεί. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Όπως επίσης, αυτό μπορεί να είναι προχωρά λίγο, 860 00:36:16,560 --> 00:36:18,360 αλλά θα πρέπει να έχουν τυχαία πρόσβαση. 861 00:36:18,360 --> 00:36:21,940 Θα πρέπει να είναι σε θέση να απλά πηγαίνετε σε αυτό το μεσαίο στοιχείο. 862 00:36:21,940 --> 00:36:25,110 Αν έχετε να διασχίσει μέσα από κάτι 863 00:36:25,110 --> 00:36:28,630 ή σας παίρνει επιπλέον μέτρα για να φτάσουμε σε αυτό το μεσαίο στοιχείο, 864 00:36:28,630 --> 00:36:31,750 Δεν είναι log n πια γιατί μπορείτε να προσθέσετε περισσότερη δουλειά σε αυτό. 865 00:36:31,750 --> 00:36:34,800 Και αυτό θα κάνει μια μικρή περισσότερο νόημα σε δύο εβδομάδες, 866 00:36:34,800 --> 00:36:37,950 αλλά εγώ ακριβώς το είδος της ήθελε να προλογίσει, σας παιδιά δίνουν μια ιδέα του τι είναι 867 00:36:37,950 --> 00:36:38,999 να έρθει. 868 00:36:38,999 --> 00:36:40,790 Αλλά αυτά είναι τα δύο σημαντικές υποθέσεις 869 00:36:40,790 --> 00:36:44,804 ότι χρειάζεστε για ένα δυαδικό λίστα. 870 00:36:44,804 --> 00:36:45,720 Βεβαιωθείτε ότι είναι ταξινομημένο. 871 00:36:45,720 --> 00:36:47,920 Αυτό είναι το μεγάλο για εσείς τώρα. 872 00:36:47,920 --> 00:36:52,170 Και για να μπορέσουμε να προχωρήσουμε σε το υπόλοιπο του είδους μας. 873 00:36:52,170 --> 00:36:56,444 Έτσι, τέσσερις sorts-- φούσκα, εισαγωγή, επιλογή, και συγχώνευση. 874 00:36:56,444 --> 00:36:57,485 Είναι όλοι το είδος της δροσερό. 875 00:36:57,485 --> 00:37:02,860 Αν εσείς αποφασίσετε να πάρετε CS 124, θα μάθετε για όλα τα είδη των ειδών. 876 00:37:02,860 --> 00:37:07,575 Και αν είστε ένας ανεμιστήρας XKCD, υπάρχει είναι ένα πραγματικά δροσερό κόμικ περίπου 877 00:37:07,575 --> 00:37:11,530 όπως πραγματικά αναποτελεσματική είδη, τα οποία θα συνιστούμε να πρόκειται να δούμε. 878 00:37:11,530 --> 00:37:16,170 Ένας από αυτούς είναι σαν πανικού είδος, το οποίο Είναι σαν, OH όχι, επιστρέφουν τυχαία σειρά. 879 00:37:16,170 --> 00:37:16,991 Διακοπή λειτουργίας του συστήματος. 880 00:37:16,991 --> 00:37:17,490 Αφήστε το. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Έτσι geeky χιούμορ είναι πάντα καλό. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Έτσι κάνει κάποιος που θυμάται είδος του όπως ακριβώς μια γενική ιδέα 885 00:37:25,750 --> 00:37:27,810 του πώς λειτουργεί bubble sort. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Θυμάστε; 888 00:37:32,155 --> 00:37:32,755 >> Φοιτητής: Ναι. 889 00:37:32,755 --> 00:37:33,970 >> Διδάσκων: Πηγαίνετε για αυτό. 890 00:37:33,970 --> 00:37:38,980 >> Φοιτητής: Έτσι θα πάμε μέσα και αν αυτή είναι μεγαλύτερη, τότε θα ανταλλάξουν τα δύο. 891 00:37:38,980 --> 00:37:39,820 >> Διδάσκων: MM-HM. 892 00:37:39,820 --> 00:37:40,564 Ακριβώς. 893 00:37:40,564 --> 00:37:41,730 Έτσι απλά διέτρεξε. 894 00:37:41,730 --> 00:37:43,050 Μπορείτε να ελέγξετε δύο αριθμούς. 895 00:37:43,050 --> 00:37:46,510 Αν η μία πριν είναι μεγαλύτερο από τη μία μετά, 896 00:37:46,510 --> 00:37:50,230 μπορείτε απλά να τους ανταλλάξουν έτσι ώστε σε Με τον τρόπο αυτό το σύνολο των υψηλότερων αριθμών 897 00:37:50,230 --> 00:37:54,990 φούσκα επάνω προς το τέλος της λίστας και όλα τα χαμηλότερα νούμερα φούσκα κάτω. 898 00:37:54,990 --> 00:37:59,355 >> Μήπως σας δείξω παιδιά το δροσερό εφέ ήχου διαλογής βίντεο; 899 00:37:59,355 --> 00:38:00,480 Είναι το είδος της δροσερό. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Έτσι, όπως δήλωσε ο Robert ακριβώς, τον αλγόριθμο ότι μόλις βήμα από τη λίστα, 902 00:38:05,200 --> 00:38:07,930 εναλλαγή των γειτονικών τιμών αν δεν είναι σε τάξη. 903 00:38:07,930 --> 00:38:10,975 Και τότε απλά να το επαναλαμβάνω, μέχρι να μην κάνουν καμία swaps. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Έτσι, δεν είναι κακό, σωστά; 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Έτσι, έχουμε μόνο ένα γρήγορο παράδειγμα εδώ. 908 00:38:16,319 --> 00:38:18,360 Έτσι, αυτό πρόκειται να ταξινομήσετε τους σε αύξουσα σειρά. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Έτσι, όταν περνάμε από την πρώτη ώρα, κοιτάμε μέσα από οκτώ 911 00:38:23,470 --> 00:38:26,880 και έξι είναι προφανώς δεν προκειμένου, εμείς τους swap. 912 00:38:26,880 --> 00:38:27,985 >> Έτσι κοιτάξουμε το επόμενο. 913 00:38:27,985 --> 00:38:29,430 Οκτώ και τέσσερα όχι σε σειρά. 914 00:38:29,430 --> 00:38:30,450 Ανταλλάξτε τους. 915 00:38:30,450 --> 00:38:32,530 Και στη συνέχεια, οκτώ και δύο, τους swap. 916 00:38:32,530 --> 00:38:33,470 Εκεί πάμε. 917 00:38:33,470 --> 00:38:39,519 Έτσι, μετά το πρώτο πέρασμα σας, γνωρίζουν ότι μεγαλύτερο αριθμό σας 918 00:38:39,519 --> 00:38:41,810 πρόκειται να είναι σε όλη τη διαδρομή στην κορυφή επειδή είναι ακριβώς 919 00:38:41,810 --> 00:38:44,210 πρόκειται να είναι συνεχώς μεγαλύτερο από οτιδήποτε άλλο 920 00:38:44,210 --> 00:38:46,810 και αυτό ακριβώς πρόκειται να φούσκα μέχρι όλη τη διαδρομή μέχρι το τέλος εκεί. 921 00:38:46,810 --> 00:38:48,226 Μήπως αυτό έχει νόημα για όλους; 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Cool. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Μέχρι τότε κοιτάμε το δεύτερο πέρασμα μας. 926 00:38:53,920 --> 00:38:54,980 Έξι και τέσσερις, διακόπτη. 927 00:38:54,980 --> 00:38:55,920 Έξι και δύο, διακόπτη. 928 00:38:55,920 --> 00:38:58,700 Και τώρα έχουμε μερικά πράγματα σε τάξη. 929 00:38:58,700 --> 00:39:02,240 Έτσι, για κάθε πέρασμα που εμείς κάνουν μέσω ολόκληρη τη λίστα μας, 930 00:39:02,240 --> 00:39:06,320 γνωρίζουμε ότι, όπως ότι πολλοί αριθμοί στο τέλος θα έχουν ταξινομηθεί. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Έτσι, κάνουμε ένα τρίτο πέρασμα, το οποίο είναι ένα swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 Και στη συνέχεια στο τέταρτο μας περάσει, έχουμε μηδενική υποδοχές. 935 00:39:15,910 --> 00:39:18,570 Και έτσι ξέρουμε ότι μας σειρά έχει ταξινομηθεί. 936 00:39:18,570 --> 00:39:20,900 >> Και αυτό είναι το μεγάλο πράγμα με το bubble sort. 937 00:39:20,900 --> 00:39:23,720 Γνωρίζουμε ότι όταν εμείς έχουν μηδενική swaps, ότι 938 00:39:23,720 --> 00:39:26,497 σημαίνει ότι τα πάντα είναι, σε πλήρη τάξη. 939 00:39:26,497 --> 00:39:27,580 Είναι το είδος του πώς θα ελέγξετε. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Έτσι, είμαστε επίσης πρόκειται να κωδικοποιήσει φούσκα είδος το οποίο, επίσης, δεν είναι τόσο άσχημα. 942 00:39:36,480 --> 00:39:38,120 Κανένα από αυτά δεν είναι τόσο άσχημα. 943 00:39:38,120 --> 00:39:40,210 Ξέρω ότι μπορεί να φαίνεται λίγο τρομακτικό. 944 00:39:40,210 --> 00:39:42,124 Ξέρω ότι όταν πήρα η τάξη, ακόμα και όταν 945 00:39:42,124 --> 00:39:44,290 δίδασκε στην τάξη για η πρώτη φορά πέρυσι, 946 00:39:44,290 --> 00:39:46,165 Ήμουν σαν, πώς μπορώ να το κάνω αυτό; 947 00:39:46,165 --> 00:39:48,540 Είναι λογικό στη θεωρία, αλλά πώς το κάνουμε πραγματικότητα αυτό; 948 00:39:48,540 --> 00:39:51,420 Γι 'αυτό θέλω επίσης να περπατήσετε μέσω κώδικα με σας παιδιά εδώ. 949 00:39:51,420 --> 00:39:54,915 Έτσι έχω μια ψευδοκώδικα για σας παιδιά αυτή τη φορά. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Έτσι ακριβώς αυτό στο νου, όπως είμαστε έτοιμοι για τη μετάβαση πάνω. 952 00:39:58,970 --> 00:40:04,210 Έτσι έχουμε κάποιο μετρητή που παρακολουθεί τις ανταλλαγές μας, 953 00:40:04,210 --> 00:40:08,370 γιατί πρέπει να βεβαιωθείτε ότι είμαστε έλεγχο αυτό. 954 00:40:08,370 --> 00:40:11,830 Και έχουμε επαναλάβει ολόκληρη τη συστοιχία όπως ακριβώς έκανε με αυτό το παράδειγμα. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Εάν το στοιχείο πριν είναι μεγαλύτερο από το στοιχείο μετά όπου είμαστε σε, 957 00:40:17,325 --> 00:40:20,760 εμείς τους ανταλλάξουν και θα αυξήσετε μας μετρητή επειδή το συντομότερο ανταλλάξουν, 958 00:40:20,760 --> 00:40:23,850 θέλουμε να αφήσουμε πάγκο μας γνωρίζουμε ότι. 959 00:40:23,850 --> 00:40:26,247 Υπάρχουν ερωτήσεις; 960 00:40:26,247 --> 00:40:27,580 Κάτι φαίνεται αστείο εδώ. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 Φοιτητής: Έχετε ρυθμίσετε το μετρητή στο μηδέν κάθε φορά που θα περάσει μέσα από το βρόχο; 963 00:40:32,350 --> 00:40:34,339 Μην κρατάτε πρόκειται πίσω στο μηδέν κάθε φορά; 964 00:40:34,339 --> 00:40:35,505 Διδάσκων: Όχι απαραίτητα. 965 00:40:35,505 --> 00:40:39,710 Έτσι, αυτό που συμβαίνει είναι περνάμε εδώ. 966 00:40:39,710 --> 00:40:43,830 Έτσι κάνει, ενώ, θυμηθείτε, αυτό θα εκτελέσει μία φορά χωρίς να αποτύχει. 967 00:40:43,830 --> 00:40:46,480 Έτσι, πρόκειται να οριστεί η μετρητή ίση με μηδέν, 968 00:40:46,480 --> 00:40:48,070 τότε πρόκειται για διαδοχικές προσεγγίσεις μέσα. 969 00:40:48,070 --> 00:40:50,590 Όπως Επαναλαμβάνει, θα ενημερώσει μετρητή. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Όπως ενημερώνει πάγκο, όταν το κάνει, όταν έχει φτάσει στο τέλος του πίνακα, 972 00:40:56,900 --> 00:41:00,830 εάν η λίστα μας δεν έχει ταξινομηθεί, μετρητής θα έχουν ενημερωθεί. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Άρα, λοιπόν, ελέγχει την κατάσταση και λέει, εντάξει, είναι σε αντίθεση μεγαλύτερη από το μηδέν. 975 00:41:07,150 --> 00:41:09,290 Αν είναι, να το κάνει ξανά. 976 00:41:09,290 --> 00:41:14,340 Θέλετε να επαναφέρετε έτσι ώστε όταν περνούν, μετρητής είναι ίση με το μηδέν. 977 00:41:14,340 --> 00:41:18,240 Αν πάτε μέσω ταξινομημένο συστοιχία, τίποτα δεν αλλάζει, 978 00:41:18,240 --> 00:41:21,355 αυτό αποτύχει, και σας επιστρέφει την ταξινομημένη λίστα. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Μήπως αυτό έχει νόημα; 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 Φοιτητής: Θα μπορούσε σε λίγο. 983 00:41:26,356 --> 00:41:27,147 Διδάσκων: Εντάξει. 984 00:41:27,147 --> 00:41:28,980 Αν υπάρχει οποιαδήποτε άλλη ερώτημα που έρχεται. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Ναι. 987 00:41:30,680 --> 00:41:33,760 >> Φοιτητής: Τι θα η λειτουργία είναι για την εναλλαγή των στοιχείων; 988 00:41:33,760 --> 00:41:36,900 >> Διδάσκων: Έτσι μπορούμε πραγματικά να γράψω ότι αν θα πάμε προς τα δεξιά τώρα. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Cool. 991 00:41:38,300 --> 00:41:42,155 Έτσι, σε αυτό το σημείωμα, η Alison πρόκειται για να αλλάξετε και πάλι πίσω στη συσκευή. 992 00:41:42,155 --> 00:41:43,080 Είναι πρόκειται να είναι διασκέδαση. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 Και έχουμε ωραία μας bubble sort πράγμα εδώ. 995 00:41:47,390 --> 00:41:50,800 Γι 'αυτό και ήδη έκανε ποδήλατο μέσω της συστοιχίας. 996 00:41:50,800 --> 00:41:53,030 Έχουμε swaps μας ότι είναι ίσες με το μηδέν. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Έτσι θέλουμε να ανταλλάξουν παρακείμενες στοιχεία αν είναι εκτός λειτουργίας. 999 00:41:58,440 --> 00:42:03,020 Έτσι, το πρώτο πράγμα που πρέπει να δεν είναι διέτρεξε τη σειρά μας. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Λοιπόν, πώς νομίζετε ότι θα μπορούσαμε διέτρεξε τη σειρά μας; 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Έχουμε και για i ισούται με 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Θέλουμε i να είναι λιγότερο από n μείον 1 μείον k. 1006 00:42:22,454 --> 00:42:23,870 Και θα εξηγήσω ότι σε ένα δευτερόλεπτο. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Έτσι, αυτό είναι μια βελτιστοποίηση εδώ όπου, θυμάμαι πώς είπα μετά από κάθε πέρασμα 1009 00:42:32,830 --> 00:42:36,655 μέσω του πίνακα που γνωρίζουν ότι όποια και αν είναι on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Έτσι, μετά από ένα πέρασμα μας γνωρίζουν ότι αυτό είναι ταξινομημένο. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Μετά από δύο περάσματα γνωρίζουμε ότι όλα αυτά είναι ταξινομημένο. 1014 00:42:50,060 --> 00:42:52,750 Μετά από τρία περάσματα εμείς γνωρίζουμε ότι είναι ταξινομημένο. 1015 00:42:52,750 --> 00:42:55,620 Έτσι, με τον τρόπο είμαι επανάληψη μέσω της συστοιχίας εδώ, 1016 00:42:55,620 --> 00:43:01,090 είναι ότι είναι φροντίζοντας μόνο για να πάει μέσα από αυτό που ξέρουμε είναι αδιαχώριστα. 1017 00:43:01,090 --> 00:43:01,644 Εντάξει; 1018 00:43:01,644 --> 00:43:02,810 Αυτό είναι απλά μια βελτιστοποίηση. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Θα μπορούσατε να γράψετε αφελώς μόνο επανάληψη μέσα από τα πάντα, 1021 00:43:08,210 --> 00:43:09,970 θα χρειαστούμε περισσότερο χρόνο. 1022 00:43:09,970 --> 00:43:12,470 Με αυτή την τέσσερα βρόχου είναι απλά ένα ωραίο βελτιστοποίηση 1023 00:43:12,470 --> 00:43:18,460 γιατί γνωρίζουμε ότι μετά από κάθε πλήρη επανάληψη μέσω της συστοιχίας εδώ, 1024 00:43:18,460 --> 00:43:24,050 όπως κάθε πλήρη βρόχο εδώ, γνωρίζουμε ότι ένα ή περισσότερα από αυτά τα στοιχεία 1025 00:43:24,050 --> 00:43:25,760 θα ταξινομηθούν στο τέλος. 1026 00:43:25,760 --> 00:43:28,294 >> Έτσι δεν χρειάζεται να ανησυχείτε για εκείνους. 1027 00:43:28,294 --> 00:43:29,710 Μήπως αυτό έχει νόημα για όλους; 1028 00:43:29,710 --> 00:43:30,950 Αυτό το δροσερό μικρό κόλπο; 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Έτσι, στην περίπτωση αυτή, αν είμαστε επανάληψη μέσα, 1031 00:43:37,270 --> 00:43:50,590 ξέρουμε ότι θέλουμε να ελέγξουμε αν συστοιχία n και n + 1 είναι σε τάξη. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 ΟΚ. 1034 00:43:53,559 --> 00:43:54,600 Έτσι, εδώ είναι ο ψευδοκώδικας. 1035 00:43:54,600 --> 00:43:57,540 Θέλουμε να ελέγξετε αν συστοιχία n και n + 1 είναι σε τάξη. 1036 00:43:57,540 --> 00:43:59,520 Λοιπόν, τι θα μπορούσε να έχουμε εκεί; 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Είναι πρόκειται να είναι κάποια αίρεση. 1039 00:44:03,120 --> 00:44:04,220 Θα είναι μια περίπτωση. 1040 00:44:04,220 --> 00:44:07,066 >> Φοιτητής: Αν συστοιχία n είναι λιγότερο από συστοιχία n + 1. 1041 00:44:07,066 --> 00:44:07,816 Διδάσκων: MM-HM. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Λοιπόν, μικρότερη ή μεγαλύτερη από ό, τι. 1044 00:44:10,699 --> 00:44:11,615 Φοιτητής: Μεγαλύτερη από ό, τι. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Στη συνέχεια θέλουμε να τους swap. 1047 00:44:17,620 --> 00:44:18,570 Ακριβώς. 1048 00:44:18,570 --> 00:44:23,570 Έτσι τώρα έχουμε μπει ποια είναι η μηχανισμό για την εναλλαγή τους; 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Έτσι περάσαμε από αυτό για λίγο, ένα είδος λειτουργία εναλλαγής περασμένη εβδομάδα. 1051 00:44:28,137 --> 00:44:29,595 Θυμάται κανείς πώς λειτούργησε; 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Έτσι, δεν μπορούμε απλά να τους εκχωρήσετε εκ νέου, σωστά; 1054 00:44:34,950 --> 00:44:36,640 Επειδή ένας από αυτούς θα χαθείτε. 1055 00:44:36,640 --> 00:44:41,696 Αν είπαμε Α είναι ίσο προς B και, στη συνέχεια, Β είναι ίσο με Α, όλα μια ξαφνική και τα δύο 1056 00:44:41,696 --> 00:44:43,150 είναι ακριβώς ίσο με το Β 1057 00:44:43,150 --> 00:44:45,720 >> Έτσι, αυτό που έχουμε να κάνουμε είναι να έχουν μια προσωρινή μεταβλητή που είναι 1058 00:44:45,720 --> 00:44:49,055 πρόκειται να κρατήσει ένα από τα δικά μας, ενώ είμαστε στη διαδικασία της swapping. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Έτσι, αυτό που έχουμε είναι ότι θα έχουμε κάποια int θερμοκρασία είναι ίση to-- μπορείτε να ορίσετε 1061 00:44:56,464 --> 00:44:59,130 σε όποιο από τα δύο θέλετε, απλά βεβαιωθείτε ότι μπορείτε να παρακολουθείτε it-- 1062 00:44:59,130 --> 00:45:01,840 οπότε σε αυτή την περίπτωση, Πάω να την αναθέτει σε σειρά n + 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Έτσι, αυτό πρόκειται να κρατήσει οτιδήποτε αξία είναι σε αυτή τη δεύτερη κατηγορία 1065 00:45:07,674 --> 00:45:08,590 ότι ψάχνουμε σε. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> Και τότε μπορούμε να κάνουμε είναι να μπορούμε να πάμε μπροστά και επανεκχώρηση σειρά n + 1, 1068 00:45:13,240 --> 00:45:14,990 γιατί εμείς ξέρουμε έχουν τιμή που είναι αποθηκευμένη. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Αυτό είναι επίσης ένα από τα μεγάλα things-- Δεν ξέρω αν κάποιος από εσάς 1071 00:45:19,270 --> 00:45:23,780 είχε προβλήματα όπου και αν αλλάξετε δύο γραμμές του κώδικα ξαφνικά τα πράγματα εργάστηκε. 1072 00:45:23,780 --> 00:45:25,880 Παραγγελία είναι πολύ σημαντικό στο CS. 1073 00:45:25,880 --> 00:45:29,450 Έτσι, βεβαιωθείτε ότι έχετε το διάγραμμα τα πράγματα, αν είναι δυνατόν 1074 00:45:29,450 --> 00:45:31,230 ως προς το τι πραγματικά συμβαίνει. 1075 00:45:31,230 --> 00:45:34,256 Έτσι τώρα θα πάμε να επανεκχώρηση σειρά n + 1, 1076 00:45:34,256 --> 00:45:36,005 γιατί εμείς ξέρουμε έχουν τιμή που είναι αποθηκευμένη. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> Και μπορούμε να εκχωρήσετε ότι σε συστοιχία Ν ή στην περίπτωση αυτή συστοιχία i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Πάρα πολλές μεταβλητές. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 ΟΚ. 1083 00:45:55,470 --> 00:46:01,500 Έτσι τώρα έχουμε εκ νέου σειρά i συν 1 να ισούται με ό, τι είναι στην σειρά i. 1084 00:46:01,500 --> 00:46:08,240 Και τώρα μπορούμε να πάμε πίσω και εκχωρήσετε σειρά i για τι; 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Όποιος; 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> Φοιτητής: 10. 1089 00:46:14,010 --> 00:46:14,680 >> Διδάσκων: 10. 1090 00:46:14,680 --> 00:46:15,180 Ακριβώς. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 Και ένα τελευταίο πράγμα. 1093 00:46:18,640 --> 00:46:21,840 Αν έχουμε άλλαζε τώρα, τι πρέπει να κάνουμε; 1094 00:46:21,840 --> 00:46:23,740 Ποιο είναι το ένα πράγμα ότι πρόκειται να μας πείτε 1095 00:46:23,740 --> 00:46:27,542 αν τερματίσει ποτέ αυτό το πρόγραμμα; 1096 00:46:27,542 --> 00:46:29,250 Τι μας λέει ότι εμείς έχουν μια ταξινομημένη λίστα; 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Αν δεν εκτελέσετε καμία swaps, σωστά; 1099 00:46:33,750 --> 00:46:36,900 Αν swaps είναι ίση με μηδέν στο τέλος του αυτό. 1100 00:46:36,900 --> 00:46:42,975 Έτσι, κάθε φορά που κάνετε μια συμφωνία ανταλλαγής, όπως εμείς έκανε ακριβώς εδώ, θέλουμε να ενημερώσετε swaps. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 Και ξέρω ότι υπήρχε μια ερώτηση νωρίτερα μπορεί να σας για 1103 00:46:47,210 --> 00:46:49,689 χρησιμοποιήστε μηδέν ή ένα αντί του αληθείς ή ψευδείς. 1104 00:46:49,689 --> 00:46:50,980 Και αυτό είναι που κάνει αυτό εδώ. 1105 00:46:50,980 --> 00:46:52,750 Έτσι, αυτό λέει ότι αν δεν swaps. 1106 00:46:52,750 --> 00:47:01,310 Έτσι, αν οι ανταλλαγές είναι μηδέν, η οποία is-- πάντα να πάρει τις αλήθειες μου και falses μου μπερδεύονται. 1107 00:47:01,310 --> 00:47:03,960 Θέλουμε να αξιολογήσουμε στην αλήθεια και δεν είναι. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Έτσι, αν είναι μηδέν, τότε είναι ψευδής. 1110 00:47:09,630 --> 00:47:12,560 Αν το αναιρεί με ένα [? Έκρηξη;] γίνεται αλήθεια. 1111 00:47:12,560 --> 00:47:13,975 Μέχρι τότε αυτή η γραμμή εκτελεί. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Αλήθειες και ψευδείς και μηδενικά και αυτοί να τρελαθώ. 1114 00:47:17,370 --> 00:47:20,690 Απλά, αν σιγά-σιγά τα πόδια μέσα από αυτό θα κάνει αίσθηση. 1115 00:47:20,690 --> 00:47:23,320 Αλλά αυτό είναι λίγο αυτό κομμάτι του κώδικα εδώ κάνει. 1116 00:47:23,320 --> 00:47:26,490 Έτσι, αυτό ελέγχει για να δει έχουμε κάνει οποιεσδήποτε ανταλλαγές. 1117 00:47:26,490 --> 00:47:30,054 Έτσι, αν είναι οτιδήποτε εκτός από μηδέν, αυτό πρόκειται να είναι ψευδή 1118 00:47:30,054 --> 00:47:31,970 και το όλο πράγμα είναι πρόκειται να εκτελέσει ξανά. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Cool; 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> Φοιτητής: Τι κάνει διάλειμμα κάνουμε; 1123 00:47:36,000 --> 00:47:38,990 >> Διδάσκων: Διάλειμμα μόνο που ξεσπά από το βρόχο. 1124 00:47:38,990 --> 00:47:41,570 Έτσι, στην περίπτωση αυτή, θα απλά ήθελε να τερματίσει το πρόγραμμα 1125 00:47:41,570 --> 00:47:43,828 και θα κάνατε ακριβώς έχουν ταξινομηθεί λίστα σας. 1126 00:47:43,828 --> 00:47:44,536 Φοιτητής: Amazing. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 Διδάσκων: Λυπάμαι; 1129 00:47:49,010 --> 00:47:52,110 Φοιτητής: Επειδή στο παρελθόν έχουμε η έγγραφη 1 πάνω από γραπτή μηδέν 1130 00:47:52,110 --> 00:47:54,170 για να παρουσιάσει ότι αν ότι θα λειτουργήσει ή όχι. 1131 00:47:54,170 --> 00:47:54,878 >> Διδάσκων: Ναι. 1132 00:47:54,878 --> 00:47:56,410 Έτσι, μπορείτε να επιστρέψετε το μηδέν ή 1. 1133 00:47:56,410 --> 00:47:58,950 Σε αυτήν την περίπτωση, επειδή δεν είμαστε στην πραγματικότητα να κάνει τίποτα με τη λειτουργία, 1134 00:47:58,950 --> 00:48:00,150 θέλουμε απλώς να σπάσει. 1135 00:48:00,150 --> 00:48:02,680 Εμείς δεν ενδιαφέρονται πραγματικά γι 'αυτό. 1136 00:48:02,680 --> 00:48:06,960 Φρένων είναι επίσης καλό, αν αυτό είναι που χρησιμοποιείται για το σπάσιμο έξω 1137 00:48:06,960 --> 00:48:10,710 από τέσσερις βρόχους ή καταστάσεις που δεν θέλετε να κρατήσετε εκτέλεσης. 1138 00:48:10,710 --> 00:48:12,110 Θα σας μεταφέρει ακριβώς έξω από αυτούς. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Είναι ένα κομμάτι από ένα πράγμα απόχρωση. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Νιώθω σαν να υπάρχει πολλή χέρι κυματισμό, 1143 00:48:18,445 --> 00:48:19,740 όπως θα μάθετε για αυτό σύντομα. 1144 00:48:19,740 --> 00:48:20,955 >> Αλλά θα μάθετε για αυτό σύντομα. 1145 00:48:20,955 --> 00:48:21,500 Υπόσχομαι. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 ΟΚ. 1148 00:48:23,170 --> 00:48:24,840 Έτσι κάνει ο καθένας να πάρει bubble sort; 1149 00:48:24,840 --> 00:48:25,550 Δεν είναι πάρα πολύ κακό. 1150 00:48:25,550 --> 00:48:31,910 Διέτρεξε, ανταλλαγής πράγματα χρησιμοποιώντας ένα μεταβλητή temp, και είμαστε έτοιμοι εκεί; 1151 00:48:31,910 --> 00:48:32,960 Cool. 1152 00:48:32,960 --> 00:48:34,080 Awesome. 1153 00:48:34,080 --> 00:48:34,807 ΟΚ. 1154 00:48:34,807 --> 00:48:35,765 Επιστροφή στο PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Οποιεσδήποτε ερωτήσεις γενικά σχετικά με αυτά μέχρι στιγμής; 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Cool. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 MM-HM. 1161 00:48:43,695 --> 00:48:45,279 >> Φοιτητής: [δεν ακούγεται] int main συνήθως. 1162 00:48:45,279 --> 00:48:46,695 Έχετε να έχει αυτό για αυτό; 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Διδάσκων: Έτσι ήμασταν απλώς αναζητούν ακριβώς στην πραγματική αλγόριθμος διαλογής. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Αν είχε μέσα σαν ένα μεγαλύτερο πρόγραμμα, 1167 00:48:56,350 --> 00:48:57,891 θα έχετε μια int main κάπου. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Ανάλογα με το πού μπορείτε χρησιμοποιήσετε αυτόν τον αλγόριθμο, 1170 00:49:02,880 --> 00:49:05,860 θα καθορίσει τι είναι επιστρέφονται από αυτό. 1171 00:49:05,860 --> 00:49:09,960 Αλλά για την περίπτωση μας, είμαστε απολύτως κοιτάζοντας πώς το κάνει αυτό πραγματικότητα 1172 00:49:09,960 --> 00:49:11,300 επαναλαμβάνεται σε μια σειρά. 1173 00:49:11,300 --> 00:49:12,570 Γι 'αυτό μην ανησυχείτε γι' αυτό. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Έτσι μιλούσαμε για καλύτερη περίπτωση και στη χειρότερη περίπτωση σενάρια για δυαδική αναζήτηση. 1176 00:49:19,830 --> 00:49:22,470 Γι 'αυτό είναι επίσης σημαντικό να κάνουμε ότι για κάθε ένα από τα είδη μας. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Λοιπόν, τι νομίζεις ότι είναι η χειρότερη περίπτωση εκτέλεσης του bubble sort; 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Εσείς θυμάστε; 1181 00:49:30,700 --> 00:49:31,784 >> Φοιτητής: Ν μείον 1. 1182 00:49:31,784 --> 00:49:32,700 Διδάσκων: Ν μείον 1. 1183 00:49:32,700 --> 00:49:35,070 Έτσι, αυτό σημαίνει ότι υπάρχουν n μείον 1 συγκρίσεις. 1184 00:49:35,070 --> 00:49:40,060 Έτσι, ένα πράγμα που πρέπει να συνειδητοποιήσουμε είναι ότι για την πρώτη επανάληψη, 1185 00:49:40,060 --> 00:49:43,360 περνάμε, συγκρίνουμε αυτά two-- έτσι ώστε να είναι 1. 1186 00:49:43,360 --> 00:49:46,685 Αυτά τα δύο, τρία, τέσσερα. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Έτσι, μετά από μία επανάληψη μας ήδη έχουν τέσσερις συγκρίσεις. 1189 00:49:55,050 --> 00:49:58,230 Όταν μιλώ για το χρόνο εκτέλεσης και Ν. 1190 00:49:58,230 --> 00:50:04,680 Ν αντιπροσωπεύει τον αριθμό των συγκρίσεων ως συνάρτηση του πόσα στοιχεία 1191 00:50:04,680 --> 00:50:05,570 έχουμε. 1192 00:50:05,570 --> 00:50:06,430 Εντάξει; 1193 00:50:06,430 --> 00:50:08,860 >> Έτσι περνάμε, έχουμε τέσσερα. 1194 00:50:08,860 --> 00:50:11,780 Την επόμενη φορά που θα ξέρουμε ότι δεν κάνουμε πρέπει να φροντίσει γι 'αυτό. 1195 00:50:11,780 --> 00:50:15,140 Θα συγκρίνουμε αυτά τα δύο, αυτά τα δύο, αυτά τα δύο, 1196 00:50:15,140 --> 00:50:20,050 και αν δεν είχαμε αυτή την βελτιστοποίηση με τέσσερις βρόχο που έγραψα, 1197 00:50:20,050 --> 00:50:22,750 θα πρέπει να συγκρίνει εδώ ούτως ή άλλως. 1198 00:50:22,750 --> 00:50:26,170 Έτσι, θα πρέπει να τρέχει μέσα από τη συστοιχία 1199 00:50:26,170 --> 00:50:34,380 και να κάνουν συγκρίσεις n n φορές, επειδή κάθε φορά που 1200 00:50:34,380 --> 00:50:36,670 τρέχει μέσα από αυτό να ξεκαθαρίσουμε ένα πράγμα. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> Και κάθε φορά που τρέχει μέσα η σειρά, κάνουμε n συγκρίσεις. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Έτσι εκτέλεσης μας για αυτό είναι στην πραγματικότητα n τετράγωνο, το οποίο 1205 00:50:46,330 --> 00:50:48,400 είναι πολύ χειρότερη σε μας συνδεθείτε τέλος γιατί αυτό 1206 00:50:48,400 --> 00:50:51,965 σημαίνει ότι αν είχαμε τέσσερις δισεκατομμύρια στοιχεία, είναι 1207 00:50:51,965 --> 00:50:55,260 πρόκειται να μας πάρει τέσσερα δισεκατομμύρια τετράγωνο αντί για 32. 1208 00:50:55,260 --> 00:51:01,240 Έτσι, δεν είναι η καλύτερη χρόνου εκτέλεσης, αλλά για κάποια πράγματα, 1209 00:51:01,240 --> 00:51:04,610 Ξέρετε, αν είστε μέσα ένα συγκεκριμένο εύρος των στοιχείων 1210 00:51:04,610 --> 00:51:06,540 bubble sort μπορεί να είναι μια χαρά για να χρησιμοποιήσει. 1211 00:51:06,540 --> 00:51:07,530 >> ΟΚ. 1212 00:51:07,530 --> 00:51:12,290 Και τώρα τι είναι το καλύτερο χρόνο εκτέλεσης υπόθεση; 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 ΜΑΘΗΤΗ: Μηδέν; 1215 00:51:14,940 --> 00:51:16,420 Ή 1; 1216 00:51:16,420 --> 00:51:18,140 >> Διδάσκων: Μέχρι 1 θα είναι μία σύγκριση. 1217 00:51:18,140 --> 00:51:19,114 Δεξιά. 1218 00:51:19,114 --> 00:51:20,002 >> Φοιτητής: Ν μείον 1; 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Διδάσκων: Λοιπόν, ναι. 1221 00:51:22,320 --> 00:51:22,990 Έτσι n μείον 1. 1222 00:51:22,990 --> 00:51:26,510 Κάθε φορά που έχετε μια ιδέα, όπως n μείον 1, έχουμε την τάση να το ρίξετε λίγο έξω 1223 00:51:26,510 --> 00:51:31,680 και απλά λέμε n επειδή έχετε να συγκρίνετε καθένα από these-- κάθε ζεύγος. 1224 00:51:31,680 --> 00:51:36,470 Έτσι, θα ήταν ν μείον 1, το οποίο εμείς θα ήθελα απλώς να πω είναι περίπου n. 1225 00:51:36,470 --> 00:51:39,280 Όταν έχεις να κάνεις με το χρόνο εκτέλεσης, τα πάντα είναι σε προσεγγίζει. 1226 00:51:39,280 --> 00:51:43,860 Εφ 'όσον ο εκθέτης είναι σωστό, είστε αρκετά καλός. 1227 00:51:43,860 --> 00:51:45,700 >> Αυτό είναι το πώς θα ασχοληθεί με το θέμα. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Έτσι, ότι η καλύτερη περίπτωση είναι n, η οποία σημαίνει ότι η λίστα έχει ήδη ταξινομηθεί, 1230 00:51:51,780 --> 00:51:54,320 και το μόνο που κάνουμε είναι να τρέχει μέσα και βεβαιωθείτε ότι είναι ταξινομημένο. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Cool. 1233 00:51:56,855 --> 00:51:57,355 Εντάξει. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Έτσι, όπως μπορείτε να δείτε εδώ, εμείς απλά έχουν κάποια πιο γραφικές παραστάσεις. 1236 00:52:01,920 --> 00:52:02,660 Έτσι n στο τετράγωνο. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Διασκέδαση. 1239 00:52:05,120 --> 00:52:09,730 Πολύ χειρότερη από ό, τι n όπως βλέπουμε, και πολύ, πολύ χειρότερα από ό, τι καταγραφής 2n. 1240 00:52:09,730 --> 00:52:12,060 Και στη συνέχεια, μπορείτε επίσης να πάρετε σε κορμούς log. 1241 00:52:12,060 --> 00:52:18,020 Και παίρνετε 124, μπορείτε να πάρετε σε σαν αστέρι ημερολόγιο, το οποίο είναι σαν τρελός. 1242 00:52:18,020 --> 00:52:20,172 Έτσι, αν σας ενδιαφέρει, αναζήτηση καταγραφής αστέρων. 1243 00:52:20,172 --> 00:52:20,880 Είναι το είδος της διασκέδασης. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Έτσι έχουμε αυτό το μεγάλο διάγραμμα. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Ακριβώς τα κεφάλια επάνω, αυτή η υπέροχο διάγραμμα για να έχουν 1248 00:52:28,720 --> 00:52:31,350 για την ενδιάμεση σας, γιατί εμείς καιρό να σας ρωτήσω αυτά λεπταίνει. 1249 00:52:31,350 --> 00:52:36,090 Έτσι, μόλις heads-up, έχουν αυτό στο σας ενδιάμεση σε ωραίο σκονάκι σας 1250 00:52:36,090 --> 00:52:36,616 εκεί. 1251 00:52:36,616 --> 00:52:37,990 Έτσι, εμείς απλά κοίταξε bubble sort. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Χειρότερη περίπτωση, n στο τετράγωνο, καλύτερη περίπτωση, n. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 Και θα πάμε να δούμε τους άλλους. 1256 00:52:44,950 --> 00:52:47,940 >> Και όπως μπορείτε να δείτε, το μόνο αυτό που πραγματικά κάνει καλά 1257 00:52:47,940 --> 00:52:50,910 είναι η συγχώνευση του είδους, το οποίο θα μπει γιατί. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Έτσι θα πάμε για να πάει να το επόμενο here-- είδος επιλογής. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Θυμάται κανείς πώς επιλογή είδους εργαστεί; 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Πηγαίνετε για αυτό. 1264 00:53:05,700 --> 00:53:08,210 >> Φοιτητής: Βασικά περνούν μια τάξη και να δημιουργήσετε μια νέα λίστα. 1265 00:53:08,210 --> 00:53:11,001 Και ακριβώς όπως είστε βάζοντας στοιχεία σε, τους βάλει στη σωστή θέση 1266 00:53:11,001 --> 00:53:11,750 στη νέα λίστα. 1267 00:53:11,750 --> 00:53:14,040 >> Διδάσκων: Έτσι ώστε ήχοι περισσότερο σαν είδος εισαγωγής. 1268 00:53:14,040 --> 00:53:15,040 Αλλά είσαι πολύ κοντά. 1269 00:53:15,040 --> 00:53:15,915 Είναι πολύ παρόμοια. 1270 00:53:15,915 --> 00:53:17,440 Ακόμη και εγώ τους πάρει μπερδεύονται μερικές φορές. 1271 00:53:17,440 --> 00:53:18,981 Πριν από αυτή την ενότητα ήμουν όπως, περιμένετε. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 ΟΚ. 1274 00:53:20,630 --> 00:53:24,141 Έτσι, ό, τι θέλετε να κάνουμε είναι είδος επιλογής, 1275 00:53:24,141 --> 00:53:25,890 ο τρόπος που μπορείτε να σκεφτείτε γι 'αυτό και τον τρόπο 1276 00:53:25,890 --> 00:53:30,140 Κάνω ότι μπορώ να προσπαθήσουμε να μην πάρει τα μπέρδεψαν, είναι ότι περνά από 1277 00:53:30,140 --> 00:53:33,280 και επιλέγει το μικρότερο αριθμό και 1278 00:53:33,280 --> 00:53:36,070 βάζει ότι στην αρχή της λίστας σας. 1279 00:53:36,070 --> 00:53:37,730 Είναι αυτό swaps με αυτό το πρώτο σημείο. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Στην πραγματικότητα έχουμε ένα παράδειγμα για μένα. 1282 00:53:45,370 --> 00:53:46,540 Awesome. 1283 00:53:46,540 --> 00:53:50,130 Έτσι απλά ένας τρόπος για να σκεφτώ it-- επιλογή Ταξινόμηση, επιλέξτε τη μικρότερη τιμή. 1284 00:53:50,130 --> 00:53:51,940 Και θα πάμε να τρέχει μέσα από ένα παράδειγμα 1285 00:53:51,940 --> 00:53:55,320 που πιστεύω ότι θα βοηθήσει, διότι Νομίζω visuals πάντα να βοηθήσει. 1286 00:53:55,320 --> 00:53:58,510 Ξεκινάμε λοιπόν με κάτι ότι είναι εντελώς άνευ διαλογής. 1287 00:53:58,510 --> 00:54:00,730 Κόκκινο θα είναι αδιαχώριστα, πράσινο θα είναι ταξινομημένο. 1288 00:54:00,730 --> 00:54:02,190 Θα κάνει όλα νόημα σε μια δεύτερη. 1289 00:54:02,190 --> 00:54:08,950 >> Έτσι περνάμε και έχουμε επαναλάβει από την αρχή μέχρι το τέλος. 1290 00:54:08,950 --> 00:54:12,320 Και λέμε, εντάξει, είναι 2 μικρότερο αριθμό μας. 1291 00:54:12,320 --> 00:54:15,680 Έτσι θα πάμε για να πάρει 2 και θα πάμε να κινηθεί προς τα εμπρός του πίνακα μας 1292 00:54:15,680 --> 00:54:17,734 γιατί είναι η μικρότερος αριθμός που έχουμε. 1293 00:54:17,734 --> 00:54:19,150 Έτσι, αυτό είναι ό, τι αυτό που κάνει εδώ. 1294 00:54:19,150 --> 00:54:20,820 Είναι ακριβώς πρόκειται να ανταλλάξουν αυτά τα δύο. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Έτσι τώρα έχουμε ένα ταξινομημένο μέρος και ένα μέρος χωρίς διαλογή. 1297 00:54:25,450 --> 00:54:27,810 Και τι είναι καλό να θυμόμαστε σχετικά με το είδος επιλογής 1298 00:54:27,810 --> 00:54:30,690 είναι ότι είμαστε μόνο επιλογή από τη μη ταξινομημένα μέρος. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Η ταξινομημένη μέρος που μόλις αφήσει μόνο του. 1301 00:54:34,527 --> 00:54:35,660 MM-hm; 1302 00:54:35,660 --> 00:54:38,452 >> Φοιτητής: Πώς ξέρουμε τι είναι η μικρότερη χωρίς συγκρίνοντάς 1303 00:54:38,452 --> 00:54:39,868 σε κάθε άλλη τιμή στη συστοιχία. 1304 00:54:39,868 --> 00:54:41,250 Διδάσκων: Κάνει το συγκρίνουμε. 1305 00:54:41,250 --> 00:54:42,041 Μας αρέσει αυτό παραλείπεται. 1306 00:54:42,041 --> 00:54:43,850 Αυτό είναι μόνο γενικές συνολικά. 1307 00:54:43,850 --> 00:54:44,831 Ναι. 1308 00:54:44,831 --> 00:54:47,205 Όταν γράφουμε τον κώδικα είμαι βέβαιος ότι θα είστε περισσότερο ικανοποιημένοι. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Αλλά μπορείτε να αποθηκεύσετε αυτό το πρώτο στοιχείο ως το μικρότερο. 1311 00:54:53,030 --> 00:54:56,110 Μπορείτε να συγκρίνετε και να σας πω, εντάξει, είναι μικρότερο; 1312 00:54:56,110 --> 00:54:56,660 Ναι. 1313 00:54:56,660 --> 00:54:57,460 Κρατήστε αυτό. 1314 00:54:57,460 --> 00:54:58,640 Εδώ είναι το μικρότερο; 1315 00:54:58,640 --> 00:54:59,660 Όχι; 1316 00:54:59,660 --> 00:55:02,510 >> Αυτό είναι το μικρότερο σας, επανεκχώρηση αυτό με την αξία σας. 1317 00:55:02,510 --> 00:55:06,340 Και θα είναι πολύ πιο ευτυχισμένοι όταν περνάμε από τον κώδικα. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Έτσι περνάμε, εμείς το swap, έτσι ώστε, στη συνέχεια, εξετάζουμε σε αυτό το τμήμα αδιαχώριστα. 1320 00:55:13,970 --> 00:55:15,810 Έτσι θα πάμε να επιλέξετε τρεις έξω. 1321 00:55:15,810 --> 00:55:18,890 Εμείς πάμε για να το βάλετε πάνω σε το τέλος του ταξινομημένο τμήμα μας. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 Και είμαστε ακριβώς πρόκειται να συνεχίσει να κάνει ότι, το κάνουμε αυτό, και να το κάνουμε αυτό. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Έτσι, αυτό είναι το είδος μας ψευδοκώδικα εδώ. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Θα το κωδικοποιήσει έως εδώ σε ένα δευτερόλεπτο. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Αλλά ακριβώς κάτι για να περπατήσει μέσα σε ένα υψηλό επίπεδο. 1330 00:55:37,270 --> 00:55:40,275 Θα πάμε για να πάει από i ισούται με 0 έως n μείον 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Αυτό είναι ένα άλλο βελτιστοποίησης. 1333 00:55:43,530 --> 00:55:45,020 Μην ανησυχείτε πάρα πολύ για αυτό. 1334 00:55:45,020 --> 00:55:46,620 Έτσι, όπως μπορείτε έλεγαν. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Όπως έλεγε ο Ιακώβ, πώς μπορούμε να να παρακολουθείτε ό, τι ελάχιστο μας είναι; 1337 00:55:54,406 --> 00:55:55,030 Πώς το ξέρουμε; 1338 00:55:55,030 --> 00:55:57,060 Πρέπει να συγκρίνουμε τα πάντα στη λίστα μας. 1339 00:55:57,060 --> 00:55:59,600 >> Έτσι ελάχιστο ισούται με i. 1340 00:55:59,600 --> 00:56:03,870 Είναι ακριβώς λέει σε αυτή την περίπτωση ο δείκτης της ελάχιστης αξίας μας. 1341 00:56:03,870 --> 00:56:07,660 Άρα, λοιπόν, πρόκειται να επαναλάβει μέσω και πηγαίνει από j ισούται με i + 1. 1342 00:56:07,660 --> 00:56:11,420 Έτσι, γνωρίζουμε ήδη ότι αυτό είναι το πρώτο μας στοιχείο. 1343 00:56:11,420 --> 00:56:13,240 Δεν χρειάζεται να το συγκρίνουμε με το ίδιο. 1344 00:56:13,240 --> 00:56:16,970 Ξεκινούμε λοιπόν ότι σε σύγκριση με την επόμενη μία η οποία είναι ο λόγος για αυτό είναι i συν 1 έως n 1345 00:56:16,970 --> 00:56:20,110 μείον 1, η οποία είναι η άκρο της συστοιχίας εκεί. 1346 00:56:20,110 --> 00:56:25,090 Και είπαμε, αν συστοιχία σε j είναι μικρότερη από συστοιχία min, 1347 00:56:25,090 --> 00:56:29,200 τότε εμείς επανεκχώρηση όπου ελάχιστους δείκτες μας είναι. 1348 00:56:29,200 --> 00:56:37,470 >> Και αν min δεν είναι ίση με Ι, όπως στο οποίο ήμασταν πίσω εδώ. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Έτσι, όπως όταν κάναμε για πρώτη φορά αυτό το ένα. 1351 00:56:41,790 --> 00:56:49,310 Σε αυτήν την περίπτωση, θα ξεκινούν μηδέν, θα καταλήξει να είναι δύο. 1352 00:56:49,310 --> 00:56:53,010 Έτσι, δεν θα min ίση i ​​στο τέλος. 1353 00:56:53,010 --> 00:56:55,720 Αυτό μας επιτρέπει να γνωρίζουμε ότι εμείς πρέπει να τους swap. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Νιώθω σαν ένα συγκεκριμένο παράδειγμα θα βοηθήσει πολύ περισσότερο από αυτό. 1356 00:57:00,470 --> 00:57:04,970 Γι 'αυτό θα κωδικοποιήσει αυτό επάνω με σας παιδιά τώρα και νομίζω ότι θα είναι καλύτερα. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Των ειδών τείνουν να λειτουργεί με αυτόν τον τρόπο ότι είναι συχνά καλύτερο απλά για να τους δει. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Έτσι, αυτό που θέλουμε να κάνουμε είναι θέλουμε πρώτα το μικρότερο 1361 00:57:17,280 --> 00:57:19,890 στοιχείο στη θέση του στον πίνακα. 1362 00:57:19,890 --> 00:57:21,280 Ακριβώς ό, τι έλεγε ο Ιακώβ. 1363 00:57:21,280 --> 00:57:23,090 Θα πρέπει να αποθηκεύσετε ότι κατά κάποιο τρόπο. 1364 00:57:23,090 --> 00:57:25,900 Έτσι θα πάμε για να ξεκινήσει εδώ επανάληψη επί της συστοιχίας. 1365 00:57:25,900 --> 00:57:28,970 Εμείς πάμε για να πω ότι είναι μας πρώτη απλά για να αρχίσει με. 1366 00:57:28,970 --> 00:57:38,308 Έτσι θέλουμε να έχουμε int μικρότερο είναι ίσο με το array στο i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Έτσι, ένα πράγμα που πρέπει να παρατηρήσετε, κάθε χρόνο αυτό βρόχο εκτελεί, 1369 00:57:45,050 --> 00:57:48,550 αρχίζουμε ένα βήμα πιο πέρα. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Όταν αρχίσουμε να κοιτάμε αυτό. 1372 00:57:57,440 --> 00:58:00,840 Την επόμενη φορά που διέτρεξε, ξεκινάμε σε αυτό 1373 00:58:00,840 --> 00:58:02,680 και μικρότερη τιμή μας ανάθεση. 1374 00:58:02,680 --> 00:58:10,450 Έτσι είναι πολύ παρόμοια με bubble sort όπου γνωρίζουμε ότι μετά από ένα πέρασμα, 1375 00:58:10,450 --> 00:58:11,700 Το τελευταίο αυτό στοιχείο είναι ταξινομημένο. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Με το είδος επιλογής, είναι ακριβώς το αντίθετο. 1378 00:58:15,120 --> 00:58:18,950 >> Σε κάθε πέρασμα, γνωρίζουμε ότι το πρώτο είναι ταξινομημένο. 1379 00:58:18,950 --> 00:58:21,360 Μετά το δεύτερο πέρασμα, η δεύτερη θα είναι ταξινομημένο. 1380 00:58:21,360 --> 00:58:26,470 Και όπως είδατε με τα παραδείγματα διαφάνεια, ταξινομημένο τμήμα μας απλά συνεχίζει να αυξάνεται. 1381 00:58:26,470 --> 00:58:34,020 Έτσι, θέτοντας μικρότερο από το δικό μας σε συστοιχίες i, όλα είναι να κάνει 1382 00:58:34,020 --> 00:58:37,340 περιορίζει το τι ψάχνουμε σε, έτσι ώστε 1383 00:58:37,340 --> 00:58:40,164 να ελαχιστοποιηθεί ο αριθμός των συγκρίσεων που κάνουμε. 1384 00:58:40,164 --> 00:58:41,770 Μήπως αυτό έχει νόημα για όλους; 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Μήπως χρειάζεστε εμένα να τρέχει μέσα από αυτό και πάλι πιο αργή ή σε διαφορετικές λέξεις; 1387 00:58:46,380 --> 00:58:47,180 Είμαι στην ευχάριστη θέση να. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 ΟΚ. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Έτσι είμαστε η αποθήκευση αξία σε αυτό το σημείο, 1392 00:58:55,540 --> 00:58:57,840 αλλά θέλουμε επίσης να αποθηκεύσετε το δείκτη. 1393 00:58:57,840 --> 00:59:01,010 Έτσι θα πάμε να αποθηκεύσετε το θέση του μικρότερου 1394 00:59:01,010 --> 00:59:02,770 ένα, το οποίο είναι ακριβώς πρόκειται να είναι i. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Έτσι τώρα ο Ιακώβ είναι ικανοποιημένοι. 1397 00:59:05,440 --> 00:59:06,870 Έχουμε πράγματα που αποθηκεύονται. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 Και τώρα πρέπει να κοιτάξουμε μέσα ο υποστεί διαλογή μέρος της συστοιχίας. 1400 00:59:11,870 --> 00:59:18,170 Έτσι, στην περίπτωση αυτή, θα είναι αδιαχώριστα μας. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Αυτό είναι i. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 ΟΚ. 1405 00:59:26,210 --> 00:59:30,040 >> Έτσι, αυτό που πάμε να κάνουμε πρόκειται να είναι για έναν βρόχο. 1406 00:59:30,040 --> 00:59:32,066 Όποτε χρειάζεται να επαναλαμβάνεται σε μια σειρά, 1407 00:59:32,066 --> 00:59:33,440 το μυαλό σας θα μπορούσε να πάει σε ένα βρόχο. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Έτσι, για κάποιο int k equals-- τι νομίζουμε 1410 00:59:38,090 --> 00:59:39,700 k θα ισούται με για να αρχίσει με; 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Αυτό είναι αυτό που θέσαμε ως μικρότερο μας αξία και θέλουμε να το συγκρίνουμε. 1413 00:59:44,766 --> 00:59:47,090 Τι θέλουμε να το συγκρίνουμε με; 1414 00:59:47,090 --> 00:59:48,730 Είναι πρόκειται να είναι αυτό το επόμενο, σωστά; 1415 00:59:48,730 --> 00:59:53,200 Έτσι θέλουμε k να προετοιμαστεί Ι συν 1 για να ξεκινήσει. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> Και θέλουμε k σε αυτή την περίπτωση ήδη έχουν μέγεθος αποθηκεύονται εδώ, 1418 01:00:02,800 --> 01:00:03,930 Οπότε μπορούμε απλά να χρησιμοποιήσετε το μέγεθος. 1419 01:00:03,930 --> 01:00:06,240 Μέγεθος είναι το μέγεθος της συστοιχίας. 1420 01:00:06,240 --> 01:00:09,620 Και εμείς απλά θέλουμε να ενημερώσετε k κατά ένα κάθε φορά. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Cool. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Έτσι τώρα πρέπει να βρούμε το μικρότερο στοιχείο εδώ. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Έτσι, αν έχουμε διέτρεξε, εμείς θέλω να πω, αν συστοιχία σε k 1427 01:00:31,380 --> 01:00:37,080 είναι μικρότερη από ό, τι μικρότερο value-- μας Αυτό είναι όπου είμαστε πραγματικά 1428 01:00:37,080 --> 01:00:42,950 την παρακολούθηση του τι είναι το μικρότερο here-- 1429 01:00:42,950 --> 01:00:47,740 Στη συνέχεια θέλουμε να επανεκχώρηση τι μικρότερη τιμή μας είναι. 1430 01:00:47,740 --> 01:00:50,645 >> Αυτό σημαίνει ότι, OH, είμαστε επανάληψη από εδώ. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Όποια και αν είναι η τιμή εδώ είναι όχι μικρότερο πράγμα μας. 1433 01:00:53,740 --> 01:00:54,448 Εμείς δεν το θέλουμε. 1434 01:00:54,448 --> 01:00:56,100 Θέλουμε να τις μεταβιβάσει εκ νέου. 1435 01:00:56,100 --> 01:01:02,050 Έτσι, αν είμαστε αυτή η ανακατανομή, τι κάνουμε νομίζετε ότι θα μπορούσε να είναι σε αυτόν τον κώδικα εδώ; 1436 01:01:02,050 --> 01:01:04,160 Θέλουμε να επανεκχώρηση μικρότερο και θέση. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Έτσι, αυτό είναι το μικρότερο τώρα; 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 Φοιτητής: Array k. 1441 01:01:09,130 --> 01:01:09,963 Διδάσκων: Array k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 Και ποια είναι η θέση τώρα; 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Τι είναι οι δείκτες μικρότερη τιμή μας; 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Είναι ακριβώς k. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Έτσι, σειρά K, K, τους ταιριάζει. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Έτσι θελήσαμε να εκχωρήσετε εκ νέου ότι. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 Και στη συνέχεια, αφού βρήκαμε μικρότερο μας, έτσι ώστε στο τέλος αυτού του βρόχου για 1454 01:01:39,950 --> 01:01:45,100 εδώ έχουμε βρει τι μικρότερο μας αξίας είναι, γι 'αυτό ακριβώς το swap. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Σε αυτή την περίπτωση, όπως λένε μας μικρότερη τιμή είναι εδώ. 1457 01:01:50,816 --> 01:01:51,940 Αυτή είναι η μικρότερη τιμή μας. 1458 01:01:51,940 --> 01:01:57,690 >> Εμείς απλά θέλουμε να ανταλλάξουν εδώ, το οποίο είναι τι η λειτουργία εναλλαγής στο κάτω μέρος 1459 01:01:57,690 --> 01:02:01,270 έκανε, το οποίο μόλις έγραψε μαζί πριν από ένα-δυο λεπτά. 1460 01:02:01,270 --> 01:02:02,775 Γι 'αυτό πρέπει να εξετάσουμε εξοικειωμένοι. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 Και τότε θα επαναλάβει μόνο μέσα μέχρι να φτάσει σε όλη τη διαδρομή 1463 01:02:08,030 --> 01:02:13,100 στο τέλος, πράγμα που σημαίνει ότι θα έχουν μηδενική στοιχεία που δεν έχουν υποστεί διαλογή 1464 01:02:13,100 --> 01:02:14,800 και ό, τι άλλο έχει ταξινομηθεί. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Νόημα; 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Λίγο πιο συγκεκριμένα; 1469 01:02:19,280 --> 01:02:19,990 Η βοήθεια κώδικα; 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> Φοιτητής: Για ένα μέγεθος, που ποτέ δεν πραγματικά να καθορίσει ή να το αλλάξετε, 1472 01:02:26,410 --> 01:02:27,340 πώς το ξέρετε; 1473 01:02:27,340 --> 01:02:32,380 >> Διδάσκων: Έτσι, ένα πράγμα που πρέπει να παρατηρήσετε εδώ είναι το μέγεθος int. 1474 01:02:32,380 --> 01:02:35,680 Έτσι λέμε σε αυτό το είδος sort-- είναι μια λειτουργία σε αυτό case-- είναι 1475 01:02:35,680 --> 01:02:40,770 είδος επιλογής, έχει περάσει σε με τη λειτουργία. 1476 01:02:40,770 --> 01:02:43,460 Έτσι, αν δεν είχε περάσει στο, θα κάνουμε κάτι 1477 01:02:43,460 --> 01:02:47,840 όπως και με το μήκος της συστοιχίας ή θα διέτρεξε 1478 01:02:47,840 --> 01:02:49,390 για να βρείτε το μήκος. 1479 01:02:49,390 --> 01:02:52,680 Αλλά επειδή έχει περάσει σε, μπορούμε να το χρησιμοποιήσουμε μόνο. 1480 01:02:52,680 --> 01:02:55,720 Μπορείτε απλά να υποθέσουμε ότι ο χρήστης Σας έδωσε ένα έγκυρο μέγεθος που 1481 01:02:55,720 --> 01:02:57,698 στην πραγματικότητα αντιπροσωπεύει ένα μέγεθος του πίνακα σας. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Cool; 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Αν εσείς έχετε οποιοδήποτε πρόβλημα με αυτά ή θέλετε περισσότερες πρακτικές κωδικοποίησης είδη 1486 01:03:05,870 --> 01:03:08,050 για τη δική σας, θα πρέπει πηγαίνετε στο study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Είναι ένα εργαλείο. 1489 01:03:12,670 --> 01:03:15,040 Έχουν Ένας ελεγκτής που μπορείτε πραγματικά να γράψετε. 1490 01:03:15,040 --> 01:03:16,180 Κάνουν ψευδοκώδικα. 1491 01:03:16,180 --> 01:03:19,310 Έχουν περισσότερα βίντεο και διαφάνειες συμπεριλαμβανομένων εκείνων που χρησιμοποιούν εδώ. 1492 01:03:19,310 --> 01:03:23,150 Έτσι, εάν αισθάνεστε ακόμα ένα λίγο ασαφής, δοκιμάστε αυτό έξω. 1493 01:03:23,150 --> 01:03:25,670 Όπως πάντα, έρχονται να μου μιλήσει, πάρα πολύ. 1494 01:03:25,670 --> 01:03:26,320 Ερώτηση; 1495 01:03:26,320 --> 01:03:28,611 >> Φοιτητής: Θέλετε να πείτε το μέγεθος ορίζεται προηγουμένως; 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Διδάσκων: Ναι. 1498 01:03:29,900 --> 01:03:35,570 Μέγεθος προηγουμένως ορίζεται μέχρι εδώ στη δήλωση της συνάρτησης. 1499 01:03:35,570 --> 01:03:39,060 Έτσι θα υποθέσουμε ότι είναι ήδη περάσει στην από τον χρήστη, καθώς και για λόγους απλότητας, 1500 01:03:39,060 --> 01:03:41,896 θα πάμε να υποθέσουμε ότι η χρήστης μας έδωσε το σωστό μέγεθος. 1501 01:03:41,896 --> 01:03:43,240 Cool. 1502 01:03:43,240 --> 01:03:44,390 Έτσι, αυτό είναι το είδος επιλογής. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Παιδιά, ξέρω ότι μαθαίνουμε πολλά σήμερα. 1505 01:03:47,640 --> 01:03:49,710 Είναι ένα πυκνό στοιχεία για ενότητα. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Έτσι, με αυτό, πρόκειται να πάει στο είδος εισαγωγής. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> ΟΚ. 1510 01:04:02,510 --> 01:04:06,100 Έτσι, πριν ότι έχουμε να κάνουμε ανάλυση runtime μας εδώ. 1511 01:04:06,100 --> 01:04:10,190 Έτσι, στην καλύτερη περίπτωση, χορηγείται από τότε που σας έδειξα 1512 01:04:10,190 --> 01:04:11,960 Ο πίνακας που ήδη το είδος του έδωσε μακριά. 1513 01:04:11,960 --> 01:04:15,430 Αλλά το καλύτερο runtime περίπτωση, τι νομίζουμε; 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Όλα ταξινομημένο. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 Ν τετράγωνο. 1518 01:04:22,070 --> 01:04:24,780 Όποιος έχει μια εξήγηση για τους οποίους νομίζετε; 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> Φοιτητής: Είσαι σύγκριση through-- 1521 01:04:30,519 --> 01:04:31,268 Διδάσκων: Δεξιά. 1522 01:04:31,268 --> 01:04:32,540 Είσαι συγκρίνοντας μέσα. 1523 01:04:32,540 --> 01:04:35,630 Σε κάθε επανάληψη, μολονότι είμαστε Decrementing αυτό με ένα, 1524 01:04:35,630 --> 01:04:38,950 είστε ακόμα ψάχνουν μέσα τα πάντα για να βρει το μικρότερο. 1525 01:04:38,950 --> 01:04:42,390 Έτσι, ακόμη και αν μικρότερη αξία σας είναι εδώ στην αρχή, 1526 01:04:42,390 --> 01:04:44,710 είστε ακόμα σύγκριση εναντίον οτιδήποτε άλλο 1527 01:04:44,710 --> 01:04:46,550 για να βεβαιωθείτε ότι είναι το μικρότερο πράγμα. 1528 01:04:46,550 --> 01:04:49,820 Έτσι, θα καταλήξετε σε λειτουργία μέσω περίπου n τετράγωνο φορές. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Εντάξει. 1531 01:04:51,590 --> 01:04:52,785 Και ποια είναι η χειρότερη περίπτωση; 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Επίσης n τετράγωνο επειδή θα πάμε να κάνει την ίδια διαδικασία. 1534 01:04:57,980 --> 01:05:01,670 Έτσι, στην περίπτωση αυτή, η επιλογή είδος έχει κάτι 1535 01:05:01,670 --> 01:05:04,010 ότι καλούμε και αναμενόμενη αυτονομία. 1536 01:05:04,010 --> 01:05:07,400 Έτσι, σε άλλους, εμείς απλά ξέρω τα άνω και κάτω όρια. 1537 01:05:07,400 --> 01:05:11,180 Ανάλογα με το πόσο τρελό μας κατάλογος είναι ή πώς είναι αδιαχώριστα, 1538 01:05:11,180 --> 01:05:15,350 διαφέρουν μεταξύ Ν ή Ν τετράγωνο. 1539 01:05:15,350 --> 01:05:16,550 Δεν ξέρουμε. 1540 01:05:16,550 --> 01:05:22,820 >> Αλλά επειδή το είδος επιλογής έχει την ίδια χειρότερη και την καλύτερη περίπτωση, ότι μας λέει ότι 1541 01:05:22,820 --> 01:05:25,880 δεν έχει σημασία τι είδος της εισόδου μας έχουν, είτε πρόκειται για εντελώς 1542 01:05:25,880 --> 01:05:29,130 διαλογή ή εντελώς αντίστροφη ταξινομημένο, είναι 1543 01:05:29,130 --> 01:05:30,740 πρόκειται να λάβει το ίδιο χρονικό διάστημα. 1544 01:05:30,740 --> 01:05:33,760 Έτσι, στην περίπτωση αυτή, αν θυμάστε από το τραπέζι μας, 1545 01:05:33,760 --> 01:05:38,610 είχε πραγματικά μια αξία που Αυτά τα δύο είδη δεν έχουν, 1546 01:05:38,610 --> 01:05:40,390 η οποία είναι αναμενόμενη αυτονομία. 1547 01:05:40,390 --> 01:05:43,350 Έτσι, γνωρίζουμε ότι κάθε φορά τρέξουμε είδος επιλογής, 1548 01:05:43,350 --> 01:05:45,380 είναι εγγυημένο για να εκτελέσετε μια n τετράγωνο του χρόνου. 1549 01:05:45,380 --> 01:05:46,630 Δεν υπάρχει μεταβλητότητα εκεί. 1550 01:05:46,630 --> 01:05:47,630 Είναι ακριβώς αναμενόταν. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 Και, πάλι, αν θέλετε να μάθετε περισσότερο, να λάβει CS 124 στην Άνοιξη. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Εντάξει. 1555 01:05:56,712 --> 01:05:57,545 Έχουμε δει αυτό το ένα. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Cool. 1558 01:05:59,030 --> 01:06:00,930 Έτσι, η εισαγωγή του είδους. 1559 01:06:00,930 --> 01:06:03,330 Και είμαι κατά πάσα πιθανότητα θα να χαράξει μέσα από αυτό. 1560 01:06:03,330 --> 01:06:05,440 Δεν θα έχω εσείς να κωδικοποιήσει. 1561 01:06:05,440 --> 01:06:06,580 Θα περπατήσετε μέσα από αυτό. 1562 01:06:06,580 --> 01:06:10,500 Έτσι, ταξινόμηση με εισαγωγή είναι είδος παρόμοιων με το είδος επιλογής 1563 01:06:10,500 --> 01:06:14,460 από το γεγονός ότι έχουμε τόσο μια μη ταξινομημένα και ταξινομημένο μέρος της συστοιχίας. 1564 01:06:14,460 --> 01:06:20,260 >> Αλλά αυτό που είναι διαφορετικό είναι ότι καθώς περνάμε από το ένα προς ένα, 1565 01:06:20,260 --> 01:06:24,210 μπορούμε απλά να πάρουν ανεξάρτητα από τον αριθμό Είναι δίπλα σε αδιαχώριστα μας, 1566 01:06:24,210 --> 01:06:28,507 και σωστά το τακτοποιήσουμε σε ταξινομημένο πίνακα μας. 1567 01:06:28,507 --> 01:06:30,090 Θα κάνει περισσότερο νόημα με ένα παράδειγμα. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Έτσι, ό, τι ξεκινά ως αδιαχώριστα, ακριβώς όπως με το είδος επιλογής. 1570 01:06:35,430 --> 01:06:38,740 Και θα πάμε να ξεκαθαρίσουμε το θέμα σε αύξουσα σειρά όπως έχουμε ήδη. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Έτσι, στο πρώτο μας πέρασμα παίρνουμε την πρώτη τιμή 1573 01:06:43,340 --> 01:06:46,700 και λέμε, εντάξει, είσαι τώρα σε μια λίστα από τον εαυτό σας. 1574 01:06:46,700 --> 01:06:49,150 >> Επειδή είστε σε μια λίστα από τον εαυτό σας, είστε ταξινομημένο. 1575 01:06:49,150 --> 01:06:52,460 Συγχαρητήρια για την ύπαρξη η πρώτο στοιχείο σε αυτή τη συστοιχία. 1576 01:06:52,460 --> 01:06:54,800 Είστε ήδη διευθετηθεί όλα μόνοι σας. 1577 01:06:54,800 --> 01:06:58,900 Έτσι τώρα έχουμε ένα ταξινομημένο και χωρίς διαλογή συστοιχία. 1578 01:06:58,900 --> 01:07:01,760 Μέχρι τώρα έχουμε λάβει την πρώτη. 1579 01:07:01,760 --> 01:07:05,600 Τι συμβαίνει μεταξύ εδώ και εδώ είναι που λέμε, 1580 01:07:05,600 --> 01:07:08,890 Εντάξει, θα πάμε να δούμε το πρώτο αξία των μη ταξινομημένα σειρά μας 1581 01:07:08,890 --> 01:07:13,270 και θα πάμε να τον εισάγετε στο της σωστή θέση στην ταξινομημένο πίνακα. 1582 01:07:13,270 --> 01:07:21,460 >> Έτσι, αυτό που κάνουμε είναι να παίρνουμε 5 και λέμε, εντάξει, 5 είναι μεγαλύτερη από 3, 1583 01:07:21,460 --> 01:07:24,630 γι 'αυτό ακριβώς το τοποθετήσετε σωστά το δικαίωμα αυτό. 1584 01:07:24,630 --> 01:07:25,130 Είμαστε καλά. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Μέχρι τότε πάμε στο επόμενο ένα μας. 1587 01:07:28,420 --> 01:07:29,720 Και παίρνουμε 2. 1588 01:07:29,720 --> 01:07:34,330 Εμείς λέμε, εντάξει, 2 είναι λιγότερο από 3, οπότε ξέρουμε ότι 1589 01:07:34,330 --> 01:07:36,220 πρέπει να είναι κατά το μπροστά του καταλόγου μας τώρα. 1590 01:07:36,220 --> 01:07:41,800 Έτσι, αυτό που κάνουμε είναι να ωθήσει 3 και 5 προς τα κάτω και κινούμαστε 2 σε εκείνη την πρώτη υποδοχή. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Έτσι είμαστε απλά εισάγοντας η σωστή θέση που πρέπει να είναι. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Στη συνέχεια, εξετάζουμε μας επόμενο, και λέμε 6. 1595 01:07:49,470 --> 01:07:53,620 Εντάξει, 6 είναι μεγαλύτερη από ό, τι πάντα σε ταξινομημένη σειρά μας, 1596 01:07:53,620 --> 01:07:56,000 γι 'αυτό ακριβώς την ετικέτα για να το τέλος. 1597 01:07:56,000 --> 01:07:56,960 Και τότε θα δούμε 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 είναι μικρότερο από 6, είναι λιγότερο από 5 αλλά είναι μεγαλύτερη από 3. 1600 01:08:03,020 --> 01:08:06,270 Έτσι, εμείς απλά τοποθετήστε το δικαίωμα σε η μέση μεταξύ 3 και 5. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Έτσι, για να κάνουν ότι λίγο λίγο πιο συγκεκριμένα, 1603 01:08:10,530 --> 01:08:12,280 εδώ είναι το είδος του ιδέα για το τι συνέβη. 1604 01:08:12,280 --> 01:08:16,430 Έτσι, για κάθε αδιαχώριστα στοιχείο, εμείς προσδιοριστεί ο τόπος όπου το ταξινομημένο τμήμα 1605 01:08:16,430 --> 01:08:17,090 είναι. 1606 01:08:17,090 --> 01:08:20,680 >> Έτσι, έχοντας κατά νου την διαλογή και χωρίς διαλογή, 1607 01:08:20,680 --> 01:08:26,080 πρέπει να διασχίσουμε μέσα και εικόνα πού ταιριάζει στον ταξινομημένο πίνακα. 1608 01:08:26,080 --> 01:08:31,460 Και εμείς το τοποθετήσετε με τη μετατόπιση του στοιχεία προς τα δεξιά του προς τα κάτω. 1609 01:08:31,460 --> 01:08:34,910 Και τότε θα κρατήσει μόνο επανάληψη μέσα μέχρι να 1610 01:08:34,910 --> 01:08:39,270 έχουν μια εντελώς ταξινομημένη λίστα όπου αδιαχώριστα είναι τώρα μηδέν 1611 01:08:39,270 --> 01:08:41,720 και ταξινομημένα καταλαμβάνει το σύνολό της λίστας μας. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Έτσι, και πάλι, για να κάνει τα πράγματα ακόμα Πιο συγκεκριμένα, έχουμε ψευδοκώδικα. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Έτσι, βασικά για το i είναι ίσο με 0 έως n μείον 1, 1616 01:08:52,410 --> 01:08:54,790 αυτό είναι ακριβώς το μήκος του πίνακα μας. 1617 01:08:54,790 --> 01:09:00,979 Έχουμε κάποιο στοιχείο που είναι ίσο με η πρώτη συστοιχία ή οι πρώτοι δείκτες. 1618 01:09:00,979 --> 01:09:03,200 Θέτουμε ι ίση με εκείνη. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Έτσι, ενώ το j είναι μεγαλύτερη από μηδέν και η συστοιχία, j μείον 1 1621 01:09:09,210 --> 01:09:11,660 είναι μεγαλύτερο από το στοιχείο, οπότε το μόνο που κάνει 1622 01:09:11,660 --> 01:09:17,479 είναι να διασφαλίσουμε ότι ι σας αντιπροσωπεύει πραγματικά 1623 01:09:17,479 --> 01:09:20,010 ο υποστεί διαλογή τμήμα της συστοιχίας. 1624 01:09:20,010 --> 01:09:30,745 >> Έτσι, ενώ δεν υπάρχει ακόμα πράγματα να ταξινομήσετε και ι μείον ένα is-- τι 1625 01:09:30,745 --> 01:09:31,840 είναι το στοιχείο της; 1626 01:09:31,840 --> 01:09:34,760 J ποτέ δεν ορίστηκε εδώ. 1627 01:09:34,760 --> 01:09:35,677 Είναι το είδος των ενοχλητικό. 1628 01:09:35,677 --> 01:09:36,176 ΟΚ. 1629 01:09:36,176 --> 01:09:36,689 Anyways. 1630 01:09:36,689 --> 01:09:39,899 Έτσι, j μείον 1, έχετε τον έλεγχο το στοιχείο πριν. 1631 01:09:39,899 --> 01:09:46,460 Λέτε, εντάξει, είναι το στοιχείο πριν από όπου κι αν am-- ας 1632 01:09:46,460 --> 01:09:47,540 πραγματικά συντάξει αυτό έξω. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Ας πούμε ότι αυτό είναι όπως και για το δεύτερο πέρασμα μας. 1635 01:09:56,830 --> 01:09:59,525 Έτσι, εγώ πρόκειται να είναι ίση σε 1, η οποία είναι εδώ. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Έτσι Ι πρόκειται να είναι ίση προς 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Αυτό θα είναι 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Εντάξει. 1642 01:10:16,750 --> 01:10:20,945 Έτσι, το στοιχείο μας σε αυτή την περίπτωση θα είναι ίση με 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 Και έχουμε κάποια j που είναι πρόκειται να είναι ίση προς 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Ω, j είναι Decrementing. 1647 01:10:30,971 --> 01:10:31,720 Αυτό είναι ό, τι είναι. 1648 01:10:31,720 --> 01:10:35,680 Έτσι, j είναι ίσο με i, οπότε τι είναι αυτό λέει είναι ότι καθώς προχωρούμε προς τα εμπρός, 1649 01:10:35,680 --> 01:10:37,530 είμαστε απλώς να διασφαλίσουμε ότι δεν είμαστε πάνω 1650 01:10:37,530 --> 01:10:43,520 ευρετηρίαση με αυτόν τον τρόπο όταν προσπαθούμε να τοποθετήσετε τα πράγματα σε ταξινομημένη λίστα μας. 1651 01:10:43,520 --> 01:10:49,850 >> Έτσι, όταν j είναι ίσο με το 1 στην περίπτωση αυτή και συστοιχία ι μείον ένα-- έτσι συστοιχία ι μείον 1 1652 01:10:49,850 --> 01:10:54,610 είναι 2 σε αυτή case-- αν αυτό είναι μεγαλύτερο από το στοιχείο, 1653 01:10:54,610 --> 01:10:57,700 τότε όλα αυτά που κάνει αλλάζει τα πράγματα προς τα κάτω. 1654 01:10:57,700 --> 01:11:04,790 Έτσι, στην περίπτωση αυτή, σειρά j μείον ένα θα είναι συστοιχία μηδέν, η οποία είναι 2. 1655 01:11:04,790 --> 01:11:08,430 2 δεν είναι μεγαλύτερο από 4, έτσι αυτό δεν εκτελεί. 1656 01:11:08,430 --> 01:11:11,460 Έτσι, η στροφή δεν κινείται προς τα κάτω. 1657 01:11:11,460 --> 01:11:18,790 Αυτό που κάνει εδώ είναι ακριβώς κινείται ταξινομημένο πίνακα σας κάτω. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Σε αυτήν την περίπτωση, πράγματι, μπορούμε θα μπορούσε να do-- ας κάνουμε αυτό 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Έτσι, αν είμαστε να περπατήσετε μέσα με Αυτό το παράδειγμα, είμαστε τώρα εδώ. 1662 01:11:31,970 --> 01:11:32,740 Αυτό είναι ταξινομημένο. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Αυτό είναι αδιαχώριστα. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Cool; 1667 01:11:39,860 --> 01:11:46,620 Έτσι, i είναι ίσο με 2, έτσι στοιχείο μας είναι ίση με 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 Και ι μας είναι ίση με 2. 1670 01:11:52,270 --> 01:12:00,620 Έτσι κοιτάξουμε μέσα και εμείς πω, εντάξει, είναι συστοιχία ι μείον ένα 1671 01:12:00,620 --> 01:12:03,470 μεγαλύτερο από το στοιχείο ότι ψάχνουμε σε; 1672 01:12:03,470 --> 01:12:05,540 Και η απάντηση είναι ναι, σωστά; 1673 01:12:05,540 --> 01:12:11,275 4 είναι μεγαλύτερη από 3 και j είναι 2, έτσι ώστε αυτός ο κώδικας εκτελεί. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Και τώρα τι κάνουμε μια σειρά σε 2, έτσι ακριβώς εδώ, εμείς τους swap. 1676 01:12:18,550 --> 01:12:25,620 Γι 'αυτό και μόνο να πω, εντάξει, συστοιχία σε 2 τώρα πρόκειται να είναι 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 Και j πρόκειται να ισούται j μείον 1, η οποία είναι 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Αυτό είναι τρομερό, αλλά εσείς να πάρετε την ιδέα. 1681 01:12:37,200 --> 01:12:38,360 J είναι πλέον ίσο με 1. 1682 01:12:38,360 --> 01:12:44,360 Και συστοιχία ι είναι ακριβώς πρόκειται να είναι ίσο με το στοιχείο μας, η οποία ήταν 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Έσβησα κάτι που δεν θα πρέπει να έχουν ή miswrote κάτι, 1685 01:12:48,570 --> 01:12:49,910 αλλά εσείς παίρνετε την ιδέα. 1686 01:12:49,910 --> 01:12:50,640 >> Θα προχωρήσουμε σε n. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 Και στη συνέχεια, αν αυτό ήταν, θα ήταν βρόχο και πάλι και θα πω, εντάξει, j είναι 1 τώρα. 1689 01:12:57,960 --> 01:13:00,665 Και συστοιχία ι μείον 1 είναι τώρα 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Είναι λιγότερο από 2 στοιχείο μας; 1692 01:13:03,760 --> 01:13:04,540 Όχι; 1693 01:13:04,540 --> 01:13:07,970 Αυτό σημαίνει ότι έχουμε εισάγεται το στοιχείο αυτό 1694 01:13:07,970 --> 01:13:10,110 στο σωστό σημείο σε ταξινομημένη σειρά μας. 1695 01:13:10,110 --> 01:13:14,400 Στη συνέχεια, μπορούμε να πάρουμε αυτό και λέμε, Εντάξει, ταξινομημένο πίνακα μας είναι εδώ. 1696 01:13:14,400 --> 01:13:19,940 Και θα πάρει τον αριθμό αυτό 6 και να όπως, εντάξει, είναι 6 λιγότερο από αυτόν τον αριθμό; 1697 01:13:19,940 --> 01:13:20,480 Όχι; 1698 01:13:20,480 --> 01:13:21,080 Cool. 1699 01:13:21,080 --> 01:13:22,680 Είμαστε μια χαρά. 1700 01:13:22,680 --> 01:13:23,530 >> Κάν 'το και πάλι. 1701 01:13:23,530 --> 01:13:24,740 Λέμε 7. 1702 01:13:24,740 --> 01:13:29,010 7 είναι μικρότερο από το τέλος των ταξινομημένο πίνακα μας; 1703 01:13:29,010 --> 01:13:29,520 Όχι. 1704 01:13:29,520 --> 01:13:30,430 Έτσι, είμαστε μια χαρά. 1705 01:13:30,430 --> 01:13:32,760 Έτσι, αυτό θα πρέπει να διευθετηθεί. 1706 01:13:32,760 --> 01:13:38,610 Βασικά όλα αυτά κάνει είναι αυτό που λέει αφομοίωσης 1707 01:13:38,610 --> 01:13:42,060 το πρώτο στοιχείο του αδιαχώριστα σειρά σας, 1708 01:13:42,060 --> 01:13:46,010 καταλάβω πού πηγαίνει σε ταξινομημένη σειρά σας. 1709 01:13:46,010 --> 01:13:48,780 Και αυτό διαρκεί μόνο φροντίδα των swaps για να το κάνουμε αυτό. 1710 01:13:48,780 --> 01:13:51,300 Είσαι βασικά ακριβώς swapping μέχρι να είναι στο σωστό σημείο. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Η οπτική εικόνα είναι ότι είστε κινείται πάντα κάτω από αυτό. 1713 01:13:56,990 --> 01:13:59,420 >> Έτσι είναι σαν μισό bubble sort-esque. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Αναχώρηση μελέτη 50. 1716 01:14:03,420 --> 01:14:06,000 Θα ήθελα να συστήσω ιδιαίτερα προσπαθώντας να κωδικοποιήσει αυτό για τη δική σας. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Εάν έχετε οποιαδήποτε προβλήματα ή αν θέλετε να δείτε δείγμα κώδικα για ένα είδος εισαγωγής, 1719 01:14:12,450 --> 01:14:13,750 παρακαλώ επιτρέψτε μου να ξέρω. 1720 01:14:13,750 --> 01:14:14,500 Είμαι πάντα γύρω. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Έτσι χειρότερη περίπτωση εκτέλεσης και καλύτερο χρόνο εκτέλεσης υπόθεση. 1723 01:14:20,200 --> 01:14:30,700 Όπως μπορείτε τύπος είδε από το τραπέζι έχω ήδη που έδειξε, είναι τόσο ν τετράγωνο και ν. 1724 01:14:30,700 --> 01:14:35,590 >> Έτσι, το είδος του πηγαίνει μακριά από αυτό που μιλήσαμε σχετικά με τα προηγούμενα είδη μας, χειρότερο 1725 01:14:35,590 --> 01:14:38,760 περίπτωση εκτέλεσης είναι ότι εάν είναι εντελώς άνευ διαλογής, 1726 01:14:38,760 --> 01:14:42,530 πρέπει να συγκρίνουμε όλες αυτές τις n φορές. 1727 01:14:42,530 --> 01:14:47,020 Εμείς κάνουμε ένα σωρό των συγκρίσεων γιατί αν είναι σε αντίστροφη σειρά, 1728 01:14:47,020 --> 01:14:50,360 θα πάμε να πούμε, εντάξει, αυτό είναι το ίδιο, αυτό είναι καλό, 1729 01:14:50,360 --> 01:14:54,650 και αυτό θα πρέπει να συγκρίνονται κατά το πρώτο να κινηθεί πίσω. 1730 01:14:54,650 --> 01:14:56,710 Και όπως έχουμε προς το τέλος της ουράς, έχουμε 1731 01:14:56,710 --> 01:14:59,440 να συγκρίνουν, να συγκρίνουν, και συγκρίνετε με τα πάντα. 1732 01:14:59,440 --> 01:15:03,030 >> Έτσι καταλήγει να είναι περίπου n στο τετράγωνο. 1733 01:15:03,030 --> 01:15:09,510 Αν αυτό είναι σωστό, τότε πω, εντάξει, 2, είσαι καλός. 1734 01:15:09,510 --> 01:15:11,330 3, είστε σε σύγκριση με το 2. 1735 01:15:11,330 --> 01:15:12,310 Είσαι καλή. 1736 01:15:12,310 --> 01:15:14,150 4, μπορείτε απλά να συγκριθεί με την ουρά. 1737 01:15:14,150 --> 01:15:14,990 Είσαι καλή. 1738 01:15:14,990 --> 01:15:17,140 6, σε σύγκριση με την ουρά, είσαι μια χαρά. 1739 01:15:17,140 --> 01:15:20,870 Έτσι, για κάθε σημείο αν είναι ήδη διαλογή, έχετε κάνει μια σύγκριση. 1740 01:15:20,870 --> 01:15:22,320 Έτσι είναι ακριβώς n. 1741 01:15:22,320 --> 01:15:26,840 Και επειδή έχουμε μια καλύτερη εκτέλεσης υπόθεση Ν και χειρότερη περίπτωση εκτέλεσης του ν 1742 01:15:26,840 --> 01:15:28,680 τετράγωνο, δεν έχουμε καμία αναμενόμενο χρόνο εκτέλεσης. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Εξαρτάται μόνο από το χάος της λίστας μας εκεί. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 Και πάλι, ένα άλλο γραφική παράσταση και ένα άλλο τραπέζι. 1747 01:15:39,530 --> 01:15:41,170 Έτσι, οι διαφορές μεταξύ των ειδών. 1748 01:15:41,170 --> 01:15:44,180 Είμαι ακριβώς πρόκειται να αεράκι μέσα, εγώ Νιώθουμε σαν να έχουμε μιλήσει εκτενώς 1749 01:15:44,180 --> 01:15:46,570 για το πώς κάθε είδους της ποικίλλει και συνδέουν μεταξύ τους. 1750 01:15:46,570 --> 01:15:50,564 Έτσι Ταξινόμηση με συγχώνευση είναι η τελευταία Θα σας κουράσω με τα παιδιά. 1751 01:15:50,564 --> 01:15:52,105 Έχουμε μια όμορφη πολύχρωμη εικόνα. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Έτσι συγχώνευση είδος είναι ένα αναδρομικό αλγόριθμο. 1754 01:15:56,040 --> 01:15:59,910 Έτσι, εσείς δεν ξέρετε τι μια αναδρομική συνάρτηση είναι; 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Όποιος θέλει να πει; 1757 01:16:03,320 --> 01:16:04,739 Θέλετε να δοκιμάσετε; 1758 01:16:04,739 --> 01:16:07,280 Έτσι, μια αναδρομική συνάρτηση είναι απλά μια συνάρτηση που καλεί τον εαυτό της. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Έτσι, αν εσείς είστε εξοικειωμένοι με την ακολουθία Fibonacci, 1761 01:16:11,590 --> 01:16:15,670 ότι κρίνονται αναδρομικές επειδή παίρνετε τα δύο προηγούμενα 1762 01:16:15,670 --> 01:16:17,530 και να τα προσθέσετε μαζί να πάρετε επόμενη σας. 1763 01:16:17,530 --> 01:16:21,440 Έτσι αναδρομικές, πάντα σκέφτομαι της αναδρομής ως σαν μια σπείρα 1764 01:16:21,440 --> 01:16:24,430 έτσι είστε σαν σπειροειδώς προς τα κάτω σε αυτό. 1765 01:16:24,430 --> 01:16:27,150 Αλλά αυτό είναι μόνο μια λειτουργία που αυτοαποκαλείται. 1766 01:16:27,150 --> 01:16:32,660 >> Και, πραγματικά, πραγματικά γρήγορα μπορώ μπορεί να σας δείξει τι μοιάζει. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Έτσι αναδρομικό εδώ, αν κοιτάξουμε, αυτό είναι το αναδρομικό τρόπο για να συνοψίσω πάνω από μια συστοιχία. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Έτσι, το μόνο που κάνουμε είναι έχουμε άθροισμα λειτουργία 1771 01:16:47,880 --> 01:16:52,210 ποσό που παίρνει ένα μέγεθος και μια σειρά. 1772 01:16:52,210 --> 01:16:55,210 Και αν παρατηρήσετε, το μέγεθος μειώνεται κατά μία ημέρα κάθε φορά. 1773 01:16:55,210 --> 01:17:00,365 Και το μόνο που κάνει είναι αν το x είναι ίσο με zero-- οπότε αν το μέγεθος του πίνακα 1774 01:17:00,365 --> 01:17:02,710 είναι ίσο με zero-- επιστρέφει μηδέν. 1775 01:17:02,710 --> 01:17:10,440 >> Διαφορετικά, το οποίο συνοψίζει αυτό τελευταίο στοιχείο της συστοιχίας, 1776 01:17:10,440 --> 01:17:14,790 και, στη συνέχεια, λαμβάνει ένα ποσό της το υπόλοιπο της συστοιχίας. 1777 01:17:14,790 --> 01:17:17,555 Έτσι, αυτό είναι ακριβώς αυτό χωρίς να χαλάσει σε όλο και μικρότερα προβλήματα. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Μεγάλη ιστορία σύντομη, αναδρομή, συνάρτηση που καλεί τον εαυτό της. 1780 01:17:21,890 --> 01:17:25,740 Αν αυτό είναι το μόνο που έχεις έξω από αυτό, αυτό είναι μια αναδρομική συνάρτηση είναι. 1781 01:17:25,740 --> 01:17:29,870 Εάν πάρετε 51, θα πάρει πολύ, πολύ άνετα με αναδρομή. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Είναι πραγματικά δροσερό. 1784 01:17:32,370 --> 01:17:34,660 Έκανε νόημα σε παρόμοια Τρεις ένα βράδυ έξω. 1785 01:17:34,660 --> 01:17:37,900 Και ήμουν όπως, γιατί ποτέ δεν μπορώ να χρησιμοποιήσω αυτό; 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Έτσι, για τη συγχώνευση του είδους, βασικά τι πρόκειται να κάνουμε είναι ότι είναι 1788 01:17:42,430 --> 01:17:45,620 πρόκειται να το σπάσει και να σπάσει προς τα κάτω μέχρι να είναι απλώς και μόνο στοιχεία. 1789 01:17:45,620 --> 01:17:47,570 Τα επιμέρους στοιχεία είναι εύκολο να ταξινομήσετε. 1790 01:17:47,570 --> 01:17:48,070 Βλέπουμε ότι. 1791 01:17:48,070 --> 01:17:50,760 Εάν έχετε ένα στοιχείο, είναι θεωρείται ήδη ταξινομημένο. 1792 01:17:50,760 --> 01:17:53,800 Έτσι, σε μια είσοδο του n στοιχεία, εάν το η είναι μικρότερο από 2, 1793 01:17:53,800 --> 01:17:58,120 μόλις επιστρέψει διότι αυτό σημαίνει είναι είτε 0 ή 1, όπως έχουμε δει. 1794 01:17:58,120 --> 01:18:00,050 Αυτοί θεωρούνται ταξινομημένα στοιχεία. 1795 01:18:00,050 --> 01:18:02,170 >> Διαφορετικά θα σπάσει κατά το ήμισυ. 1796 01:18:02,170 --> 01:18:06,336 Διαχωρίστε το πρώτο εξάμηνο, να ταξινομήσετε τη δεύτερη μισό, και στη συνέχεια να τα συγχωνεύσει μαζί. 1797 01:18:06,336 --> 01:18:07,460 Γιατί λέγεται συγχώνευση ταξινόμησης. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Έτσι έχουμε εδώ εμείς θα λύσουμε αυτά. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Έτσι, κρατάμε την κατοχή τους έως ότου το μέγεθος του πίνακα είναι 1. 1802 01:18:17,210 --> 01:18:20,790 Έτσι, όταν είναι 1, μπορούμε απλά να επιστρέψει γιατί αυτό είναι ένα ταξινομημένο πίνακα, 1803 01:18:20,790 --> 01:18:23,940 και αυτό είναι μια ταξινομημένη σειρά, και αυτό είναι ένα ταξινομημένο πίνακα, είμαστε όλοι ταξινομημένο. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Και τότε τι κάνουμε εμείς ξεκινήστε τη συγχώνευσή τους μαζί. 1806 01:18:29,420 --> 01:18:31,820 >> Έτσι, ο τρόπος που μπορείτε να σκεφτείτε συγχώνευση είναι 1807 01:18:31,820 --> 01:18:36,240 απλά βγάλτε τη μικρότερη αριθμός κάθε μία από τις συστοιχίες υπο 1808 01:18:36,240 --> 01:18:38,330 και μόλις το προσαρτήσει στο προέκυψε σειρά. 1809 01:18:38,330 --> 01:18:44,290 Έτσι, αν κοιτάξετε εδώ, όταν έχουμε Αυτά τα σύνολα που έχουμε 4, 6, και 1. 1810 01:18:44,290 --> 01:18:47,280 Όταν θέλουμε να συγχωνεύσει αυτά, κοιτάξουμε αυτές τις δύο πρώτες 1811 01:18:47,280 --> 01:18:50,730 και λέμε, εντάξει, 1 είναι μικρότερη, πηγαίνει προς τα εμπρός. 1812 01:18:50,730 --> 01:18:54,330 4 και 6, δεν υπάρχει τίποτα για να συγκρίνετε να, ακριβώς την ετικέτα για να το τέλος. 1813 01:18:54,330 --> 01:18:58,020 >> Όταν έχουμε συνδυάσει αυτά τα δύο, εμείς απλά να λάβει το μικρότερο από αυτά τα δύο, 1814 01:18:58,020 --> 01:18:59,310 έτσι είναι 1. 1815 01:18:59,310 --> 01:19:01,690 Και τώρα παίρνουμε το μικρότερου από τα δύο, οπότε 2. 1816 01:19:01,690 --> 01:19:03,330 Μικρότερα από αυτά τα δύο, 3. 1817 01:19:03,330 --> 01:19:06,260 Μικρότερα από αυτά τα δύο, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Έτσι, είστε ακριβώς το τράβηγμα από αυτά. 1819 01:19:08,630 --> 01:19:11,210 Και επειδή έχω έχουν ταξινομηθεί προηγουμένως, 1820 01:19:11,210 --> 01:19:14,300 έχετε μόνο ένα σύγκριση κάθε χρόνο εκεί. 1821 01:19:14,300 --> 01:19:19,610 Έτσι, περισσότερο κώδικα εδώ, ακριβώς εκπροσώπηση. 1822 01:19:19,610 --> 01:19:24,410 Έτσι, μπορείτε να ξεκινήσετε στη μέση και μπορείτε είδος αριστερό και το δεξί 1823 01:19:24,410 --> 01:19:26,180 και, στη συνέχεια, μπορείτε απλά να συγχωνεύσει εκείνους. 1824 01:19:26,180 --> 01:19:30,080 >> Και δεν έχουμε κώδικα για συγχώνευση εδώ. 1825 01:19:30,080 --> 01:19:34,110 Αλλά, και πάλι, αν πάτε στην μελέτη, το 50, θα είναι εκεί. 1826 01:19:34,110 --> 01:19:36,860 Διαφορετικά έρθει να μου μιλήσει εάν είστε ακόμα σε σύγχυση. 1827 01:19:36,860 --> 01:19:42,340 Έτσι, δροσερό πράγμα εδώ είναι ότι η καλύτερη περίπτωση, χειρότερη περίπτωση, και αναμενόμενη αυτονομία 1828 01:19:42,340 --> 01:19:46,250 είναι όλα στο αρχείο καταγραφής n, η οποία είναι πολύ καλύτερη από ό, τι έχουμε 1829 01:19:46,250 --> 01:19:48,000 δει για το υπόλοιπο του είδους μας. 1830 01:19:48,000 --> 01:19:51,840 Έχουμε δει ν τετράγωνο και τι πραγματικά 1831 01:19:51,840 --> 01:19:54,380 πάρετε εδώ είναι n log n, η οποία είναι μεγάλη. 1832 01:19:54,380 --> 01:19:55,830 >> Κοιτάξτε πόσο καλύτερα ότι είναι. 1833 01:19:55,830 --> 01:19:56,780 Μια τέτοια ωραία καμπύλη. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Έτσι, πολύ πιο αποδοτική. 1836 01:20:00,120 --> 01:20:03,510 Αν ποτέ δυνατόν, τη χρήση συγχώνευση είδος. 1837 01:20:03,510 --> 01:20:04,810 Θα σας εξοικονομήσει χρόνο. 1838 01:20:04,810 --> 01:20:07,670 Κατόπιν πάλι, όπως είπαμε, εάν είστε κάτω σε αυτή τη χαμηλότερη περιοχή, 1839 01:20:07,670 --> 01:20:09,480 δεν κάνουν ότι μεγάλη διαφορά. 1840 01:20:09,480 --> 01:20:11,360 Μπορείτε να πάρετε μέχρι και χιλιάδες και χιλιάδες των εισροών, 1841 01:20:11,360 --> 01:20:13,318 σίγουρα θέλετε ένα πιο αποδοτικό αλγόριθμο. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 Και, πάλι, υπέροχο τραπέζι μας όλων τα είδη που σας παιδιά έμαθαν σήμερα. 1844 01:20:19,400 --> 01:20:21,157 >> Έτσι ξέρω ότι αυτό είναι ένα πυκνό ημέρα. 1845 01:20:21,157 --> 01:20:23,490 Αυτό δεν είναι κατ 'ανάγκη θα για να σας βοηθήσει με το chipset σας. 1846 01:20:23,490 --> 01:20:28,250 Αλλά εγώ απλά θέλω να κάνω μια δήλωση αποποίησης ότι η ενότητα δεν είναι μόνο για psets. 1847 01:20:28,250 --> 01:20:31,240 Όλο αυτό το υλικό είναι δίκαιη παιχνίδι για εξετάσεις προόδου σας. 1848 01:20:31,240 --> 01:20:35,430 Και επίσης, αν το κάνετε να συνεχίσει με το CS, αυτά είναι πραγματικά σημαντικές βασικές αρχές 1849 01:20:35,430 --> 01:20:37,870 ότι θα πρέπει να γνωρίζουν. 1850 01:20:37,870 --> 01:20:41,700 Έτσι, μερικές ημέρες θα είναι ένα λίγο περισσότερη βοήθεια το chipset, 1851 01:20:41,700 --> 01:20:44,600 αλλά μερικές εβδομάδες θα είναι πολύ πιο πραγματικό περιεχόμενο 1852 01:20:44,600 --> 01:20:46,600 Αυτό μπορεί να μην φαίνεται σούπερ χρήσιμη σε σας τώρα, 1853 01:20:46,600 --> 01:20:51,215 αλλά υπόσχομαι αν συνεχίσετε και στο εξής θα είναι πολύ, πολύ χρήσιμη. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Έτσι, αυτό είναι για την ενότητα. 1856 01:20:54,250 --> 01:20:55,250 Κάτω στο σύρμα. 1857 01:20:55,250 --> 01:20:56,570 Το έκανα μέσα σε ένα λεπτό. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Αλλά εκεί θα πάτε. 1860 01:20:58,970 --> 01:21:01,240 Και θα έχω ντόνατς ή καραμέλα. 1861 01:21:01,240 --> 01:21:03,464 Υπάρχει κάποιος αλλεργικός σε οτιδήποτε, από τον τρόπο; 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Τα αυγά και το γάλα. 1864 01:21:05,890 --> 01:21:08,120 Έτσι, ντόνατς είναι ένα όχι; 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 ΟΚ. 1867 01:21:10,160 --> 01:21:10,770 Εντάξει. 1868 01:21:10,770 --> 01:21:12,120 Σοκολάτα δεν είναι; 1869 01:21:12,120 --> 01:21:12,620 Starburst. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Αστρικές εκρήξεις είναι καλό. 1872 01:21:14,670 --> 01:21:15,170 ΟΚ. 1873 01:21:15,170 --> 01:21:17,045 Εμείς πάμε για να έχουν StarBurst την επόμενη εβδομάδα στη συνέχεια. 1874 01:21:17,045 --> 01:21:18,240 Αυτό είναι ό, τι θα πάρω. 1875 01:21:18,240 --> 01:21:19,690 Εσείς έχετε μια υπέροχη εβδομάδα. 1876 01:21:19,690 --> 01:21:20,460 Διαβάστε spec σας. 1877 01:21:20,460 --> 01:21:22,130 >> Επιτρέψτε μου να ξέρω αν έχετε οποιεσδήποτε ερωτήσεις. 1878 01:21:22,130 --> 01:21:25,300 Pset δύο βαθμούς θα πρέπει να είναι έξω για να σας μέχρι την Πέμπτη. 1879 01:21:25,300 --> 01:21:28,320 Εάν έχετε οποιεσδήποτε ερωτήσεις για το πώς θα βαθμολογούνται σε κάτι 1880 01:21:28,320 --> 01:21:32,250 ή γιατί θα βαθμολογούνται σε κάτι ο τρόπος που έκανε, παρακαλώ στείλτε μου, έλα να μου μιλήσεις. 1881 01:21:32,250 --> 01:21:34,210 Είμαι λίγο τρελός αυτό εβδομάδα, αλλά υπόσχομαι 1882 01:21:34,210 --> 01:21:36,340 Θα εξακολουθούν να απαντήσω μέσα σε 24 ώρες. 1883 01:21:36,340 --> 01:21:38,240 Έτσι έχουμε μια μεγάλη εβδομάδα, ο καθένας. 1884 01:21:38,240 --> 01:21:40,090 Καλή τύχη για το chipset σας. 1885 01:21:40,090 --> 01:21:41,248