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 Так, большинство из вас должен был получить по электронной почте от меня о вашем царапинам Pset, 15 00:00:37,350 --> 00:00:39,920 а также классификации для Pset 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 Некоторые из вас, возможно, уже заметил, что от вашего Pset. 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 если вы загружаете Pset 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 так что, когда вы получаете письма на как 2 утра и я градация. 38 00:01:30,080 --> 00:01:33,710 Если не вызвать у меня есть, чтобы посмотреть все вокруг для вашего Pset. 39 00:01:33,710 --> 00:01:34,440 Прохладный. 40 00:01:34,440 --> 00:01:37,270 >> Я знаю, что это рано, но я полностью были взяты врасплох 41 00:01:37,270 --> 00:01:40,800 по эссе, это из-за этого в пятницу, то мои профессора были просто нравится, о да. 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 Так что вы не бросили врасплох, когда Я уже раздел на следующей неделе, что о, 47 00:01:57,510 --> 00:02:00,560 ваш тест на следующей неделе, я думал, Я хотел бы дать вам немного больше 48 00:02:00,560 --> 00:02:01,500 из руководителей сейчас. 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 Как люди читали спец из любопытства? 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 Определенно, после вы сделали сегодня прочитал вашу спецификацию по крайней мере, 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-- --Она ​​только Во второй раз мы сделали это Pset, 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 Вы хотите, чтобы заботиться о тех, в начале неделю, когда вы все еще можете написать мне 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 Так что даже если вы не собираетесь на самом деле начать кодирование, загрузить дистрибутив 82 00:03:20,410 --> 00:03:24,040 Код, прочитать спецификацию, убедитесь все работает там. 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 и вы должны есть по электронной почте от меня, с файлом образца. 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 а затем мы собираемся через четыре различные виды, которые Bubble, 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 Прохладный. 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, и буду ходить Вы через демо ней в секунду. 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 >> Точно так же, если у вас есть какая-то внешняя функционировать как своп или 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 Так как я уже говорил, как с своп, это было бы 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 Вы можете сказать, печати Key в любой момент. 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 Так, в любое время вы в цикле, и вы просто хотите, чтобы увидеть, как, ой. 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 не должны индивидуально говорят, печати I. печати сообщение. 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-- --Она ​​это вид ярлыка где 175 00:07:17,160 --> 00:07:19,530 Вы не должны продолжать идти, как, ой. 176 00:07:19,530 --> 00:07:23,150 Печать Key или печати 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 Там нет ничего, с ума на моем ноутбуке в любом случае. 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 Алиса, очевидно, борется здесь чуть-чуть, 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 Правда Айк. 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 Прохладный. 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, все, что вам делать, Глория типа 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 Точка вспышки Ти так что означает, что вы идете 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 И, как вы видите, у нас есть это открытые круглые скобки, ВВП, близкие круглые скобки, 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 Так, есть одна ошибка В этой программе Цезарь 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 Главная функция для всех ваших программ. 270 00:11:26,490 --> 00:11:29,230 Если у вас не было Main, я мог бы быть немного волновался сейчас, 271 00:11:29,230 --> 00:11:31,000 но я надеюсь, что вы все были Main там. 272 00:11:31,000 --> 00:11:34,150 Итак, что мы можем сделать, это мы можем просто разорвать Main, как и что. 273 00:11:34,150 --> 00:11:35,190 Так, он говорит, ОК. 274 00:11:35,190 --> 00:11:37,430 Мы ставим нашу останова один есть. 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 Так, в этом случае ключ не был назначен еще. 302 00:12:53,870 --> 00:12:57,050 Так, Key некоторое значение мусора что вы видите на дне там. 303 00:12:57,050 --> 00:13:03,680 Отрицательный $ 120-- --Она ​​одного миллиарда и что-то странные вещи правильно? 304 00:13:03,680 --> 00:13:05,340 Это не тот ключ, который мы ожидали. 305 00:13:05,340 --> 00:13:10,720 Но если мы попали Далее, а затем мы попробуйте и ключ печати, это три. 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 Прохладный. 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, открытые круглые скобки и круглые скобки, 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 я равна 0, N равен STRLEN, простой текст, а затем 335 00:14:32,030 --> 00:14:33,960 Я меньше п, я, плюс, плюс. 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 Прохладный. 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 Если это B, это обычный текст И. Мы можно получить информацию о наших местных жителей. 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: Ну, мы можем 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 выполняется только в If условие правильного право? 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 Это сейчас E, как и должно быть. 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 которые изменены наш B. Но, в этом случае здесь, 382 00:16:28,620 --> 00:16:32,860 у нас есть, что он просто пропустил его, и пошел в [? L Сифф. ?] 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 Прохладный. 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 и это гораздо приятнее иметь представление о том, как отлаживать скорее раньше, чем позже. 443 00:19:08,170 --> 00:19:08,850 Хорошо. 444 00:19:08,850 --> 00:19:09,625 Прохладный. 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 Прохладный. 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 АДД. 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-- --мы нравится называть это разделяй и властвуй. 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 Вы видите, о. 479 00:20:20,720 --> 00:20:22,750 Приходит ли Эллисон до М? 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 >> Так, у нас есть N, который является линейное время. 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 знаю, что вы собирались быть поиск через каждый человек игла, вещь сена, 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 но в случае, если кто немного нечеткая, хотите, чтобы укрепить его, 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 что мы делаем в этом время цикла. 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 >> Мм-хм? 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 п над 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 ПРЕПОДАВАТЕЛЬ: Так п над 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 Так п над 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 Мм-хм? 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 Удивительный. 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 Прохладный. 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 Прохладный. 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 Так что это Ьоо здесь, поэтому мы хочу вернуться истинным или ложным. 691 00:29:08,220 --> 00:29:12,280 Мы говорим, это число [? АСР? ?] Таким образом, если она есть, 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 Но в данном случае, потому что наша функция возвращает логическое значение, 699 00:29:26,780 --> 00:29:28,962 мы должны вернуться истинным или ложным. 700 00:29:28,962 --> 00:29:30,920 СТУДЕНТ: Когда ты говоря логическое выражение, 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 как сверху или ниже, что возвращает истину или ложь 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 Таким образом, в случае, если вы спрашиваете о чем-то, как сохранить это в с. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Так что, если у нас есть Int основной (пустоту) и что-то вроде этого. 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 И вы просто попасть в бесконечный цикл, а затем вы будете сегментации 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 Люблю это. 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 >> СТУДЕНТ: это имеет значение ли ли ваш н четным или нечетным? 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 Удивительный. 817 00:34:26,850 --> 00:34:27,919 Прохладный. 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 Так как мы говорим о, я знаю, Дэвид упомянул сложности автономной работы. 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 Мм-хм. 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 Наш худший случай журнала н. 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 Вот почему это журнал н потому Вы просто разделять на два. 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 это не войти н больше, потому что Вы добавляете больше работы в нем. 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 Одним из них является, как паническое рода, которые как, ой нет, вернуть массив случайных. 879 00:37:16,170 --> 00:37:16,991 Shutdown система. 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 Так вызывающим юмор всегда хорошо. 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 о том, как работает пузырьковой сортировки. 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 >> ПРЕПОДАВАТЕЛЬ: Мм-хм. 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 Так как Роберт просто сказал, алгоритма что вы просто перемещаться по списку, 902 00:38:05,200 --> 00:38:07,930 обмен соседние значения если они не в порядке. 903 00:38:07,930 --> 00:38:10,975 А потом просто повторять пока вы не делать какие-либо свопы. 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 и шесть, очевидно, не для того, что мы поменять их местами. 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 А потом восемь и два, поменять их местами. 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 Прохладный. 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 Так мы делаем третий проход, который является одним подкачки. 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 >> И это большая вещь с пузырьковой сортировки. 937 00:39:20,900 --> 00:39:23,720 Мы знаем, что, когда мы имеют нулевые свопы, что 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 мы обменять их и мы увеличиваем OUR Счетчик потому что как только мы поменять, 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 Прохладный. 991 00:41:38,300 --> 00:41:42,155 Так на этой ноте, Элисон собирается Чтобы вернуться обратно в прибор. 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 И у нас есть наш славный пузырьковая сортировка вещь здесь. 995 00:41:47,390 --> 00:41:50,800 Так что я уже сделал на велосипеде через массив. 996 00:41:50,800 --> 00:41:53,030 У нас есть наши свопы, которые равны нулю. 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 У нас есть для, и я равна 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Мы хотим, чтобы я быть меньше чем п минус 1 минус к. 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 мы знаем, что мы хотим, чтобы проверить, Массив п и п + 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 Мы хотим, чтобы проверить, если массив н и н плюс 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 >> СТУДЕНТ: Если массив п менее массива н плюс 1. 1041 00:44:07,066 --> 00:44:07,816 ПРЕПОДАВАТЕЛЬ: Мм-хм. 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 Тогда мы хотим поменять их местами. 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 Если мы сказали, равна Б, а тот равна A, все внезапно оба 1056 00:44:41,696 --> 00:44:43,150 просто равна B. 1057 00:44:43,150 --> 00:44:45,720 >> Итак, что мы должны сделать, это мы есть временную переменную вот 1058 00:44:45,720 --> 00:44:49,055 собирается провести один из наших-то время мы находимся в процессе перекачки. 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 поэтому в данном случае, я собираюсь назначить его на массиве н плюс 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 >> И тогда мы можем сделать, это мы можем пойти вперед, а также переназначать массив н плюс 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 Так что теперь мы собираемся переназначить массива п плюс 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 >> И мы можем назначить, что в массиве н а в данном случае массив я. 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 Так что теперь мы переведены массив, который я плюс 1 равным, что находится в массиве I. 1084 00:46:01,500 --> 00:46:08,240 И теперь мы можем вернуться и назначить массив я к чему? 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 Если мы не выполняют никаких свопов, не так ли? 1099 00:46:33,750 --> 00:46:36,900 Если свопы равна нулю в конце этого. 1100 00:46:36,900 --> 00:46:42,975 Поэтому, когда вы выполнить обмен, как мы только что сделал здесь, мы хотим обновить свопы. 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 Таким образом, это говорит если не свопы. 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 Прохладный? 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 СТУДЕНТ: Восхитительно. 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 Так же все получают пузырьковой сортировки? 1149 00:48:24,840 --> 00:48:25,550 Не слишком плохо. 1150 00:48:25,550 --> 00:48:31,910 Перебора, своп вещи с помощью Переменная температура, и мы все же тут? 1151 00:48:31,910 --> 00:48:32,960 Прохладный. 1152 00:48:32,960 --> 00:48:34,080 Удивительный. 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 Прохладный. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Мм-хм. 1161 00:48:43,695 --> 00:48:45,279 >> СТУДЕНТ: [неразборчиво] Int основной обычно. 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 основной где-то. 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 Так что вы думаете, это худший Дело времени выполнения пузырьковой сортировки? 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 >> СТУДЕНТ: N минус 1. 1182 00:49:31,784 --> 00:49:32,700 ПРЕПОДАВАТЕЛЬ: N минус 1. 1183 00:49:32,700 --> 00:49:35,070 Значит, есть н минус 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 N представляет собой количество сравнений как функция от того, сколько элементов 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 и сделать п сравнений н раз, потому что каждый раз, когда мы 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 >> И каждый раз, когда мы сталкиваемся с помощью массив, мы делаем п сравнений. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Таким образом, наша среда для этого на самом деле н квадрат, который 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 пузырьковая сортировка может быть штраф, чтобы использовать. 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 >> СТУДЕНТ: N минус 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 Так н минус 1. 1222 00:51:22,990 --> 00:51:26,510 Всякий раз, когда у вас есть такое понятие, как п минус 1, мы, как правило, просто высадить его 1223 00:51:26,510 --> 00:51:31,680 и мы просто скажем, п, потому что вы есть сравнить каждый из these-- каждой пары. 1224 00:51:31,680 --> 00:51:36,470 Поэтому было бы н минус 1, который мы мы просто скажем, примерно н. 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 Так что в лучшем случае это п, означает, что список уже отсортирован, 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 Прохладный. 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 Так п квадрат. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Fun. 1239 00:52:05,120 --> 00:52:09,730 Гораздо хуже, чем п, как мы видим, и гораздо, гораздо хуже, чем журнала 2n. 1240 00:52:09,730 --> 00:52:12,060 И тогда вы также получаете в журналах журналов. 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 Так просто головы, есть это на Среднесрочный на хорошем шпаргалку 1250 00:52:36,090 --> 00:52:36,616 есть. 1251 00:52:36,616 --> 00:52:37,990 Таким образом, мы просто смотрели на пузырьковой сортировки. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 В худшем случае, п квадрат, лучший случай, п. 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 Это меняет его с той первой месте. 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 Удивительный. 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 что я думаю, что поможет, потому что Я думаю, что визуальные всегда помочь. 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 Мм-хм? 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 Так мы идем до конца, мы поменять его, так то мы смотрим на этот несортированным части. 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 Вы собираетесь перейти от я равна от 0 до н минус 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 >> Так минимальная равна я. 1340 00:55:59,600 --> 00:56:03,870 Это просто говорю в данном случае Индекс нашей минимального значения. 1341 00:56:03,870 --> 00:56:07,660 Итак, что это собирается перебора и она идет от J равна я плюс 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 Таким образом, мы начинаем сравнивать его с рядом один, который является, почему это я плюс 1 до п 1345 00:56:16,970 --> 00:56:20,110 минус 1, которое является конец массива там. 1346 00:56:20,110 --> 00:56:25,090 И мы сказали, что если массив на J является менее массива мин, 1347 00:56:25,090 --> 00:56:29,200 Затем мы переназначить где наши минимальные показатели является. 1348 00:56:29,200 --> 00:56:37,470 >> И если мин не равен I, как в котором мы уже были здесь. 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 Так мин не будет равна я, в конце концов. 1353 00:56:53,010 --> 00:56:55,720 Это позволяет нам знать, что мы должны поменять их местами. 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 маленький равна массива в 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 Так что это очень похоже на пузырьковой сортировки где мы знаем, что после одного прохода, 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 Так, установив наш маленький друг для массивов я, все, что он делает 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 один, который только собирается быть, я. 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 Это я. 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 к equals-- что мы думаем 1410 00:59:38,090 --> 00:59:39,700 К собирается равняться начать? 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 >> И мы хотим, чтобы к в этом случае мы уже размер хранятся здесь, 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 Прохладный. 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 Так что, если мы перебора, мы хочу сказать, если массив на к 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 >> Это означает, что, ну, мы перебора здесь. 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 к. 1441 01:01:09,130 --> 01:01:09,963 ПРЕПОДАВАТЕЛЬ: Array к. 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 Это просто к. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Так массива К, К, они совпадают. 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 Здесь мы нашли то, что наш маленький значение, так что мы просто поменять его. 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 >> ПРЕПОДАВАТЕЛЬ: Так одно дело заметить здесь является размер внутр. 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 Прохладный? 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 Прохладный. 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 Поэтому, прежде чем, что мы должны сделать, наш анализ выполнения здесь. 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 Но лучше всего дело времени выполнения, что мы думаем? 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 N в квадрате. 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 На каждой итерации, несмотря на то, мы уменьшая это один, 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 Таким образом, вы будете в конечном итоге работает через примерно н квадрате раз. 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 Также п квадрате, потому что вы собираетесь чтобы делать ту же самую процедуру. 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 это гарантированно запустить н квадрате время. 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 Прохладный. 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 >> Поэтому в основном для я это равна 0 до п минус 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 Мы ставим J, равную. 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 убедившись, что Ваше J действительно представляет 1623 01:09:17,479 --> 01:09:20,010 без сортировки часть массива. 1624 01:09:20,010 --> 01:09:30,745 >> Так, пока еще есть вещи, сортировать и J минус один 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 В любом случае. 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 является уменьшая. 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, в этом случае и Массив J минус одно-- так массив J минус 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 Прохладный? 1667 01:11:39,860 --> 01:11:46,620 Так я равен 2, так наш элемент равен 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 И наша J равна 2. 1670 01:11:52,270 --> 01:12:00,620 Таким образом, мы с нетерпением через и мы сказать, в порядке, это массив J минус один 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, так прямо здесь, мы поменять их местами. 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 И массив J только собирается быть равна нашего элемента, который был 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 >> Это двигаться в п. 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 И массив J минус 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 Прохладный. 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 И это только заботится свопов, чтобы сделать это. 1710 01:13:48,780 --> 01:13:51,300 Вы в основном просто поменяв пока это не в нужном месте. 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 >> Так что это как половина пузырьковой сортировки в стиле. 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 Дело в том, что во время выполнения, если это полностью Unsorted, 1726 01:14:38,760 --> 01:14:42,530 мы должны сравнить все эти п раз. 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 >> Так он оказался примерно н квадрат. 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 Так что это просто п. 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 Так что, если вы, ребята, знакомы с последовательностью Фибоначчи, 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 И все это делает, если х равно 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 Это имело смысл в подобном 3 утра однажды ночью. 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 Так на входе п элементов, если п меньше, чем 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 все в журнале п, гораздо лучше, чем мы 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 получить здесь п войти н, который является большим. 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 Это не обязательно происходит чтобы помочь вам с вашей PSET. 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 Так несколько дней будет немного больше PSET помощь, 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 Starbursts хороши. 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 Прочитайте спецификацию. 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 Удачи на PSET. 1885 01:21:40,090 --> 01:21:41,248