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 style50에 check50을 사용하십시오. 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에 1에 Pset에 2를 업로드하면 내가 일을 다운로드 할 때 때문에, 33 00:01:18,836 --> 00:01:20,085 그들은 제대로 다운로드되지 않습니다. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 그리고 나는 조금 남았습니다 알고 시스템에 익숙해, 36 00:01:24,560 --> 00:01:26,950 그러나 다만 슈퍼 영웅이 될 주의, 나만 경우, 37 00:01:26,950 --> 00:01:30,080 그래서 당신은 이메일을 때 추천 시부 나는 등급 해요. 38 00:01:30,080 --> 00:01:33,710 그렇지 않으면 것은 내가 볼 필요가 원인 모든 주위에 당신의 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 하지만 첫 번째 퀴즈는 10 월 15 일에 10 월에 이번 주에 시작합니다. 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 그래서 브레이크 아웃. 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 또는 다른 TF들 중 하나, 우리는 고정 된 사람들을 얻을 수 있습니다. 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 OK? 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 나는 전환하려고 시도 할거야 기기에서 파워 포인트 사이 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 그리고 우리는 네 겪고있어 버블 서로 다른 종류의, 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 그래서, 내가 언급 GD​​B 같은 디버거이다. 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 >> 마찬가지로, 당신은 어떤 외부가있는 경우 스왑 또는 큐브와 같은 기능을, 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 당신은 어떤 지점에서 인쇄 키를 말할 수 있습니다. 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 인쇄 키. 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 인쇄 키 또는 인쇄 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 그러나 우리는 추억 일에를 얻을 수 있습니다. 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 OK ,. 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 엥 종류의 일부입니다 그래서,이 선택을 취소 할 수 있습니다. 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 TI의 도트 플래시 있도록 당신이 거란 뜻 245 00:10:14,210 --> 00:10:19,240 CSI는 당신이 실행하는거야 실행 이 디버거를 파일. 246 00:10:19,240 --> 00:10:19,910 확인을 클릭합니다. 247 00:10:19,910 --> 00:10:22,885 그래서, 그에게, 당신은 어떻게해야합니까 횡설수설의이 종류. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 이 디버거에 대한 그냥 모든 일을합니다. 250 00:10:25,750 --> 00:10:28,200 당신은 정말 필요가 없습니다 지금 걱정. 251 00:10:28,200 --> 00:10:31,460 보시다시피, 우리는이가 열린 괄호, GDP, 가까운 괄호, 252 00:10:31,460 --> 00:10:34,690 그냥 가지처럼 보이는 우리의 명령 줄, 오른쪽? 253 00:10:34,690 --> 00:10:37,010 >> 그래서, 우리는하더라도 - 무엇을 할 --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 그것은 단지 잎 A. 변경되지 않습니다 혼자서는 올바른 모든 것들인가 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 당신이 주를 가지고 있지 않은 경우, 나는 수도 걱정 조금 지금 수, 271 00:11:29,230 --> 00:11:31,000 하지만 난 당신이 모두 거기에 홈페이지를 가지고 있기를 바랍니다. 272 00:11:31,000 --> 00:11:34,150 그래서, 우리가 할 수있는 것은 우리는 할 수있다 그냥 그렇게, 홈페이지를 휴식. 273 00:11:34,150 --> 00:11:35,190 그래서, 그것은 확인을 말한다. 274 00:11:35,190 --> 00:11:37,430 우리가 우리의 브레이크 포인트를 설정합니다. 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는이 동일하지 않은 경우. 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는 인 2 개인 우리는 권리를 기대했던? 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 그래서, 키는 일부 쓰레기 값이다 당신은이 바닥에서 볼 수있다. 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 인 I가 0에 해당위한 그것의, N은 동일 STRLEN, 일반 텍스트, 다음 335 00:14:32,030 --> 00:14:33,960 나는 N, I, 플러스, 플러스보다 작습니다. 336 00:14:33,960 --> 00:14:35,210 할 예정이 루프는 무엇입니까? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 당신의 메시지를 엽니 다. 339 00:14:39,160 --> 00:14:39,770 쿨. 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가 있다면, 그것은 일반 텍스트 I.의 우리의 우리의 지역 주민에 대한 정보를 얻을 수 있습니다. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 그래서, 제로, 그리고, 여섯 경우 어떤 우리는 기대하고, 우리의 핵심은 세 가지입니다. 345 00:14:57,970 --> 00:14:59,227 이해가 그 모든, 맞죠? 346 00:14:59,227 --> 00:15:01,310 그 숫자는 모두 정확하게 숫자. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 그래서, 콧노래? 349 00:15:03,870 --> 00:15:05,620 스피커 3 : 내가 가지고있는 광산 임의의 숫자. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 스피커 1 : 글쎄, 우리가 --we을 check-- 수 있습니다 두 번째에서 그것에 대해 대화를 나눌 수 있습니다. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 그러나이 점점해야합니다. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 그래서, 우리는 자본이있는 경우 우리의 첫 번째에 대한 B, 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 여기이 선 여기서 일반 텍스트 I 이 연산으로 대체됩니다, 360 00:15:33,460 --> 00:15:35,720 만하면 경우에 실행 가 정확한 권리인가? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB는 당신을 보여줄 것입니다 실제로 실행되고있는 것. 363 00:15:40,240 --> 00:15:45,140 이 경우 조건이 충족되지 않은 경우 그래서, 그것은이다 바로 다음 행으로 건너 것. 364 00:15:45,140 --> 00:15:46,540 OK? 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 그것이 변경되어야 A.있어 앞으로 세 글자. 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 우리는 그냥 건너 뛴 것을 가지고, 그리고 [갔다? 패 시프. ?] 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 또한 그것이 무엇인지 라인 잊지 한테 들었 냐 것 저기에 있지만 [들림]에 있습니다. 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 >> 그래서, 우리는 우리 파워 포인트로 이동합니다. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 이 작동하는거야? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 AWH. 454 00:19:30,210 --> 00:19:31,101 예. 455 00:19:31,101 --> 00:19:31,600 확인을 클릭합니다. 456 00:19:31,600 --> 00:19:35,480 그래서, 당신은 중 하나를 필요로하는 경우 그 다시 목록이있다. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 그래서 이진 검색, 어떤 사람 다윗의 위대한 광경을 기억 459 00:19:40,830 --> 00:19:42,259 반 전화 번호부를 리핑. 460 00:19:42,259 --> 00:19:44,050 정말 얻​​을하지 않습니다 더 이상 전화 번호부, 461 00:19:44,050 --> 00:19:46,530 당신을 어디에 좋아하기 때문에 요즘 전화 번호부를 얻을 수? 462 00:19:46,530 --> 00:19:48,220 난 정말 모르겠어요. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 이진 검색. 465 00:19:50,590 --> 00:19:52,464 기억하는 사람이 어떻게 이진 검색 작품? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 누구나 모든? 468 00:19:55,220 --> 00:19:56,325 그래? 469 00:19:56,325 --> 00:19:58,283 스피커 5 : 당신은 때를 알기 당신은 절반보고 470 00:19:58,283 --> 00:20:01,146 그것은 그 바탕으로,에있을 것입니다, 나머지 절반 없애. 471 00:20:01,146 --> 00:20:01,896 >> 스피커 1 정확히. 472 00:20:01,896 --> 00:20:06,290 그래서, 이진 검색, 그것의 치아는 종류의 --we는 분할과 정복 전화를 좋아한다. 473 00:20:06,290 --> 00:20:09,170 그래서, 당신은 무엇을 할 거 야입니다 당신은 중간에 볼 것이다 474 00:20:09,170 --> 00:20:11,990 일치하는 경우 당신은 볼 것이다 당신은 무엇을 찾고 있습니다. 475 00:20:11,990 --> 00:20:15,420 그렇지 않은 경우에, 당신은에 시도 알아, 그것은 남아있을 것입니다 476 00:20:15,420 --> 00:20:16,450 반 또는 오른쪽 절반. 477 00:20:16,450 --> 00:20:19,325 당신이 찾고 있다면 그래서,이 될 수 있습니다 알파벳순으로 뭔가에, 478 00:20:19,325 --> 00:20:20,720 당신은 오, 참조하십시오. 479 00:20:20,720 --> 00:20:22,750 앨리슨 M 앞에 와야합니까? 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 당신은 OK, 같은거야. 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 당신이 알아서 이겨낼을 찾기 위해 노력하고 건초 더미에서 바늘을 찾기 위해 노력. 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 그래서보다 덜입니다 , 7보다 큰? 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 나는 내가해야 같은 느낌 사탕을하기 때문에이 I 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는 ... --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 그것은 단지, 세 번처럼 우리를 데려 갔다 하지만 10 억과 같은 일을하는 경우, 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 단계 40 억 (4 billion) 564 00:23:37,110 --> 00:23:39,650 때문에 두 힘의 요소는 배열입니다. 565 00:23:39,650 --> 00:23:43,550 그래서 두 사람은 32에 4 개의 억입니다. 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 OK? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 우와. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 나는 당신들 원하는 건 당신이있어입니다 그냥이 동안 케이스를 기입 것. 583 00:24:29,520 --> 00:24:32,170 그래서 나는이 상을 설정 한 낮은 경계하는 584 00:24:32,170 --> 00:24:35,250 시작을 나타냅니다 우리의 배열과 끝. 585 00:24:35,250 --> 00:24:40,440 그리고 당신은 실제로 건가요 루프를 통해 파악 586 00:24:40,440 --> 00:24:42,470 우리는이 while 루프 내에서 일을하고 있습니다. 587 00:24:42,470 --> 00:24:45,810 >> 당신이 병원을 나온 파악할 수 그래서 만약 내가 가진 경우이 무엇인지 저기 힌트 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 이상 N? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 강사 : 그래서 n은 2 이상. 615 00:25:59,500 --> 00:26:05,170 그래서 기억해야 할 한 가지가 있다는 것입니다 당신의 상한과 하한이 변경됩니다. 616 00:26:05,170 --> 00:26:08,110 우리는 부분을 죄기 계속 배열의 우리에 찾고 있습니다. 617 00:26:08,110 --> 00:26:11,970 그래서 n은 2 이상에만 작동합니다 가장 먼저하는 일을 위해 우리가 할. 618 00:26:11,970 --> 00:26:17,810 그래서 고려 상하 복용 우리는 어떻게 그 중간 요소를 얻을 수 있는가? 619 00:26:17,810 --> 00:26:20,640 우리는 중간을 원하기 때문에 상단과 하단, 우측 사이? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 으흠? 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 드롭 박스는 멀리 가야한다. 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 그래서 여기에 부울이며, 우리 때문에 true 또는 false를 반환하고 싶습니다. 691 00:29:08,220 --> 00:29:12,280 우리는이 숫자가, 말을하는지 [? RRA? ?] 그것이 그렇다면, 692 00:29:12,280 --> 00:29:13,788 우리는 단지 사실 반환합니다. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 나는 사실 철자 수 있습니다. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> 학생 : 왜 당신은 0을 반환하지 않을까요? 697 00:29:20,805 --> 00:29:22,930 강사 : 당신이 수 있도록 당신이 원하는 경우 0을 반환. 698 00:29:22,930 --> 00:29:26,780 그러나이 경우 때문에에 우리의 함수는 BOOL을 반환 699 00:29:26,780 --> 00:29:28,962 우리는 참 또는 거짓 반환해야합니다. 700 00:29:28,962 --> 00:29:30,920 학생 : 때 당신이있어 부울 식을 말 701 00:29:30,920 --> 00:29:33,450 당신은 거짓과 동일하게 설정 할 수 있습니까? 702 00:29:33,450 --> 00:29:39,860 내가 말하고 싶은 경우에, 만약이 조건처럼 상단 거짓 같다처럼, 충족되지. 703 00:29:39,860 --> 00:29:42,332 그냥 경우는 이해할 수 다른 측면에서 거짓 넣어? 704 00:29:42,332 --> 00:29:43,040 강사 : 네. 705 00:29:43,040 --> 00:29:44,820 그래서 실제로 당신이 있다면 지금까지 일을 706 00:29:44,820 --> 00:29:49,600 같은 상부 또는 낮은, 즉 true 또는 false를 반환 707 00:29:49,600 --> 00:29:53,850 그리고 실제로 나쁜 스타일이다 말은 동일 true 또는 등호와 동일 708 00:29:53,850 --> 00:29:54,840 거짓과 같습니다. 709 00:29:54,840 --> 00:30:00,210 당신은 그 결과를 사용하려면 수표로 자체. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 내가 원하지 않는 것을. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 그게 내가 원하는거야. 714 00:30:09,240 --> 00:30:13,205 요구하고 당신의 경우에 따라서 뭔가에 대해 같은 C이 저장합니다. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> 그래서 우리는 INT 주 (무효)가있는 경우 이 같은. 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 그건 ... 만약 때문에 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 강사 : 신난다. 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 >> 그래서 지금 우리는 우리의 마지막 조건이 안전을 위해하는 항상 I 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 >> 학생 : 그것은 중요합니까 당신의 n은 짝수 또는 홀수 여부? 810 00:34:09,840 --> 00:34:10,750 >> 강사 : 호 811 00:34:10,750 --> 00:34:18,150 우리는 다음과 같이 중간에 캐스팅 때문에 INT, 그냥 그것을 자릅니다. 812 00:34:18,150 --> 00:34:21,600 이 정수를 유지하고 있도록 그것은 것 결국 모든 것을 통해 정렬 할 수 있습니다. 813 00:34:21,600 --> 00:34:23,909 그래서 당신은 그것에 대해 걱정할 필요가 없습니다. 814 00:34:23,909 --> 00:34:24,580 모두 좋은? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 신난다. 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 우리의 최악의 경우는 로그 N입니다. 841 00:35:21,270 --> 00:35:25,360 그리고 그 전체를 함께 할 수있다 내가 이야기 두 가지의 힘. 842 00:35:25,360 --> 00:35:30,930 >> 그래서 최악의 경우는 뜻 우리는 아래로 배열을 절단해야했다 843 00:35:30,930 --> 00:35:33,270 그것은 하나의 요소가 될 때까지. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 그래서 우리는 반으로 자르게했다 우리가 가능성이있을만큼. 846 00:35:38,930 --> 00:35:41,430 이 로그 N 때문에 이유입니다 당신은 두 가지로 나누어 보관합니다. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 그래서 가정, 이것은 당신에게 혹시 있다면 알 필요가 849 00:35:45,830 --> 00:35:48,050 이진 검색을 사용하려고합니다. 850 00:35:48,050 --> 00:35:50,680 귀하의 요소를 정렬해야합니다. 851 00:35:50,680 --> 00:35:53,890 그들은 때문에 정렬 할 수있다 그 유일한 방법이다 852 00:35:53,890 --> 00:35:57,060 만약 수 있는지 알 수 그것의 절반을 던져. 853 00:35:57,060 --> 00:36:00,260 >> 이 뒤죽박죽 가방이 있다면 숫자의 당신은, 말을하는지 854 00:36:00,260 --> 00:36:05,380 좋아, 내가 중간을 확인하는거야 수와 내가 찾고 수 855 00:36:05,380 --> 00:36:08,510 보다 작은, 난 그냥 갈거야 임의의 절반을 던져. 856 00:36:08,510 --> 00:36:11,130 당신이 알고하지 않을 당신의 다른 반 번호. 857 00:36:11,130 --> 00:36:12,655 귀하의 목록에 정렬​​ 할 수 있습니다. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 뿐만 아니라,이있을 수 있습니다 앞서 조금 것, 860 00:36:16,560 --> 00:36:18,360 하지만 당신은 랜덤 액세스가 필요합니다. 861 00:36:18,360 --> 00:36:21,940 당신은 할 수 있어야합니다 단지 그 중간 요소로 이동합니다. 862 00:36:21,940 --> 00:36:25,110 당신이 통과해야하는 경우 뭔가를 통해 863 00:36:25,110 --> 00:36:28,630 또는 당신 추가 단계를 수행 그 중간 요소에 도착, 864 00:36:28,630 --> 00:36:31,750 이 로그 N 때문에 더 이상 아니에요 당신은 그것으로 더 많은 작업을 추가하는 것입니다. 865 00:36:31,750 --> 00:36:34,800 그리고 이것은 조금 것 2 주 더 의미, 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 정말 효과 종류, 좋아하는 어떤 I 보기 엔 당신이 보는 것 좋습니다. 878 00:37:11,530 --> 00:37:16,170 그 중 하나는 공황 종류, 같은 거 같은, 오 아니, 임의의 배열을 반환합니다. 879 00:37:16,170 --> 00:37:16,991 종료 시스템. 880 00:37:16,991 --> 00:37:17,490 둡니다. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 그래서 엽기 유머는 항상 좋다. 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 우리는 그들을 교환 우리는 우리를 증가 카운터, 우리가 교환하는 즉시 때문에 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 학생 : 당신은 카운터를 0으로 설정 마십시오 당신이 루프를 통해 갈 때마다? 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 >> 그럼이 상태를 확인하고 OK, 0보다 카운터 큰 말했다. 975 00:41:07,150 --> 00:41:09,290 이 경우, 다시 그것을 할. 976 00:41:09,290 --> 00:41:14,340 당신은 너무 때를 그 재설정 할 통과, 카운터가 0과 같다. 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 강사 : OK. 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 우리는 내가 덜되고 싶어 N 1을 뺀 마이너스 K보다. 1006 00:42:22,454 --> 00:42:23,870 그리고 두 번째의 것을 설명 할 것이다. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 그래서이 최적화는 여기이고, 나는 모든 패스를 말했다 어떻게 기억 1009 00:42:32,830 --> 00:42:36,655 배열 우리를 통해 어떤 입어 -의 알고 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 OK? 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 이 4 개의 루프로 그것은이다 단지 좋은 최적화 1023 00:43:12,470 --> 00:43:18,460 우리는 그 모든 전체, 후 알고 있기 때문에 여기에 배열을 통해 반복, 1024 00:43:18,460 --> 00:43:24,050 여기에 모든 전체 루프처럼, 우리는 알고있다 이들 요소들 중 하나 이상의 것을 1025 00:43:24,050 --> 00:43:25,760 마지막에 정렬됩니다. 1026 00:43:25,760 --> 00:43:28,294 >> 그래서 우리는 사람들에 대해 걱정할 필요가 없습니다. 1027 00:43:28,294 --> 00:43:29,710 즉 모든 사람에게 의미가 있습니까? 1028 00:43:29,710 --> 00:43:30,950 그 멋진 작은 트릭? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 이 경우에, 만일 그렇다면 우리는을 반복하고 1031 00:43:37,270 --> 00:43:50,590 우리는 우리가 있는지 확인하고자하는 것을 알고 배열 N 및 N 플러스 1은 순서에 있습니다. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 확인을 클릭합니다. 1034 00:43:53,559 --> 00:43:54,600 그래서 여기에 의사입니다. 1035 00:43:54,600 --> 00:43:57,540 우리는 있는지 확인하려면 배열 N n은 1을 더한 순서에 있습니다. 1036 00:43:57,540 --> 00:43:59,520 그래서 우리가 무엇을해야 할 수도 있습니다? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 그것은 몇 가지 조건이 될거야. 1039 00:44:03,120 --> 00:44:04,220 이 경우 될 것입니다. 1040 00:44:04,220 --> 00:44:07,066 >> 학생 : 배열 N 인 경우 배열 N 플러스 1 이하. 1041 00:44:07,066 --> 00:44:07,816 강사 : 그래 그래. 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 우리가 말했다 경우는 B를 B와 동일합니다 같은지, 둘 갑자기 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 그래서 우리가 가지고있는 것은 우리가 어떤 지능 것입니다 당신이 그것을 할당 할 수 있습니다 난 ... 온도는 동일 1061 00:44:56,464 --> 00:44:59,130 둘 중 하나에 당신은, 원하는 당신 졌어요 추적 있는지 계속 확인하십시오 1062 00:44:59,130 --> 00:45:01,840 이 경우, 내가 갈거야 배열 N 플러스 1에 할당합니다. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 그래서 개최 할 예정 무엇 이건간에 값은 그 두 번째 블록에 1065 00:45:07,674 --> 00:45:08,590 우리가보고있는 그. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> 그리고 우리가 갈 수있는 우리가 할 수있는 것입니다 앞서 및 재 할당 배열 N 플러스 1, 1068 00:45:13,240 --> 00:45:14,990 우리는 우리를 알고 있기 때문에 저장된 값을 가지고있다. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 이는 또한 큰 중 하나이다 당신의 경우 계속 물건 모르겠어요 1071 00:45:19,270 --> 00:45:23,780 두을 전환하면 문제가 있었다 코드 라인은 갑자기 일이했다. 1072 00:45:23,780 --> 00:45:25,880 주문 CS에서 매우 중요하다. 1073 00:45:25,880 --> 00:45:29,450 그래서 당신이 다이어그램 만들기 일 밖으로 가능한 경우 1074 00:45:29,450 --> 00:45:31,230 에 대해 어떤 일이 실제로 일어나고. 1075 00:45:31,230 --> 00:45:34,256 그래서 지금 우리가가는거야 배열 N 플러스 1을 재 할당 1076 00:45:34,256 --> 00:45:36,005 우리는 우리를 알고 있기 때문에 저장된 값을 가지고있다. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> 그리고 우리는 배열이 할당 할 수 있습니다 n 또는이 경우 배열 I에서. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 너무 많은 변수. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 확인을 클릭합니다. 1083 00:45:55,470 --> 00:46:01,500 그래서 지금 우리가 재 할당 한 배열 나에게 더하기 1은 배열 I에 무엇이 동일합니다. 1084 00:46:01,500 --> 00:46:08,240 그리고 지금 우리가 갈 수 있으며, 무엇에 배열 I를 할당? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 누구? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> 학생 : (10). 1089 00:46:14,010 --> 00:46:14,680 >> 강사 : 10. 1090 00:46:14,680 --> 00:46:15,180 정확히. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 그리고 마지막으로 하나. 1093 00:46:18,640 --> 00:46:21,840 우리는 지금을 교환 한 경우, 우리는 무엇을 어떻게해야합니까? 1094 00:46:21,840 --> 00:46:23,740 한 가지는 무엇인가 즉 우리에게 것 1095 00:46:23,740 --> 00:46:27,542 우리는 지금까지이 프로그램을 종료하면? 1096 00:46:27,542 --> 00:46:29,250 우리 것을 우리에게 알려줍니다 정렬 된 목록을 가지고? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 우리가 어떤 스왑을 수행하지 않는 경우, 맞죠? 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 0 대신 또는 하나를 사용 의 참 또는 거짓. 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 스왑 0 인 경우에 따라서 이는 항상 내가 핵폭탄 낙하 얻을 나의 진리 내 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 >> 진실과 거짓과 0과 1은 미친 얻을. 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 위로 파워 포인트. 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 그래서이 의미 N 마이너스 1 비교. 1184 00:49:35,070 --> 00:49:40,060 그래서 실현하기 위해 한 가지입니다 첫 번째 반복에 그, 1185 00:49:40,060 --> 00:49:43,360 우리는, 우리가 비교를 통해 이동 이 둘 -은 그래서는 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 언제 런타임 및 N에 대해서 이야기하고. 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 OK? 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 우리는 그 최적화를하지 않은 경우 내가 쓴 4 개의 루프와, 1197 00:50:20,050 --> 00:50:22,750 당신은 어쨌든 여기에 비교 될 것이다. 1198 00:50:22,750 --> 00:50:26,170 그래서 당신은해야 할 것입니다 배열을 통해 실행 1199 00:50:26,170 --> 00:50:34,380 N 개의 비교를 N 회마다 우리 때문에 1200 00:50:34,380 --> 00:50:36,670 이 종류의 한 가지 우리를 통해 실행합니다. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> 그리고 우리를 통해 실행할 때마다 배열, 우리는 N 비교를합니다. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 그래서 이것에 대한 우리의 런타임입니다 실제로 N 제곱하는 1205 00:50:46,330 --> 00:50:48,400 훨씬 더 우리의 그 때문에 끝을 로그 1206 00:50:48,400 --> 00:50:51,965 우리는 네 있었다 의미하는 경우 억 요소, 그것을이다 1207 00:50:51,965 --> 00:50:55,260 우리 네 억 걸릴 것 대신 32의 제곱. 1208 00:50:55,260 --> 00:51:01,240 그래서 최고는 런타임, 하지만 몇 가지에 대해, 1209 00:51:01,240 --> 00:51:04,610 당신이 내 있다면 당신은 알고있다 소자의 일정 범위 1210 00:51:04,610 --> 00:51:06,540 거품 정렬 사용이 잘 될 수 있습니다. 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 >> 강사 : 그래서 하나는 것 하나의 비교합니다. 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 그래서 N 마이너스 1. 1222 00:51:22,990 --> 00:51:26,510 당신은 N과 같은 개념을 보낼 때마다 마이너스 1, 우리는 단지 그것을 내려하는 경향이 1223 00:51:26,510 --> 00:51:31,680 당신이 있기 때문에 우리는 단지 N 말 이거 갖다 각 쌍의 각을 비교. 1224 00:51:31,680 --> 00:51:36,470 그래서, 1 N 수를 뺀 것이다 우리 우리는 약 n은 말할 것입니다. 1225 00:51:36,470 --> 00:51:39,280 런타임을 다룰 때, 모든 가까운 것입니다. 1226 00:51:39,280 --> 00:51:43,860 만큼 지수 그대로 정확한, 당신은 꽤 좋은 것입니다. 1227 00:51:43,860 --> 00:51:45,700 >> 우리가 다루는 방법 때문입니다. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 최상의 경우는 N,되도록하는 목록이 이미 정렬되어 있다는 것을 의미 1230 00:51:51,780 --> 00:51:54,320 우리가하는 모든 일을 통해 실행 그것은 소팅 있는지 확인합니다. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 쿨. 1233 00:51:56,855 --> 00:51:57,355 좋아. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 당신이 여기에서 보는 바와 같이 그래서 우리 좀 더 그래프가있다. 1236 00:52:01,920 --> 00:52:02,660 그래서 N 제곱. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 재미. 1239 00:52:05,120 --> 00:52:09,730 많은 우리가 보는 바와 같이 n보다 더, 그리고 로그 2N보다 훨씬 더 많이. 1240 00:52:09,730 --> 00:52:12,060 그리고 당신은 또한 로그 로그에 들어갈. 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 최악의 경우, N, N을 최상의 경우 제곱. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 그리고 우리는 다른 사람을 보는 것입니다. 1256 00:52:44,950 --> 00:52:47,940 >> 그리고 당신은, 단지를 볼 수 있습니다 정말 잘 수행 하나 1257 00:52:47,940 --> 00:52:50,910 우리가 왜에 얻을 것이다 병합 정렬입니다. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 그래서 우리는에 갈거야 다음 중 하나와 ... 선택 정렬. 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 당신이 생각할 수있는 방법 IT 및 방법에 대한 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 그러니 방법 졌어요 선택 생각 종류, 가장 작은 값을 선택합니다. 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 그리고 우리는 OK, 2 인, 말 우리의 작은 수입니다. 1291 00:54:12,320 --> 00:54:15,680 그래서 우리는이 걸릴거야 그리고 우리는거야 우리의 배열의 전면으로 이동 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 당신은 비교하고 OK,이 작은 말? 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 당신은 갈거야 난에 N 마이너스 2 0 같습니다. 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은 n으로 왜 하나는이다 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 >> 그리고 만약 분, 나는 동일하지 않은 여기서 우리는 다시 여기에 있었다. 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를해야 할 것 작은 난에서 배열과 동일하다. 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의 k에 대한 그래서 우리가 어떻게 생각하십니까 equals-- 1410 00:59:38,090 --> 00:59:39,700 K로 시작 동일한 것입니다? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 이것은 우리가 우리의 작은으로 설정 무엇인가 가치와 우리는 그것을 비교하고 싶습니다. 1413 00:59:44,766 --> 00:59:47,090 우리는에 비교 무엇을 원하는가? 1414 00:59:47,090 --> 00:59:48,730 그것은 바로,이 다음 중 하나가 될 것? 1415 00:59:48,730 --> 00:59:53,200 그래서 우리는 초기화 케이 원하는 에에게 나는 플러스 1을 시작합니다. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> 그리고 우리는이 경우 k는 원하는 우리 이미 크기가 여기에 저장되어, 1418 01:00:02,800 --> 01:00:03,930 그래서 우리는 단지 크기를 사용할 수 있습니다. 1419 01:00:03,930 --> 01:00:06,240 크기 어레이의 크기 인. 1420 01:00:06,240 --> 01:00:09,620 그리고 우리는 원하는 한마다로 K를 업데이트합니다. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 쿨. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 그래서 지금 우리는 찾을 필요 여기에 가장 작은 요소입니다. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 그래서 우리는 반복을 통해, 우리 , 말하고 싶은 경우 k에 배열 1427 01:00:31,380 --> 01:00:37,080 우리의 작은 value-- 미만 우리가 실제로있어 곳이다 1428 01:00:37,080 --> 01:00:42,950 무엇을 추적 작은 매우 ... 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 학생 : 배열 K. 1441 01:01:09,130 --> 01:01:09,963 강사 : 배열 K. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 그리고 위치는 지금 무엇인가? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 의 인덱스 무엇입니까 우리의 작은 값? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 그냥 삼진. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 배열 K, K 그래서, 그들은 일치. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 그래서 우리는 다시 할당하고 싶었다. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 그리고 우리는, 우리의 작은 발견 후 후 이 루프의 끝에 그렇게 1454 01:01:39,950 --> 01:01:45,100 여기에 우리가 발견 한 내용을 우리의 작은 값은, 그래서 우리는 그냥 교환합니다. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 이 경우, 같은 우리 말 가장 작은 값은 여기입니다. 1457 01:01:50,816 --> 01:01:51,940 이것은 우리의 가장 작은 값입니다. 1458 01:01:51,940 --> 01:01:57,690 >> 우리는 단지이다, 여기를 교환 할 무엇을 바닥에 그 스왑 기능 1459 01:01:57,690 --> 01:02:01,270 우리가 그냥 쓴, 한 함께 몇 분 전. 1460 01:02:01,270 --> 01:02:02,775 그래서 익숙 할 것이다. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 그리고 그것은 단지 반복합니다 통한 모든 방법으로 도달 할 때까지 1463 01:02:08,030 --> 01:02:13,100 당신을 의미 말에 분류되지 않은 있습니다 제로 요소가 1464 01:02:13,100 --> 01:02:14,800 그리고 다른 모든 정렬되었습니다. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 이해가? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 보다 구체적으로 작은? 1469 01:02:19,280 --> 01:02:19,990 코드 도움? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> 학생 : 크기를 들어, 결코 정말 정의하거나 변경, 1472 01:02:26,410 --> 01:02:27,340 어떻게 알 수 있습니까? 1473 01:02:27,340 --> 01:02:32,380 >> 강사 : 그래서 한 가지에 INT 크기가 여기에 알 수 있습니다. 1474 01:02:32,380 --> 01:02:35,680 그래서 우리는이 sort-- 종류에 말을하는지 인이의 기능은 그것의 case-- 1475 01:02:35,680 --> 01:02:40,770 선택 정렬, 그것을 통과 것 기능에. 1476 01:02:40,770 --> 01:02:43,460 이 통과되지 않은 경우 그래서 에에게, 당신이 뭔가를 할 것입니다 1477 01:02:43,460 --> 01:02:47,840 어레이의 길이 등에 또는 당신은을 통해 반복 할 것 1478 01:02:47,840 --> 01:02:49,390 길이를 찾을 수 있습니다. 1479 01:02:49,390 --> 01:02:52,680 그러나 전달 있기 때문에 에, 우리는 그것을 사용할 수 있습니다. 1480 01:02:52,680 --> 01:02:55,720 당신은 사용자가 있다고 가정 당신에게 유효한 크기를 준 1481 01:02:55,720 --> 01:02:57,698 실제로 나타냅니다 배열의 크기. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 쿨? 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 테이블에 이미 I 종류의 포기 했어. 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 >> 학생 : 당신가 ... 비교하고 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 그래서 통해 실행 될 겁니다 약 n 번 제곱. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 좋아. 1531 01:04:51,590 --> 01:04:52,785 그리고 최악의 경우는 무엇인가? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 당신이려고하고 있기 때문에 N 제곱 같은 절차를 수행합니다. 1534 01:04:57,980 --> 01:05:01,670 이 경우, 선택 그래서 일종의 뭔가가 1535 01:05:01,670 --> 01:05:04,010 우리는 또한 예상 런타임 부르는. 1536 01:05:04,010 --> 01:05:07,400 그래서 다른 사람에, 우리는 알고있다 상부 및 하부의 경계. 1537 01:05:07,400 --> 01:05:11,180 얼마나 미친에 따라 우리의 리스트 또는 정렬되지 않은 방법이있다, 1538 01:05:11,180 --> 01:05:15,350 그들은 N 또는 n 제곱 다릅니다. 1539 01:05:15,350 --> 01:05:16,550 우리는 모른다. 1540 01:05:16,550 --> 01:05:22,820 >> 그러나 선택 정렬 동일한 있기 때문에 최악과 최선의 경우, 그 것을 우리에게 알려줍니다 1541 01:05:22,820 --> 01:05:25,880 입력의 종류에 관계없이 우리 완전히 여부,이 1542 01:05:25,880 --> 01:05:29,130 분류 또는 완전히 그것의 분류, 역 1543 01:05:29,130 --> 01:05:30,740 동일한 시간이 걸릴 것. 1544 01:05:30,740 --> 01:05:33,760 경우에 따라서, 당신의 경우 우리의 테이블에서 기억, 1545 01:05:33,760 --> 01:05:38,610 실제로 값을 가지고 그 이 두 종류는 없습니다 1546 01:05:38,610 --> 01:05:40,390 이는 예상 런타임입니다. 1547 01:05:40,390 --> 01:05:43,350 그래서 우리는 알고 때마다 그 우리는 선택 정렬을 실행, 1548 01:05:43,350 --> 01:05:45,380 그것은으로 보장된다 N 제곱 시간을 실행합니다. 1549 01:05:45,380 --> 01:05:46,630 아무 변화가 없습니다. 1550 01:05:46,630 --> 01:05:47,630 그것은 단지 예정입니다. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 그리고, 다시, 당신은 배우고 싶다면 더, 봄에 CS 124을. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 좋아. 1555 01:05:56,712 --> 01:05:57,545 우리는이 하나를 보았다. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 쿨. 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 우리는 OK, 당신이, 말 지금 혼자서 목록에서. 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 OK, 우리는 보는거야 우리의 정렬되지 않은 배열의 첫 번째 값 1581 01:07:08,890 --> 01:07:13,270 우리는에 입력을거야 그 정렬 된 배열에서 올바른 위치. 1582 01:07:13,270 --> 01:07:21,460 >> 그래서 우리는 5 걸릴 우리가 무엇을 우리가, 5가 3보다 큰, OK, 말 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 그리고 우리는이 걸릴. 1588 01:07:29,720 --> 01:07:34,330 우리는 OK, 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 OK, 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 >> 그래서 기본적으로 내가 때문이다 N 마이너스 1에 0이, 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 하나를 뺀 무엇 핵폭탄 낙하하는 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 당신은 OK, 요소, 말을하는지 나는의하자 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 마이너스 1 보이면 배열 J 마이너스 1652 01:10:49,850 --> 01:10:54,610 그건 경우이 case--에 2 요소보다 큰 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 이 경우, 실제로, 우리 하더라도 - 수의이 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 그래서 우리는 우리과를 통해 보면 OK, 배열 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 그래서 우리는 OK, 배열, 말 2에서 지금은 3가 될 것입니다. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 그리고 J는 동일 할 것입니다 1 J 마이너스 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 내가 뭔가를 삭제 내가하지 말아야 이 있거나 잘못 적었다 무엇인가, 1685 01:12:48,570 --> 01:12:49,910 하지만 너희들은 아이디어를 얻을. 1686 01:12:49,910 --> 01:12:50,640 >> 그것은 N에서 이동합니다. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 이 있었다 다음 경우에, 그것은 루프 것 다시는 OK, 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 그리고 우리는이 걸릴 수 있으며 우리는 말, OK, 우리의 정렬 된 배열은 여기에있다. 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 당신은 사람 나는 이미 표에서 보듯 그것은 제곱 N 것 모두 N, 당신을 보여 주었다. 1724 01:14:30,700 --> 01:14:35,590 >> 그래서 종류의 우리가 이야기 무엇을하러 갈 우리의 이전 종류의 약, 최악의 1725 01:14:35,590 --> 01:14:38,760 경우 런타임 인​​ 경우 그 그것은 완전히 정렬되지 않은 것, 1726 01:14:38,760 --> 01:14:42,530 우리는이 N 배의 모든 비교해야합니다. 1727 01:14:42,530 --> 01:14:47,020 우리는 비교의 전체 많이 할 이 역순으로인지하기 때문에, 1728 01:14:47,020 --> 01:14:50,360 우리는 OK,이 말을 겁니다 이 좋은, 동일 1729 01:14:50,360 --> 01:14:54,650 이 하나 비교하는 것 첫 번째에 대해 다시 이동합니다. 1730 01:14:54,650 --> 01:14:56,710 그리고 우리를 향해 얻을로 꼬리 끝, 우리가 1731 01:14:56,710 --> 01:14:59,440 비교 비교하고 모든 비교할. 1732 01:14:59,440 --> 01:15:03,030 >> 그래서이되는 끝 약 N 제곱. 1733 01:15:03,030 --> 01:15:09,510 그것은 다음 맞습니다 경우 당신은 좋은 것, 2, 확인을 말한다. 1734 01:15:09,510 --> 01:15:11,330 도 3에는 2와 비교하는. 1735 01:15:11,330 --> 01:15:12,310 당신은 좋은 것입니다. 1736 01:15:12,310 --> 01:15:14,150 4, 당신은 꼬리에 비교합니다. 1737 01:15:14,150 --> 01:15:14,990 당신은 좋은 것입니다. 1738 01:15:14,990 --> 01:15:17,140 6, 당신은 괜찮아요, 꼬리에 비교합니다. 1739 01:15:17,140 --> 01:15:20,870 그래서 모든 자리는 이미 경우 분류, 당신은 하나의 비교를하고 있어요. 1740 01:15:20,870 --> 01:15:22,320 그래서 그냥 N입니다. 1741 01:15:22,320 --> 01:15:26,840 그리고 우리는 최상의 경우 런타임을 가지고 있기 때문에 n 및 n 인 최악의 경우의 런타임 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 >> 그리고, 사실, 정말 빨리 I 그 모습을 보여줄 수 있습니다. 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 그래서 모든 우리가 할 것입니다 우리는 sum 함수를 1771 01:16:47,880 --> 01:16:52,210 크기와 배열을 취하는 합. 1772 01:16:52,210 --> 01:16:55,210 그리고 당신이 나는 경우, 크기 한마다로 감소. 1773 01:16:55,210 --> 01:17:00,365 그리고이하는 모든 x가 동일한 경우이다 zero-- 그렇다면 배열의 크기 1774 01:17:00,365 --> 01:17:02,710 그것은 0을 반환 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 n 개의 요소의 입력에 따라서, n이 2 미만이면, 1793 01:17:53,800 --> 01:17:58,120 그냥 의미하기 때문에 반환 우리가 보았 듯이 0 또는 1 중 하나입니다. 1794 01:17:58,120 --> 01:18:00,050 사람들은 정렬 된 요소로 간주됩니다. 1795 01:18:00,050 --> 01:18:02,170 >> 그렇지 않으면 반으로 휴식. 1796 01:18:02,170 --> 01:18:06,336 두 번째 정렬 상반기 정렬 반하고 그들을 함께 병합합니다. 1797 01:18:06,336 --> 01:18:07,460 왜이 병합 종류라고. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 우리는이를 정렬 할 것이다 그래서 우리는 여기에있다. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 그래서 우리는 그들을 가진 유지 배열 크기가 1이 될 때까지. 1802 01:18:17,210 --> 01:18:20,790 이 일을 그래서 때, 우리는 단지 반환 이 정렬 된 배열이기 때문에, 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, 및 일이있다. 1810 01:18:44,290 --> 01:18:47,280 우리는이를 병합 할 때, 우리는 이러한 처음 두 볼 1811 01:18:47,280 --> 01:18:50,730 우리는 1 작, OK, 말, 그것은 앞으로 간다. 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 그리고 지금 우리는을 이 두, 그래서이 작은. 1816 01:19:01,690 --> 01:19:03,330 이 두, 3의 작은. 1817 01:19:03,330 --> 01:19:06,260 이러한 두, 4, 5, 6 이하이다. 1818 01:19:06,260 --> 01:19:08,630 그래서 그냥이를 당겨하고 있습니다. 1819 01:19:08,630 --> 01:19:11,210 그리고 그들은했습니다 때문에 이전에 분류 된, 1820 01:19:11,210 --> 01:19:14,300 당신은 단지 하나가 비교가마다. 1821 01:19:14,300 --> 01:19:19,610 여기에 그래서 더 많은 코드, 단지 표현입니다. 1822 01:19:19,610 --> 01:19:24,410 그래서 만약 당신이 중간에서 시작 당신 종류의 왼쪽과 오른쪽 1823 01:19:24,410 --> 01:19:26,180 다음은 그 병합합니다. 1824 01:19:26,180 --> 01:19:30,080 >> 그리고 우리는 코드가없는 바로 여기에 병합합니다. 1825 01:19:30,080 --> 01:19:34,110 그러나, 다시, 당신은에 갈 경우 (50) 연구, 거기있을거야. 1826 01:19:34,110 --> 01:19:36,860 그렇지 않으면 나에게 이야기를 올 당신이 있다면 여전히 혼란. 1827 01:19:36,860 --> 01:19:42,340 그래서 여기에 멋진 일이 그 최상의 경우는, 최악의 경우, 예상 런타임 1828 01:19:42,340 --> 01:19:46,250 n은 모든 로그에 있고 우리는 것보다 훨씬 낫다 1829 01:19:46,250 --> 01:19:48,000 우리의 종류의 나머지 본. 1830 01:19:48,000 --> 01:19:51,840 우리는 본 N 제곱 한 실제로 우리는 무엇을 1831 01:19:51,840 --> 01:19:54,380 큰 인 N N 로그 여기에 얻을. 1832 01:19:54,380 --> 01:19:55,830 >> 즉 얼마나 잘 봐. 1833 01:19:55,830 --> 01:19:56,780 이러한 좋은 곡선. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 그래서 훨씬 더 효율적입니다. 1836 01:20:00,120 --> 01:20:03,510 만약 당신이 할 수있는 경우, 사용은 일종의 병합합니다. 1837 01:20:03,510 --> 01:20:04,810 그것은 당신에게 시간을 절약 할 수 있습니다. 1838 01:20:04,810 --> 01:20:07,670 그럼 다시, 우리가 말했듯이, 경우 당신이 낮은 지역에서 아래로있어 1839 01:20:07,670 --> 01:20:09,480 그것은 그가되지 않습니다 많은 차이. 1840 01:20:09,480 --> 01:20:11,360 당신은 수천 일어나 및 입력의 수천, 1841 01:20:11,360 --> 01:20:13,318 당신은 확실히 원하는 더 효율적인 알고리즘. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 모든 그리고 다시, 우리의 사랑스러운 테이블 너희들이 오늘 배운 종류. 1844 01:20:19,400 --> 01:20:21,157 >> 그래서 나는 그것이 조밀 한 하루 였어요 알고있다. 1845 01:20:21,157 --> 01:20:23,490 이것은 필요하지 않을 당신의 pset에 도움을주는. 1846 01:20:23,490 --> 01:20:28,250 하지만 난 그냥 고지 사항을 확인하려면 그 부분은 Pset에 대해하지 않습니다. 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 나는 1 분 이내에 그것을했다. 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 별 모양. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 육각형 좋다. 1872 01:21:14,670 --> 01:21:15,170 확인을 클릭합니다. 1873 01:21:15,170 --> 01:21:17,045 우리는 할 겁니다 다음 다음 주에 별 모양. 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