1 00:00:00,000 --> 00:00:11,100 >> [음악 연주] 2 00:00:11,100 --> 00:00:11,490 >> DAVID J. 마란 : 좋아요. 3 00:00:11,490 --> 00:00:12,170 그래서 다시 오신 것을 환영합니다. 4 00:00:12,170 --> 00:00:15,180 이 CS50, 그리고이다 주일의 끝입니다. 5 00:00:15,180 --> 00:00:17,770 >> 그래서, 지난 몇 주 동안 기억 우리는 꽤 지출 봤는데 6 00:00:17,770 --> 00:00:20,820 C에서 프로그래밍에 대한 구문에 대한 시간입니다. 7 00:00:20,820 --> 00:00:24,680 당신이 아직 있다면 그리고 그것은 아주 정상 수, 문제 설정이 어려움을 겪고 8 00:00:24,680 --> 00:00:25,950 벽에 머리를 두드리는. 9 00:00:25,950 --> 00:00:28,310 그것은 암호화 된 예측 오류 메시지의 버그는 당신 10 00:00:28,310 --> 00:00:29,220 아주 쫓아 수 없습니다. 11 00:00:29,220 --> 00:00:32,310 때문에, 안심, 그 중 단지 몇 주간의 시간 당신은 다시 살펴 보겠습니다 12 00:00:32,310 --> 00:00:35,930 카이사르 같은 것들, 그리고 [? V-genair?] 어쩌면 균열 및 13 00:00:35,930 --> 00:00:40,050 당신이 와서 얼마나 멀리 실현 시간의 짧은 기간합니다. 14 00:00:40,050 --> 00:00:43,670 그 어떤 위로의 경우에, 지금 거기에 끊지. 15 00:00:43,670 --> 00:00:46,610 >> 오늘날, 그러나, 우리는 전환 시작 가지 높은 수준으로. 16 00:00:46,610 --> 00:00:49,820 그리고 우리는 당연시하기 시작합니다 너희들은 프로그램하는 방법을 알고, 또는시 17 00:00:49,820 --> 00:00:52,090 의 시작 최소 그 안락 수준. 18 00:00:52,090 --> 00:00:56,520 그리고 우리는 어떻게 우리가 할 수있는 고려하기 시작합니다 더 많은 프로그램을 설계에 대해 이동 19 00:00:56,520 --> 00:00:57,440 효과적으로. 20 00:00:57,440 --> 00:01:01,090 우리는 최적화에 대해 갈 수있는 방법 우리의 알고리즘의 효율성 및 21 00:01:01,090 --> 00:01:03,110 일반적으로 더 해결 흥미로운 문제. 22 00:01:03,110 --> 00:01:06,850 그리고 그 당연한 시작 우리가 원한다면, 우리는 어떤을 코드 수 23 00:01:06,850 --> 00:01:08,350 우리가 염두에두고 예. 24 00:01:08,350 --> 00:01:11,430 그래서 오늘, 우리는 키보드를 만지지 마십시오 코드의 형태. 25 00:01:11,430 --> 00:01:15,150 그것은 훨씬 더 높은 수준의, 그리고 것 궁극적으로 문제 해결에 대한. 26 00:01:15,150 --> 00:01:20,490 >> 그래서 그 점에 도착, 내가 제안하자 그 다음의 7 27 00:01:20,490 --> 00:01:24,290 사각형 뒤에 일곱 문을 나타냅니다 이는의 전체 무리입니다 28 00:01:24,290 --> 00:01:26,340 숫자, 그중 번호 50입니다. 29 00:01:26,340 --> 00:01:30,470 날이에이 프로젝트하자 여기뿐만 아니라 화면을 표시합니다. 30 00:01:30,470 --> 00:01:36,770 그리고 우리가 자원 봉사를 필요로하는 제안 나에게 앞 번호를 찾을 수 있도록 31 00:01:36,770 --> 00:01:38,140 보려면 여기를 클릭하십시오 인터넷. 32 00:01:38,140 --> 00:01:40,755 핑크에 올라와. 33 00:01:40,755 --> 00:01:43,050 좋아. 34 00:01:43,050 --> 00:01:43,930 당신의 이름은 무엇입니까? 35 00:01:43,930 --> 00:01:44,850 >> 제니퍼 : [들림] 36 00:01:44,850 --> 00:01:45,170 >> DAVID J. 마란 : 네? 37 00:01:45,170 --> 00:01:45,860 >> 제니퍼 : 제니퍼. 38 00:01:45,860 --> 00:01:46,390 >> DAVID J. 마란 : 제니퍼. 39 00:01:46,390 --> 00:01:46,980 모든 권리, 제니퍼. 40 00:01:46,980 --> 00:01:47,630 만나서 반가워요. 41 00:01:47,630 --> 00:01:48,370 올라 와요. 42 00:01:48,370 --> 00:01:52,430 그래서이 여기에 일곱 문, 그리고 무엇 난 당신이 여기 우리를 위해 할 싶습니다 43 00:01:52,430 --> 00:01:56,560 귀하의 급우의 앞에, 우리에게 숫자 50을 찾을 수 있습니다. 44 00:01:56,560 --> 00:02:00,860 번호를 찾으려면, 당신은 슬쩍 뒤에 수 간단하게 터치하여 이러한 문의 45 00:02:00,860 --> 00:02:03,030 문 하나 그것에 해당 번호를 공개합니다. 46 00:02:03,030 --> 00:02:06,080 그리고 어디 보자 얼마나 빨리 우리에게 숫자 50를 찾을 수 있습니다. 47 00:02:06,080 --> 00:02:09,979 48 00:02:09,979 --> 00:02:11,229 >> 15. 49 00:02:11,229 --> 00:02:13,110 50 00:02:13,110 --> 00:02:14,360 16. 51 00:02:14,360 --> 00:02:16,270 52 00:02:16,270 --> 00:02:16,530 50. 53 00:02:16,530 --> 00:02:17,350 잘 했어. 54 00:02:17,350 --> 00:02:18,040 좋아. 55 00:02:18,040 --> 00:02:19,906 제니퍼에 대한 박수 라운드. 56 00:02:19,906 --> 00:02:21,530 >> [박수] 57 00:02:21,530 --> 00:02:22,320 >> 좋아. 58 00:02:22,320 --> 00:02:25,254 그래서 전략은 무엇습니다 , 50 번호 찾기? 59 00:02:25,254 --> 00:02:27,222 >> 제니퍼 : 음, 아마하면 생각 - 60 00:02:27,222 --> 00:02:27,714 [들림] 61 00:02:27,714 --> 00:02:28,206 >> DAVID J. 마란 : 아. 62 00:02:28,206 --> 00:02:29,630 그것을 1 초 제공합니다. 63 00:02:29,630 --> 00:02:32,420 그래서 전략을 위해이었다 , 50 번호 찾기? 64 00:02:32,420 --> 00:02:34,760 >> 제니퍼 : 그래서 난 그냥 시작 하기 시작 것을 첫 번째 숫자 65 00:02:34,760 --> 00:02:38,590 아마 경우이고, 그때 생각 그들은 분류하고, 난 그냥 계속 거 66 00:02:38,590 --> 00:02:39,970 상위에 도청? 67 00:02:39,970 --> 00:02:40,140 >> DAVID J. 마란 : OK. 68 00:02:40,140 --> 00:02:42,910 그리고 우리가 발견하는 것 경우 수합니다. 69 00:02:42,910 --> 00:02:45,670 하지만, 다시 껍질 레이어를하자 다만 조금, 당신은 가고 싶어 70 00:02:45,670 --> 00:02:47,640 앞서와 다른 문을 밝혀 당신이 선택한 수 있을까? 71 00:02:47,640 --> 00:02:50,400 72 00:02:50,400 --> 00:02:51,712 >> 제니퍼 : 오, 이런. 73 00:02:51,712 --> 00:02:53,128 >> DAVID J. 마란 : 아. 74 00:02:53,128 --> 00:02:54,280 >> 제니퍼 : 그래서 난 그냥 운이 좋았어요. 75 00:02:54,280 --> 00:02:55,270 >> DAVID J. 마란 : 그래서 당신은 운이 좋군. 76 00:02:55,270 --> 00:02:55,710 좋아. 77 00:02:55,710 --> 00:02:56,795 그렇게 나쁘지 않다. 78 00:02:56,795 --> 00:02:58,750 하지만 그 흥미 통찰력, 오른쪽? 79 00:02:58,750 --> 00:03:01,870 , 당신은 가정, 당신은 얻을 않은 경우 실제로, 조금이 운이. 80 00:03:01,870 --> 00:03:05,350 하지만 숫자가 있다고 가정하면 정렬 좀 더 정확하게 할 수 있습니다 81 00:03:05,350 --> 00:03:08,750 그 영향을 방법에 대한 당신의 행동? 82 00:03:08,750 --> 00:03:11,715 >> 제니퍼 : 그들은이 정렬 된 경우에, I 최대에 어쩌면 작은 생각했다. 83 00:03:11,715 --> 00:03:11,970 >> DAVID J. 마란 : OK. 84 00:03:11,970 --> 00:03:15,260 >> 제니퍼 : 또는이 끝났다면되고 작은에 그 큰, 정말 큰. 85 00:03:15,260 --> 00:03:15,540 >> DAVID J. 마란 : OK. 86 00:03:15,540 --> 00:03:18,170 그래서 최소로 큰, 또는 최소에서 최대로. 87 00:03:18,170 --> 00:03:21,990 하지만 내가 제안하자, 당신이 있다고 가정 불운 받고, 그리고 가정 그들이 88 00:03:21,990 --> 00:03:26,840 사실, 분류되지 않은, 얼마나 많은 그 문 당신은 엿에 있었다 수 89 00:03:26,840 --> 00:03:28,590 그 최악의 경우 뒤에? 90 00:03:28,590 --> 00:03:29,860 >> 제니퍼 : 그들 모두. 91 00:03:29,860 --> 00:03:30,420 >> DAVID J. 마란 : 그들 모두. 92 00:03:30,420 --> 00:03:31,740 그럼 일반화하자 N로합니다. 93 00:03:31,740 --> 00:03:34,790 가 7로 발생하지만하자가 더 일반적으로에서의 N 문이 말한다 94 00:03:34,790 --> 00:03:35,650 여기에 화면을 표시합니다. 95 00:03:35,650 --> 00:03:40,110 따라서 최악의 경우에, 당신은 것 7 문, 또는 n 문 뒤에 볼 수 있습니다. 96 00:03:40,110 --> 00:03:44,140 그리고 이것은 정말의 비트의입니다 운 오늘,하지만 정말 선형의 97 00:03:44,140 --> 00:03:46,440 종류의 알고리즘, 비록 당신 주위 건너 뛰는 종류이었다. 98 00:03:46,440 --> 00:03:47,080 이 박람회는 무엇입니까? 99 00:03:47,080 --> 00:03:47,500 >> 제니퍼 : 네. 100 00:03:47,500 --> 00:03:50,000 >> DAVID J. 마란은 : 글쎄, 어디 보자 한 경우 고객님의 전략 변경 난 우리로 이동하는 경우 101 00:03:50,000 --> 00:03:52,190 여기에 우리의 두 번째 예제 7 개의 다른 문. 102 00:03:52,190 --> 00:03:55,240 같은 번호 만이 시간은 그들이 정렬됩니다. 103 00:03:55,240 --> 00:03:58,350 될 여기에 귀하의 전략은 무엇입니까 당신의 마음에서 몰아 내려고 무엇을 104 00:03:58,350 --> 00:03:59,310 다른 숫자였다 - 105 00:03:59,310 --> 00:03:59,930 >> 제니퍼 : OK. 106 00:03:59,930 --> 00:04:02,290 >> DAVID J. 마란 : - 이전? 107 00:04:02,290 --> 00:04:03,180 >> 제니퍼 : 시작하자 첫 번째로. 108 00:04:03,180 --> 00:04:03,540 >> DAVID J. 마란 : 좋아요. 109 00:04:03,540 --> 00:04:05,190 첫 번째로 시작합니다. 110 00:04:05,190 --> 00:04:05,960 4. 111 00:04:05,960 --> 00:04:08,810 이제 어디로 갈, 왜? 112 00:04:08,810 --> 00:04:10,040 >> 제니퍼 : 4 정말 작습니다. 113 00:04:10,040 --> 00:04:12,500 그들은 일종의 어쩌면 작은거야 그래서 만약 큰에, 그것은해야 114 00:04:12,500 --> 00:04:13,290 - 두 배, 그리고해야합니다. 115 00:04:13,290 --> 00:04:13,670 >> DAVID J. 마란 : OK. 116 00:04:13,670 --> 00:04:15,990 자, 당신이 생각하는 보이지? 117 00:04:15,990 --> 00:04:19,050 >> 제니퍼 : 마지막 하나를 수행하십시오. 118 00:04:19,050 --> 00:04:19,500 좋은. 119 00:04:19,500 --> 00:04:20,880 >> DAVID J. 마란 : 아주 잘 했어. 120 00:04:20,880 --> 00:04:21,860 좋아. 121 00:04:21,860 --> 00:04:23,010 >> [박수] 122 00:04:23,010 --> 00:04:24,310 >> DAVID J. 마란 : OK. 123 00:04:24,310 --> 00:04:26,790 그래서 당신은 실제로 일을하고 당신이있어 무섭게 때문에 124 00:04:26,790 --> 00:04:27,700 아주 잘하고 있어요. 125 00:04:27,700 --> 00:04:31,150 어느에 우리가 할 수없는 단풍 특정 지점을 확인합니다. 126 00:04:31,150 --> 00:04:32,565 그래서 여기 롤백을 시도하자. 127 00:04:32,565 --> 00:04:34,560 >> 제니퍼 : OK. 128 00:04:34,560 --> 00:04:35,980 >> DAVID J. 마란 : 아주 좋아요 그럼에도 불구하고, 수행. 129 00:04:35,980 --> 00:04:39,060 그래서 당신은, 처음에 시작 당신은 그런 사 더라 130 00:04:39,060 --> 00:04:40,240 끝으로 이동. 131 00:04:40,240 --> 00:04:42,320 하지만 당신은 운이하지 않은 가정 , 거기에 가정 50 132 00:04:42,320 --> 00:04:42,890 다른 곳이었다. 133 00:04:42,890 --> 00:04:46,190 무엇 번째 단계가 있었나요? 134 00:04:46,190 --> 00:04:47,680 >> 제니퍼 : 처음으로 돌아갑니다. 135 00:04:47,680 --> 00:04:48,320 >> DAVID J. 마란 위로 가기 처음으로. 136 00:04:48,320 --> 00:04:51,320 OK, 당신은 감동 한 것이다 8였습니다 문. 137 00:04:51,320 --> 00:04:51,660 좋아. 138 00:04:51,660 --> 00:04:52,650 그래서 50이 아니다. 139 00:04:52,650 --> 00:04:55,380 어디 다음 보았다까요? 140 00:04:55,380 --> 00:04:56,720 >> 제니퍼 : 내가하지 않은 경우 그들은 분류 알고 있습니다. 141 00:04:56,720 --> 00:04:57,005 >> DAVID J. 마란 : 수정. 142 00:04:57,005 --> 00:04:58,490 글쎄, 당신은 한 알고 그들은이 정렬되었습니다 - 143 00:04:58,490 --> 00:04:58,700 >> 제니퍼 : 오, 그래, 알지 못했다. 144 00:04:58,700 --> 00:05:00,910 >> DAVID J. 마란 -하지만 당신은하지 않았다 50는 아직 어디에 있었는지 알아? 145 00:05:00,910 --> 00:05:01,785 >> 제니퍼 : 그냥 계속. 146 00:05:01,785 --> 00:05:02,130 >> DAVID J. 마란 : 좋아요. 147 00:05:02,130 --> 00:05:02,520 확인을 클릭합니다. 148 00:05:02,520 --> 00:05:03,800 계속. 149 00:05:03,800 --> 00:05:05,270 좋아요, 내가 작업 할 수 있습니다. 150 00:05:05,270 --> 00:05:05,610 >> 제니퍼 : OK. 151 00:05:05,610 --> 00:05:07,210 >> DAVID J. 마란 : 당신은 이제 있다면 계속하려고, 무슨하여 152 00:05:07,210 --> 00:05:09,680 알고리즘에 백업 이양. 153 00:05:09,680 --> 00:05:10,740 >> 제니퍼 : 선형 -. 154 00:05:10,740 --> 00:05:11,820 >> DAVID J. 마란 : 그것은 선형의 일종이다. 155 00:05:11,820 --> 00:05:13,480 그러나하자, 내가 제안하자 내가 그 자리에 넣어. 156 00:05:13,480 --> 00:05:14,900 내가 페이지를 새로 고칠 수 있습니다. 157 00:05:14,900 --> 00:05:17,120 같은 번호, 같은 배열, 같은 문. 158 00:05:17,120 --> 00:05:21,350 그러나의 첫 날에 다시 생각한다 우리가 전화 번호부를 찢어 클래스 159 00:05:21,350 --> 00:05:25,480 절반의 종류, 어떤이었다 거기에 우리의 전략? 160 00:05:25,480 --> 00:05:26,450 >> 제니퍼 : 중간에서 시작합니다. 161 00:05:26,450 --> 00:05:26,690 >> DAVID J. 마란 : OK. 162 00:05:26,690 --> 00:05:27,610 그래서 중간에서 시작합니다. 163 00:05:27,610 --> 00:05:28,790 그럼 가서 그를 시뮬레이션 할 수 있습니다. 164 00:05:28,790 --> 00:05:30,720 에 의해 중간에서 시작 그 문을 드러내는. 165 00:05:30,720 --> 00:05:31,660 그래서 번호 16. 166 00:05:31,660 --> 00:05:35,290 그래서 강한 사람이 무슨 짓을했을 것입니다, 누가 반으로 전화 번호부를 찢어 167 00:05:35,290 --> 00:05:38,450 다음 추측을 얻으려면? 168 00:05:38,450 --> 00:05:39,400 >> 제니퍼이 반으로 이동합니다. 169 00:05:39,400 --> 00:05:41,700 >> DAVID J. 마란 : 그리고 왜 오른쪽? 170 00:05:41,700 --> 00:05:43,900 >> 제니퍼 : 그들은 있다면 일종의 최소의 최대로, 다음 50이어야한다 171 00:05:43,900 --> 00:05:44,720 그 말에. 172 00:05:44,720 --> 00:05:44,920 >> DAVID J. 마란 : 좋은. 173 00:05:44,920 --> 00:05:45,390 완전히 합리적. 174 00:05:45,390 --> 00:05:48,380 그래서 전화 번호부처럼, 당신은으로 이동 오른쪽으로 왼쪽으로 반대하지만, 여기에 175 00:05:48,380 --> 00:05:49,500 키 테이크 아웃입니다. 176 00:05:49,500 --> 00:05:53,930 당신은 지금, 멀리 던져, 또는 벗길 수 이 문제의 절반, 안 떠나 177 00:05:53,930 --> 00:05:55,970 7 문,하지만 정말 그냥 3. 178 00:05:55,970 --> 00:05:57,870 어떤의 약 절반 문제의 크기입니다. 179 00:05:57,870 --> 00:05:58,350 좋아. 180 00:05:58,350 --> 00:06:01,890 그래서 지금 당신이 할 무엇을 당신이 바로 이동 후에 수행? 181 00:06:01,890 --> 00:06:05,870 >> 제니퍼 : 그래서 16, 아직도 꽤 작 50을 기준으로, 그래서 어쩌면 내가 노력하겠습니다 182 00:06:05,870 --> 00:06:06,700 이와 같은. 183 00:06:06,700 --> 00:06:07,890 >> DAVID J. 마란 : 좋아요. 184 00:06:07,890 --> 00:06:08,720 42. 185 00:06:08,720 --> 00:06:10,830 좋아, 이제 무엇의 말하고 본능? 186 00:06:10,830 --> 00:06:12,100 >> 제니퍼 : 내가 멀리 던질 수 이 후 단지 - 187 00:06:12,100 --> 00:06:12,360 >> DAVID J. 마란 : OK. 188 00:06:12,360 --> 00:06:14,212 잘, 당신은 멀리 던질 수 거기에 왼쪽 절반입니다. 189 00:06:14,212 --> 00:06:14,890 >> 제니퍼 : -이 하나를 선택합니다. 190 00:06:14,890 --> 00:06:15,530 >> DAVID J. 마란 : 그리고 권리가 있습니다. 191 00:06:15,530 --> 00:06:15,760 >> 제니퍼 : 네. 192 00:06:15,760 --> 00:06:17,820 >> DAVID J. 마란 : 그것은 어렵다 그럼에도 불구하고 만있을 때, 아마 볼 수 193 00:06:17,820 --> 00:06:21,320 7 문, 지금 생각해 의 일관성 194 00:06:21,320 --> 00:06:22,620 당신은 방금 적용한 알고리즘입니다. 195 00:06:22,620 --> 00:06:24,510 앞의 경우에, 당신은 한 컸다, 행운. 196 00:06:24,510 --> 00:06:26,540 하지만 당신은 휴리스틱을 사용했다 내가 말할 것입니다. 197 00:06:26,540 --> 00:06:29,150 당신은 당신의 본능의 종류를 사용하고, 꽤의 경우는, 분류 알고 198 00:06:29,150 --> 00:06:31,600 처음에 작은, 분명히, 우리는했습니다 오른쪽으로 더 가야. 199 00:06:31,600 --> 00:06:34,990 그러나 어떤 의미에서, 당신은 운이 좋군 아마 이것은 100 번 이었기 때문에 200 00:06:34,990 --> 00:06:36,220 어쩌면 50 중간에 더했습니다. 201 00:06:36,220 --> 00:06:37,910 아마 50 여기에도했다. 202 00:06:37,910 --> 00:06:40,960 >> 하지만 당신은 조금 다르게 뭘했는지 이 시간이되었다, 당신은 같은 일을했다 203 00:06:40,960 --> 00:06:42,150 또 다시. 204 00:06:42,150 --> 00:06:45,310 내가 주장하는 무슨 단지 ,이기는하지만 전화로 영향 않았다 205 00:06:45,310 --> 00:06:48,100 책 예를 들어, 많은 일이있다 더 많은 알고리즘, 그리고 훨씬 206 00:06:48,100 --> 00:06:49,930 적은 특수 맡았다. 207 00:06:49,930 --> 00:06:51,620 훨씬 더 본능적. 208 00:06:51,620 --> 00:06:57,160 그래서 하루의 끝에, 어떻게 것 당신의 효율성을 설명 209 00:06:57,160 --> 00:07:00,530 당신이 가서 첫 번째 알고리즘 대, 왼쪽에서 오른쪽으로 210 00:07:00,530 --> 00:07:03,430 여기에 두 번째 알고리즘? 211 00:07:03,430 --> 00:07:06,460 >> 제니퍼 :이 사람이해야한다, 같은, 어쩌면 시간을 절반, 혹은 그 이상, 그래. 212 00:07:06,460 --> 00:07:07,320 >> DAVID J. 마란 : OK, 어쩌면 더. 213 00:07:07,320 --> 00:07:10,150 의 그에 약간 세게 밀어 보자. 214 00:07:10,150 --> 00:07:13,030 정말 무엇을, 우리는이 문제를 계속하는 경우 논리는, 우리는 확실히 절반 ​​가까이 떨어졌다 215 00:07:13,030 --> 00:07:15,830 이 두 번째 알고리즘 실행 시간 의 절반을 멀리 던져 216 00:07:15,830 --> 00:07:18,470 수 있지만, 우리는 다음에 무엇을 했는가 제니퍼 밝혀 반복, 217 00:07:18,470 --> 00:07:20,615 두 번째 숫자? 218 00:07:20,615 --> 00:07:22,830 >> 우리는 다시 문의 수를 절반. 219 00:07:22,830 --> 00:07:25,270 그리고 우리는 그 후 어떻게 한 경우 놀에 더 많은 문이 있었다? 220 00:07:25,270 --> 00:07:27,520 우리는 다시 절반, 그리고 것 다시, 다시. 221 00:07:27,520 --> 00:07:30,420 그리고이 모든 너희들 같았다 의 첫 주에 서 222 00:07:30,420 --> 00:07:33,000 당신이 아래 앉아 수업, 반, 반 의 당신은 당신의 절반을 앉아 223 00:07:33,000 --> 00:07:35,440 한 고독한까지 앉아 영혼이 서 있었다. 224 00:07:35,440 --> 00:07:39,050 그리고 우리는 말했다의 실행 시간 즉, 취한 단계의 수는 있었다 225 00:07:39,050 --> 00:07:40,430 어떤 순서에? 226 00:07:40,430 --> 00:07:41,230 >> 스피커 1 : [들림] 227 00:07:41,230 --> 00:07:43,970 >> DAVID J. 마란 : 그래서 로그베이스 N 2, 아니면 그냥 단순히, N으로 로그인합니다. 228 00:07:43,970 --> 00:07:45,060 그래서 대수인가. 229 00:07:45,060 --> 00:07:48,380 그리고 그래프는 직선이 아니었다 단지 더 악화있어 즉,이었다 230 00:07:48,380 --> 00:07:52,490 하지 않았다이 흥미로운 곡선 시간이 지남에 그렇게 나쁘지 얻는다. 231 00:07:52,490 --> 00:07:53,910 그럼이 아이디어를 보유 할 수 있습니다. 232 00:07:53,910 --> 00:07:54,690 의 제니퍼 감사하자. 233 00:07:54,690 --> 00:07:56,150 올라 오기를위한 감사합니다 순전히. 234 00:07:56,150 --> 00:07:57,400 그리고 초 한. 235 00:07:57,400 --> 00:08:00,170 236 00:08:00,170 --> 00:08:02,925 어떤 책상 램프 없음 오늘,하지만 우리 CS50 스트레스 공을 가지고 않습니다. 237 00:08:02,925 --> 00:08:03,420 >> 제니퍼 : 야호. 238 00:08:03,420 --> 00:08:04,410 >> DAVID J. 마란 : 좋아, 여기에. 239 00:08:04,410 --> 00:08:06,545 침해 주셔서 감사합니다 여기에 스트레스까지. 240 00:08:06,545 --> 00:08:07,350 좋아. 241 00:08:07,350 --> 00:08:10,620 그럼 보자 우리가 지금은 할 수있는 경우 조금 더이 공식화. 242 00:08:10,620 --> 00:08:14,820 그래서 다시 우리가 무슨 짓을했다 우리가했던 본질적으로 같은 것을 243 00:08:14,820 --> 00:08:16,660 첫 주에있다. 244 00:08:16,660 --> 00:08:23,780 오히려 말보다 단 선형과 우리가 묘사 알고리즘 245 00:08:23,780 --> 00:08:27,210 이전에이 직선으로, 그것에 의하여, 우리가 한 번 더 문을 넣으면 246 00:08:27,210 --> 00:08:29,610 화면이 다음 제니퍼 것 잠재적으로 지켜 볼 수밖에 없었습니다 247 00:08:29,610 --> 00:08:30,600 또 하나의 문 뒤에. 248 00:08:30,600 --> 00:08:33,490 우리는 두 개 더 문을 넣어, 그녀는해야 할 수도 있습니다 두 개 더 문 뒤에 볼 수 있습니다. 249 00:08:33,490 --> 00:08:35,990 >> 그리고이 직선이 있었다 의 크기의 관계 250 00:08:35,990 --> 00:08:39,059 x 축, 말에 대한 문제, 그리고 는 데 걸리는 시간 251 00:08:39,059 --> 00:08:40,440 Y를 해결한다. 252 00:08:40,440 --> 00:08:43,330 하지만 내가 암시 된 사진 이번 녹색 선이었다. 253 00:08:43,330 --> 00:08:45,970 녹색 의도적 때문에 그냥 기분이 좋았다. 254 00:08:45,970 --> 00:08:49,790 이론적으로, 우리는 그것을 알고리즘을했을 때 전화 번호부 때, 우리는 그것을했다 255 00:08:49,790 --> 00:08:52,420 너희들은 서로를 계산하고, 함께 두 번째 경우에, 때 제니퍼 단지 256 00:08:52,420 --> 00:08:55,250 여기에 그것을했다, 그것은 일종의이었다 근본적으로 더 나은. 257 00:08:55,250 --> 00:08:57,180 그냥 배 빠른 속도로되지 않았기 때문에. 258 00:08:57,180 --> 00:08:58,870 그것은 빨리도 네 번이 아니었다. 259 00:08:58,870 --> 00:09:03,290 그것은 무엇에 전적으로 의존했다 입력의 크기에 관해서는, 얼마나 많은 260 00:09:03,290 --> 00:09:05,220 궁극적으로 갔다 단계를 반복합니다. 261 00:09:05,220 --> 00:09:08,040 >> 그리고 우리 모두가 걸렸다 있도록이 간단한 아이디어 전화 번호부 부여를 위해, 262 00:09:08,040 --> 00:09:10,200 마찬가지로 적용 할 수있다 이 같은 뭔가. 263 00:09:10,200 --> 00:09:12,380 그리고 더 부담 될 수 있습니다 당신은 수도로 알려져 264 00:09:12,380 --> 00:09:13,940 분할과 정복, 상상. 265 00:09:13,940 --> 00:09:16,390 하지 우리가 무슨 짓을했는지는 달리, 물론, 전화 번호부. 266 00:09:16,390 --> 00:09:18,300 >> 하지만 의사, 리콜이 있었다. 267 00:09:18,300 --> 00:09:21,800 그래서 우리는 다시 이렇게하지만, 기억하지 않습니다 그 첫 주, 우리 모두 일어 서서 268 00:09:21,800 --> 00:09:25,140 그리고 당신의 반은 절반, 앉아서 당신은 앉아서 당신의 절반 앉았다. 269 00:09:25,140 --> 00:09:29,280 그 알고리즘으로 구현되었다 그의 부정 방법의 비트, 그 270 00:09:29,280 --> 00:09:32,870 나 하나가 계산되지 않았습니다 근본적으로,보다 효율적으로. 271 00:09:32,870 --> 00:09:35,830 그 경우는 활용되었다 보조 리소스. 272 00:09:35,830 --> 00:09:39,470 일종의 다중 CPU를 여러 뇌, 여러 똑똑한 사람들 273 00:09:39,470 --> 00:09:42,740 객실 날에서 뭔가 얻을 수 있도록 하였다 뭔가 선형 274 00:09:42,740 --> 00:09:45,190 뭔가에서, 로그 뭔가 녹색 빨강. 275 00:09:45,190 --> 00:09:48,650 >> 그러나이 경우, 제니퍼 혼자 할 수 있습니다 근본적을 향상 276 00:09:48,650 --> 00:09:52,370 그녀의 첫 번째 알고리즘의 성능에 의해, 다시 조금 더 생각. 277 00:09:52,370 --> 00:09:56,650 그리고 지금, 그것을 구현하는 시간이되면 이러한 일들이 파악 278 00:09:56,650 --> 00:10:00,670 당신은을 작성할 수있는 코드의 줄 당신은 그들을 다시 반복 할 수있는 279 00:10:00,670 --> 00:10:03,350 다시, 다시, 정렬 루핑 패션한다. 280 00:10:03,350 --> 00:10:06,370 당신이하지 않을거야 때문에, 제니퍼와 같은 사치품에, 처음에 한 281 00:10:06,370 --> 00:10:10,460 다만, IFS의 전체 무리를 가지고 말 음, 첫 번째 번호가 4 인 경우는, 282 00:10:10,460 --> 00:10:11,800 저 끝까지 뛰어 보자. 283 00:10:11,800 --> 00:10:14,180 그 숫자가 너무 크다면, 우, 저를 임의로 다시 이동하자 284 00:10:14,180 --> 00:10:15,220 두 번째 요소. 285 00:10:15,220 --> 00:10:18,210 당신은 많이있을거야 찾을거야 더 공식화 우리 인간 286 00:10:18,210 --> 00:10:21,270 매우 합리적으로 당연시 추론하지만, 컴퓨터는이다 287 00:10:21,270 --> 00:10:23,260 당신이 그것을 말해 무엇을 할 것. 288 00:10:23,260 --> 00:10:25,280 >> 지금이 아주 재미있다 의미. 289 00:10:25,280 --> 00:10:29,950 이 그래프는 일종의 일종의하기위한 것입니다 시각적으로 압도하지만, 통지, 여기서 290 00:10:29,950 --> 00:10:32,230 이 그래프에서 직선입니까? 291 00:10:32,230 --> 00:10:35,330 선형 그래프는 어디에 우리는 n을 호출하는? 292 00:10:35,330 --> 00:10:37,580 글쎄요, 그것은 아래쪽으로 일종의의 이 그림의 오른쪽? 293 00:10:37,580 --> 00:10:40,500 우리가 한 모든 우리가 일종의을했습니다 그래서 x 축과로 축소해서 294 00:10:40,500 --> 00:10:44,780 y 축에 어떤 의미를하려고합니다 곡선의 다른 유형처럼 보입니다. 295 00:10:44,780 --> 00:10:47,760 >> 그리고 수학의 특성 표현은 오늘 그렇게 중요하지 않습니다 296 00:10:47,760 --> 00:10:52,440 많은,하지만 많이 발견 할 수있을 것입니다 보다 훨씬 더 나쁘다 알고리즘 297 00:10:52,440 --> 00:10:53,470 선형 뭔가. 298 00:10:53,470 --> 00:10:55,410 사실, 삼승 N은 아주 나쁜 보인다. 299 00:10:55,410 --> 00:10:58,400 2 n으로는 아주 나쁜 보인다. 제곱 N은 아주 나쁜 보인다. 300 00:10:58,400 --> 00:11:01,630 그리고 우리는 볼 것이다 무엇을 그 중 일부 실제로 오늘날 수 있습니다. 301 00:11:01,630 --> 00:11:05,430 및 로그 N 불량으로 느끼지만하지 않습니다 n보다 나은 N의 로그베이스 2입니다. 302 00:11:05,430 --> 00:11:08,080 하지만 당신은 알고, 심지어는 있었을 것이다 더 놀라운 경우 제니퍼, 또는 우리 경우 303 00:11:08,080 --> 00:11:12,910 첫 주에 도달했다 N의 로그 로그 뭔가. 304 00:11:12,910 --> 00:11:15,880 >> 그래서 다른 말로,이 모든이의 제에 대해 가능한 솔루션의 범위 305 00:11:15,880 --> 00:11:18,570 문제가 있지만, 여기에도 통지 무슨 일이 일어날거야. 306 00:11:18,570 --> 00:11:22,910 이 곡선의 I가 축소 될 때, 그 절대이 될 증명할 것입니다 307 00:11:22,910 --> 00:11:26,630 이제 화면에 사람의 최악의? 308 00:11:26,630 --> 00:11:28,680 그래서 N 제곱 꽤 보인다 순간에 나쁜. 309 00:11:28,680 --> 00:11:32,470 그러나 우리는 축소보다의를 참조하는 경우 것 x와 y 축, 310 00:11:32,470 --> 00:11:34,550 궁극적으로 지배? 311 00:11:34,550 --> 00:11:37,120 그래서 실제로 해당 2 밝혀 N, 그리고 당신은하여 알아낼 수 있습니다 312 00:11:37,120 --> 00:11:39,990 일부 점점 더 큰에 연결 숫자, 당신은 볼 것이다 그 2에 313 00:11:39,990 --> 00:11:42,070 N, 참으로, 더 큰 더 빠르게 가져옵니다. 314 00:11:42,070 --> 00:11:45,530 우리가 정말에, 2 축소하는 경우 N 알고리즘은 절대적으로 짜증. 315 00:11:45,530 --> 00:11:48,170 나는이 걸릴 것입니다 의미 시간이 꽤 316 00:11:48,170 --> 00:11:49,460 컴퓨터를 이탈합니다. 317 00:11:49,460 --> 00:11:52,500 >> 하지만 당신은 특히 시간이 지남에 볼 수 있습니다 미래의 문제와 세트도 318 00:11:52,500 --> 00:11:55,600 최종 프로젝트는 데이터입니다 세트, 모든 권리 커질? 319 00:11:55,600 --> 00:11:58,300 심지어 페이스 북의 첫 번째 버전에서, 친구의 수와 같은 320 00:11:58,300 --> 00:12:01,840 등록 된 사용자의 수는 큰있어 당신의 전화를 그것을 정렬 할 수 있습니다 321 00:12:01,840 --> 00:12:05,530 , 선형 검색으로 뭔가를 구현 또는 매우 간단한 정렬 322 00:12:05,530 --> 00:12:07,030 오늘 우리가 보게 될 알고리즘. 323 00:12:07,030 --> 00:12:09,280 당신은 열심히 생각하기 시작해야 이러한 문제에 대한 더. 324 00:12:09,280 --> 00:12:12,070 및 문제 장소의 종류 등 페이스 북, 구글, 마이크로 소프트, 325 00:12:12,070 --> 00:12:16,350 그리고 작업을 다른 사람이 정확히 질문 빅 데이터 정렬의 종류 326 00:12:16,350 --> 00:12:18,530 점점 이러한 일. 327 00:12:18,530 --> 00:12:18,900 >> 좋아. 328 00:12:18,900 --> 00:12:23,800 그 두 번째 제니퍼의 성공 때문에 알고리즘은, 솔직히, 그녀는 굉장했다 329 00:12:23,800 --> 00:12:26,110 물론 처음 만하자 그 행운으로 작성하는 우리 330 00:12:26,110 --> 00:12:27,000 이 점을 만들 수 있습니다. 331 00:12:27,000 --> 00:12:30,970 두 번째 경우에, 그녀는을 활용 다시 반복 알고리즘 332 00:12:30,970 --> 00:12:34,670 당연한 다시, 그러나 그녀는했다 우리가 허용 한 특정 가정 333 00:12:34,670 --> 00:12:39,370 그녀,하지만 그녀는 몇 가지 세부 악용 그녀가하지 않은 두 번째 334 00:12:39,370 --> 00:12:39,840 처음. 335 00:12:39,840 --> 00:12:41,800 어떤 이는입니까? 336 00:12:41,800 --> 00:12:43,050 >> 목록이 정렬 된. 337 00:12:43,050 --> 00:12:46,350 목록이 정렬 된만큼 마자, 우리 제니퍼 할 수 있었다고 주장 338 00:12:46,350 --> 00:12:47,480 근본적으로 더 나은. 339 00:12:47,480 --> 00:12:51,450 7 문, 그래, 그 관심이없는 하지만 우리는 7 백만 문입니다 그것을 가정합니다. 340 00:12:51,450 --> 00:12:54,080 N의 기록은 확실히 것입니다 훨씬, 훨씬을 수행 할 수 341 00:12:54,080 --> 00:12:55,610 장기적으로 빨리. 342 00:12:55,610 --> 00:12:58,880 하지만 그녀는이했다 문 그녀를 분류. 343 00:12:58,880 --> 00:13:02,320 지금, 나는 그 일을 자유를했다 컴퓨터 화면에 미리 344 00:13:02,320 --> 00:13:05,160 여기에,하지만 제니퍼 가정 자신 그렇게했다? 345 00:13:05,160 --> 00:13:10,120 가정이 질문에 문 표시 데이터베이스에서 데이터 또는 346 00:13:10,120 --> 00:13:14,260 페이스 북에 등록 된 친구, 또는 인터넷에있는 모든 웹 페이지가 347 00:13:14,260 --> 00:13:16,880 다양한 웹 사이트는해야 할 수도 있습니다 인덱스 이상 검색 할 수 있습니다. 348 00:13:16,880 --> 00:13:20,940 >> 그냥 원시 데이터를 가지고 있다고 가정하자 설정하고 그것은 당신에게 남은 나에 349 00:13:20,940 --> 00:13:23,010 제니퍼는 정렬을 할 수 있습니까? 350 00:13:23,010 --> 00:13:26,950 즉, 오히려 우리가 대답해야 질문, 잘, 얼마나 많은 시간 351 00:13:26,950 --> 00:13:31,080 제니퍼, 심지어 저를 찍은 것 사전에 그 숫자를 정렬 할 수 있도록 352 00:13:31,080 --> 00:13:32,680 그녀는 활용할 수있는? 353 00:13:32,680 --> 00:13:32,880 오른쪽? 354 00:13:32,880 --> 00:13:36,620 의미는 물론이기 때문에, 그것을 정렬하는 나에게 꽤 걸리는 경우 355 00:13:36,620 --> 00:13:40,800 도대체 당신을 걱정하는 숫자, 너무 빨리 50과 같은 번호를 찾을 수 있습니다, 356 00:13:40,800 --> 00:13:44,850 보다 제니퍼의 경우,처럼 우리는 더 총 시간의 양을 압도 357 00:13:44,850 --> 00:13:46,920 그것은 사전에 물건을 정렬하여 갔다? 358 00:13:46,920 --> 00:13:49,320 >> 그래서 우리가 할 수없는 경우 보자 여기에 그림을 그린다. 359 00:13:49,320 --> 00:13:51,370 나는 갓 더 많은 스트레스를 가지고 공, 도움이되는 경우 360 00:13:51,370 --> 00:13:52,270 여기에 얼음을 깰. 361 00:13:52,270 --> 00:13:55,690 그리고 당신은 상관하지 않을 경우, 우리는 일곱 자원 봉사자가 필요합니다 - 362 00:13:55,690 --> 00:13:57,060 OK에. 363 00:13:57,060 --> 00:13:57,240 와우. 364 00:13:57,240 --> 00:13:59,250 그래서 우리는 지출하지 않아도 책상 램프에, 그것은 보인다. 365 00:13:59,250 --> 00:13:59,690 좋아. 366 00:13:59,690 --> 00:14:01,530 그렇다면 앞의 두 당신에 대해. 367 00:14:01,530 --> 00:14:04,160 다시 두 사람 어때요. 368 00:14:04,160 --> 00:14:04,870 그래서 네입니다. 369 00:14:04,870 --> 00:14:09,890 당신은 어때요 앞 다섯, 여섯 일곱. 370 00:14:09,890 --> 00:14:10,320 거기. 371 00:14:10,320 --> 00:14:13,260 당신의 친구는 당신을 가리키는 그래서 당신은 상을받을. 372 00:14:13,260 --> 00:14:13,700 >> 좋아. 373 00:14:13,700 --> 00:14:14,410 올라 와요. 374 00:14:14,410 --> 00:14:17,120 왜 우리는 당신이 필요가 없습니다 사람들은 이상 여기에 온다. 375 00:14:17,120 --> 00:14:18,960 나는 당신에게 각 수를 줄거야. 376 00:14:18,960 --> 00:14:22,150 그리고 가서 자신을 준비 동일 무엇을 377 00:14:22,150 --> 00:14:25,180 화면에 묘사. 378 00:14:25,180 --> 00:14:26,530 >> [목소리를 개재] 379 00:14:26,530 --> 00:14:28,160 >> DAVID J. 마란 : 웁, 죄송합니다. 380 00:14:28,160 --> 00:14:30,210 버그가 수정되었습니다. 381 00:14:30,210 --> 00:14:32,180 좋아. 382 00:14:32,180 --> 00:14:32,750 음, 여기에 우리가 간다. 383 00:14:32,750 --> 00:14:34,180 다섯 번째. 384 00:14:34,180 --> 00:14:35,136 번호 6. 385 00:14:35,136 --> 00:14:37,770 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱. 386 00:14:37,770 --> 00:14:39,410 아,이 어색한이다. 387 00:14:39,410 --> 00:14:41,210 >> 스피커 2 : 난 그냥을 얻을 것이다 -. 388 00:14:41,210 --> 00:14:41,900 >> DAVID J. 마란 : 좋은 거래. 389 00:14:41,900 --> 00:14:43,130 좋아. 390 00:14:43,130 --> 00:14:44,611 참여에 감사드립니다. 391 00:14:44,611 --> 00:14:47,200 >> [박수] 392 00:14:47,200 --> 00:14:48,580 >> 확인을 클릭합니다. 393 00:14:48,580 --> 00:14:48,860 좋아. 394 00:14:48,860 --> 00:14:51,970 그래서 우리는 4, 둘, 여섯이 1, 3, 일곱, 다섯. 395 00:14:51,970 --> 00:14:56,010 우리는 일곱 자원 봉사자가 너무 완벽 여기에 폭에 해당 누구 396 00:14:56,010 --> 00:14:57,430 우리가 연주하는 배열 이전에. 397 00:14:57,430 --> 00:14:59,470 그리고 나는 이유 일곱 선택 그 것입니다 단지 398 00:14:59,470 --> 00:15:00,840 약간의 편리. 399 00:15:00,840 --> 00:15:04,400 그리고 내가 먼저 제안거야 그 우리는이 일곱 자원 봉사자를 정렬합니다. 400 00:15:04,400 --> 00:15:06,786 당신이 먼저 좋아 한 경우 하지만 안녕하세요. 대답 401 00:15:06,786 --> 00:15:08,970 이 될 것입니다 때문에, 어색한 몇 분 거리에 있습니다. 402 00:15:08,970 --> 00:15:10,370 자신을 소개합니다. 403 00:15:10,370 --> 00:15:10,980 >> GRACE : 안녕하세요, 그레이스 해요. 404 00:15:10,980 --> 00:15:14,190 나는 Leverett 하우스 2 학년. 405 00:15:14,190 --> 00:15:14,620 >> BRANSON : 안녕하세요. 406 00:15:14,620 --> 00:15:15,620 나는 브랜슨 해요. 407 00:15:15,620 --> 00:15:16,920 나는 용접에 신입생 해요. 408 00:15:16,920 --> 00:15:19,755 409 00:15:19,755 --> 00:15:20,230 >> 게이브 : 안녕하세요. 410 00:15:20,230 --> 00:15:21,040 나는 게이브 해요. 411 00:15:21,040 --> 00:15:22,300 나는 캐벗 주니어 해요. 412 00:15:22,300 --> 00:15:24,826 413 00:15:24,826 --> 00:15:25,980 >> NEIL : 나는 닐 해요. 414 00:15:25,980 --> 00:15:29,090 나는 매튜의 신입생 해요. 415 00:15:29,090 --> 00:15:29,550 >> 제이슨 : 제이슨 해요. 416 00:15:29,550 --> 00:15:32,816 나는 리노에서 신입생 해요. 417 00:15:32,816 --> 00:15:33,700 >> MIKE : 나는 마이크 해요. 418 00:15:33,700 --> 00:15:37,360 나는 회색의 신입생 해요. 419 00:15:37,360 --> 00:15:37,990 >> JESS : 나는 제스 해요. 420 00:15:37,990 --> 00:15:40,313 나는 Leverett 2 학년이야. 421 00:15:40,313 --> 00:15:41,300 >> DAVID J. 마란 : 우수. 422 00:15:41,300 --> 00:15:41,850 좋아. 423 00:15:41,850 --> 00:15:44,190 글쎄, 우리의 모든 감사 지금까지 여기에 자원 봉사자. 424 00:15:44,190 --> 00:15:47,110 손의 도전은 이제 것입니다 이 녀석의 정렬 될 수 있지만 다음하기 425 00:15:47,110 --> 00:15:50,250 우리는 조금 생각해야 할 것입니다 얼마나 효율적으로 우리가 실제로에 대한 하드 426 00:15:50,250 --> 00:15:51,110 그들을 분류. 427 00:15:51,110 --> 00:15:52,580 그럼 먼저이 시도 할 수 있습니다. 428 00:15:52,580 --> 00:15:55,970 너희들은 서로의 번호를 볼 수 있습니다 다만 구석의 주위에 배치하여. 429 00:15:55,970 --> 00:15:59,380 가서 몇 초 정도 걸릴하고, 일종의 작은에서의 간단한 430 00:15:59,380 --> 00:16:01,240 오른쪽에 큰 왼쪽. 431 00:16:01,240 --> 00:16:02,490 이동합니다. 432 00:16:02,490 --> 00:16:07,010 433 00:16:07,010 --> 00:16:07,530 >> 확인을 클릭합니다. 434 00:16:07,530 --> 00:16:08,030 좋아요. 435 00:16:08,030 --> 00:16:09,370 그건 정말 이놈 빨랐다. 436 00:16:09,370 --> 00:16:14,040 지금 여기에 누군가 알고리즘은 무엇 이었습니까 이 녀석이 적용된? 437 00:16:14,040 --> 00:16:14,900 >> 스피커 1 : 최대 최소한. 438 00:16:14,900 --> 00:16:15,000 >> DAVID J. 마란 : OK. 439 00:16:15,000 --> 00:16:18,070 가장 최소한 정말로 일종의 목표,하지만 난 그 확실하지 않다 440 00:16:18,070 --> 00:16:18,890 정말 알고리즘입니다. 441 00:16:18,890 --> 00:16:21,810 가장 최소한 말할되지 않습니다 저를 어떻게 단계별로. 442 00:16:21,810 --> 00:16:22,833 그래? 443 00:16:22,833 --> 00:16:24,083 >> 스피커 1 : [들림] 444 00:16:24,083 --> 00:16:26,010 445 00:16:26,010 --> 00:16:26,280 >> DAVID J. 마란 : OK. 446 00:16:26,280 --> 00:16:28,920 당신은보다 사람이 작은 볼 그렇다면 전화 번호는, 다음으로 이동 447 00:16:28,920 --> 00:16:29,680 그들의 권리가 있습니다. 448 00:16:29,680 --> 00:16:32,800 그래서 지금은 더 표현 점점 더 많은 알고리즘처럼, 당신 때문에 449 00:16:32,800 --> 00:16:35,410 그 다음,이 경우 말할 수 있습니다. 450 00:16:35,410 --> 00:16:37,050 그래서 우리는 어떤 종류의가 조건부 구조. 451 00:16:37,050 --> 00:16:39,700 그리고이 녀석은 몇 가지 작업을 수행 할 듯 시간, 당신 중 일부는 조금 움직 때문에 452 00:16:39,700 --> 00:16:40,420 거리. 453 00:16:40,420 --> 00:16:43,410 그래서 아마도 어떤 종류의가 발생했습니다 그들의 마음에서 일어나는 반복. 454 00:16:43,410 --> 00:16:44,610 >> 그러나 공식화하려고하자. 455 00:16:44,610 --> 00:16:47,540 너희들은 다시 리셋 할 수 있다면 이 배열합니다. 456 00:16:47,540 --> 00:16:50,650 우리는이를 공식화 할 수없는 경우하자 참조 비트, 다음 질문을 그냥 457 00:16:50,650 --> 00:16:51,580 이 얼마나 효율적입니까? 458 00:16:51,580 --> 00:16:54,220 물론, 우리는 더 천천히이 작업을 수행 할 때, 그것의로 기분 좋게 것 459 00:16:54,220 --> 00:16:57,210 알고리즘 만 보자 우리가 할 수있는 경우 정확한 단계에 우리의 손가락을 넣어. 460 00:16:57,210 --> 00:16:58,670 >> 그래서 두 사람은 네와 두 가지입니다. 461 00:16:58,670 --> 00:17:01,020 또는 올바른 또는 잘못된 순서? 462 00:17:01,020 --> 00:17:01,900 분명히 잘못된. 463 00:17:01,900 --> 00:17:02,710 그래서 우리는 교체. 464 00:17:02,710 --> 00:17:05,170 지금은 옆으로 이동하는거야 여기 네 여섯 말. 465 00:17:05,170 --> 00:17:06,240 당신은 올바른 있거나 잘못입니까? 466 00:17:06,240 --> 00:17:06,599 >> 게이브 : 수정. 467 00:17:06,599 --> 00:17:07,180 >> DAVID J. 마란 : 수정. 468 00:17:07,180 --> 00:17:08,300 여섯 하나? 469 00:17:08,300 --> 00:17:08,609 아니. 470 00:17:08,609 --> 00:17:09,630 교환하십시오. 471 00:17:09,630 --> 00:17:10,490 그래서 두 스왑입니다. 472 00:17:10,490 --> 00:17:11,710 여섯 세? 473 00:17:11,710 --> 00:17:11,980 아니. 474 00:17:11,980 --> 00:17:13,000 교환하십시오. 475 00:17:13,000 --> 00:17:13,930 6-7? 476 00:17:13,930 --> 00:17:14,630 좋아 보인다. 477 00:17:14,630 --> 00:17:15,396 일곱 다섯? 478 00:17:15,396 --> 00:17:16,150 >> JESS [들림] 479 00:17:16,150 --> 00:17:17,089 >> DAVID J. 마란 : OK, 교환. 480 00:17:17,089 --> 00:17:19,770 및 분류. 481 00:17:19,770 --> 00:17:19,980 좋아. 482 00:17:19,980 --> 00:17:21,440 그래서 분명하지, 그렇지? 483 00:17:21,440 --> 00:17:22,470 그래서 더 거기에 가고 있었다. 484 00:17:22,470 --> 00:17:24,920 그러나, 실제로,이 녀석도 그냥 본능적으로. 485 00:17:24,920 --> 00:17:25,450 이동 있었다. 486 00:17:25,450 --> 00:17:27,710 그들은 단지 한 번 멈추지 않았다 그들이 한 가지 문제가 수정되었습니다. 487 00:17:27,710 --> 00:17:27,839 따라서. 488 00:17:27,839 --> 00:17:29,390 사실, 내가 가진거야 같은 일을 수행합니다. 489 00:17:29,390 --> 00:17:32,720 나는 되감기 다시 일종의해야 할거야 이 문제의 시작, 490 00:17:32,720 --> 00:17:35,630 또는이 배열의 시작 사람들은 그들을 호출 시작하자. 491 00:17:35,630 --> 00:17:38,366 >> 지금 무엇을해야 내 알고리즘 두 번째 패스에있을? 492 00:17:38,366 --> 00:17:39,220 >> 스피커 1 : 같은 것. 493 00:17:39,220 --> 00:17:39,940 >> DAVID J. 마란 : 같은 것. 494 00:17:39,940 --> 00:17:41,460 그리고는 금방 좋아지기 시작 했어? 495 00:17:41,460 --> 00:17:44,720 당신은 자신이 일을 찾을 수 자마자 같은 일 또 다시,의 496 00:17:44,720 --> 00:17:47,890 더 많은 알고리즘처럼되고 덜 인간의 본능. 497 00:17:47,890 --> 00:17:48,680 >> 그래서 지금, 여기에 우리가 다시 간다. 498 00:17:48,680 --> 00:17:49,870 둘, 네? 499 00:17:49,870 --> 00:17:50,220 아니오. 500 00:17:50,220 --> 00:17:51,050 네 하나? 501 00:17:51,050 --> 00:17:53,380 아, 일부는 실제로 있었다 할 수 여전히 작동합니다. 502 00:17:53,380 --> 00:17:53,620 에 대한 세? 503 00:17:53,620 --> 00:17:54,572 좋아요. 504 00:17:54,572 --> 00:17:56,000 4-6? 505 00:17:56,000 --> 00:17:58,380 여섯 살? 506 00:17:58,380 --> 00:17:59,470 6-7? 507 00:17:59,470 --> 00:18:00,970 OK, 이제 다. 508 00:18:00,970 --> 00:18:01,550 OK, 아니. 509 00:18:01,550 --> 00:18:02,710 나는 돌아 가야한다. 510 00:18:02,710 --> 00:18:05,130 >> 그래서 지금, 다시, 우리는이 일을하고 좀 더 신중하게. 511 00:18:05,130 --> 00:18:08,700 그리고 지금, 하나의 뇌가있다 이 알고리즘을 실행. 512 00:18:08,700 --> 00:18:10,290 하나의 CPU, 당신이 경우에. 513 00:18:10,290 --> 00:18:13,090 그리고 솔직히, 그 유일한 자원의 우리에 액세스 할 겁니다. 514 00:18:13,090 --> 00:18:16,280 그리고 일단 우리가 키보드로 돌아 가야합니까 우리에 C와 같은 뭔가를 515 00:18:16,280 --> 00:18:19,600 폐기, 우리는 프로그램을 작성하는 즉, 한 번에 한 가지 작업을 수행 할 수 있습니다. 516 00:18:19,600 --> 00:18:22,900 순간 전이 녀석, 반면, 우리 활용 그들의 집단 브레인 517 00:18:22,900 --> 00:18:24,180 너희들은 주 제로 그랬던 것처럼. 518 00:18:24,180 --> 00:18:24,980 그래서이 일을 계속하자. 519 00:18:24,980 --> 00:18:26,260 >> 두 하나. 520 00:18:26,260 --> 00:18:26,945 두 세. 521 00:18:26,945 --> 00:18:27,460 셋, 넷. 522 00:18:27,460 --> 00:18:28,310 4, 5. 523 00:18:28,310 --> 00:18:28,620 다섯 여섯. 524 00:18:28,620 --> 00:18:30,510 6-7. 525 00:18:30,510 --> 00:18:31,880 완료? 526 00:18:31,880 --> 00:18:34,560 그래서 나는, 그러나 저 놀자 악마의 옹호. 527 00:18:34,560 --> 00:18:37,950 이렇게 I, 컴퓨터의 종류 사람 단지 이 배열을 통과했다 528 00:18:37,950 --> 00:18:40,225 사람들은, 내가 다 했어 그거 알아? 529 00:18:40,225 --> 00:18:40,670 >> 스피커 : 1 호 530 00:18:40,670 --> 00:18:41,050 >> DAVID J. 마란 : 왜? 531 00:18:41,050 --> 00:18:46,900 나는 무엇을 순서대로 수행해야합니다 I이 수행하고있는 단호하게 결론? 532 00:18:46,900 --> 00:18:48,230 아마 한 번 더 통과. 533 00:18:48,230 --> 00:18:48,430 오른쪽? 534 00:18:48,430 --> 00:18:51,760 때문에 그 이전부터 알고 모든 패스는 내가 실수를 수정하는 것입니다. 535 00:18:51,760 --> 00:18:53,920 그 의미는, 어쩌면 거기 또 다른 실수 536 00:18:53,920 --> 00:18:54,840 내가 수정해야합니다. 537 00:18:54,840 --> 00:18:58,680 그래서 나는 단지 감기에 의해 확인 될 수 다음 검사, 1-2, 2, 538 00:18:58,680 --> 00:19:00,940 셋, 셋, 넷, 4, 5, 다섯 여섯, 여섯 일곱. 539 00:19:00,940 --> 00:19:02,510 OK, 지금은 어떤 일을하지 않았다. 540 00:19:02,510 --> 00:19:05,990 >> 특히 내가 더를했던 기억이 없다 , 변수 같은 작업을 541 00:19:05,990 --> 00:19:06,975 int를 좋아한다. 542 00:19:06,975 --> 00:19:12,490 그것은 스왑 호출하고 스왑 I 번 0 인 경우 여기에 도착하고, 그 다음에, 0에서 시작 543 00:19:12,490 --> 00:19:15,520 난 그냥 계속하는 어리석은 것 앞뒤로 다시 확인하고, 544 00:19:15,520 --> 00:19:16,450 다시, 다시, 오른쪽? 545 00:19:16,450 --> 00:19:18,450 당신은 몇 가지에 박히 때문에 무한 루프의 종류. 546 00:19:18,450 --> 00:19:21,250 0 스왑, 거기에 따라서 자마자 우리는이 주장 할 수 547 00:19:21,250 --> 00:19:23,810 알고리즘은 참으로 완료됩니다. 548 00:19:23,810 --> 00:19:25,400 >> 자, 이것에 이름을 올려 놓을 수 있습니다. 549 00:19:25,400 --> 00:19:28,930 난 그냥 우리가 제안하는 알고리즘 거품이라는 것을이 구현 되 550 00:19:28,930 --> 00:19:32,800 의미 등으로 알려진 종류, 그 큰 종류입니다 수 551 00:19:32,800 --> 00:19:37,990 정상까지 거품 그들의 방법을, 또는 최대 숫자의 배열의 끝에. 552 00:19:37,990 --> 00:19:40,270 하지만이 알고리즘은 얼마나 효율적입니까? 553 00:19:40,270 --> 00:19:44,600 나는 육체적으로 얼마나 많은 단계 있었나요 이러한 정렬, 예를 들어, 수행 554 00:19:44,600 --> 00:19:45,850 일곱 사람? 555 00:19:45,850 --> 00:19:48,560 556 00:19:48,560 --> 00:19:49,550 >> 4 ~ 5 개? 557 00:19:49,550 --> 00:19:51,420 OK, 너무 많은 궁극적으로 해답이 될 것. 558 00:19:51,420 --> 00:19:54,960 하지만 그렇다하더라도, 특정한 수 너무 재미없는 것입니다. 559 00:19:54,960 --> 00:19:56,670 의가 N으로 일반화 할 수 있습니다. 560 00:19:56,670 --> 00:20:00,520 여기 사람들을 N, 그리고 그들이 있었다면 그래서 에서 임의의 순서, 정렬,이었다 561 00:20:00,520 --> 00:20:02,180 그 원래의 순서대로 시작. 562 00:20:02,180 --> 00:20:04,910 글쎄, 얼마나 많은 단계를 내가 있었나요 첫 번째 패스에 걸릴? 563 00:20:04,910 --> 00:20:09,810 그것은 하나, 둘, 셋, 넷, 다섯 살 이렇게 여섯, 그들은 일곱 사람들이야, 564 00:20:09,810 --> 00:20:13,670 그 여섯 일곱의 - N의 있도록 뺀 처음 단계를 반복합니다. 565 00:20:13,670 --> 00:20:16,280 >> 지금, 얼마나 많은 단계를 내가 있었나요 내가 되 감아 때 수행 할? 566 00:20:16,280 --> 00:20:19,310 음, 우리는 실제로 두 수있는 경우 우리가 정말하고 싶어하지만 지금은, 난 567 00:20:19,310 --> 00:20:22,300 다만, 모든 권리를 말하는 것 다른 N - 1. 568 00:20:22,300 --> 00:20:25,240 그래서 N 1을 뺀 얻을 것입니다 을 추적하는 성가신, 그래서 보자 569 00:20:25,240 --> 00:20:26,400 단지 약간 올림. 570 00:20:26,400 --> 00:20:27,770 그래서 2N 단계. 571 00:20:27,770 --> 00:20:29,310 그래서 14 단계 주거나 가라. 572 00:20:29,310 --> 00:20:31,930 >> 나는 얼마나 많은 시간이 걸릴 않았다 단계 다음 시간은? 573 00:20:31,930 --> 00:20:33,740 음, 3N이다. 574 00:20:33,740 --> 00:20:34,510 정말. 575 00:20:34,510 --> 00:20:37,920 그리고 지금, 최악의 경우에 대한 예, 얼마나 많은 시간 나는 것 576 00:20:37,920 --> 00:20:41,730 앞뒤로, 앞뒤로 사라 스와핑이 알고리즘을 실행 577 00:20:41,730 --> 00:20:44,620 각 패스에 사람들이 대략? 578 00:20:44,620 --> 00:20:47,720 579 00:20:47,720 --> 00:20:50,010 그것은 실제로 오른쪽 제곱 보군? 580 00:20:50,010 --> 00:20:53,000 >> 최악의 경우, 당신은 어떤 수 있기 때문에 직관적으로 생각의, 581 00:20:53,000 --> 00:20:54,800 조금을하더라도 안으로 침몰하는 시간 좀 582 00:20:54,800 --> 00:20:57,590 최악의 경우, 어떤 것이 칠명이에처럼 보였다 583 00:20:57,590 --> 00:21:00,230 배열의 측면 해당 번호? 584 00:21:00,230 --> 00:21:01,460 완전히 거꾸로, 오른쪽? 585 00:21:01,460 --> 00:21:02,815 그냥, 그렇게 시뮬레이션 이름이 뭐였더라? 586 00:21:02,815 --> 00:21:03,360 >> 마이크 : 마이크. 587 00:21:03,360 --> 00:21:03,640 >> DAVID J. 마란 : 마이크? 588 00:21:03,640 --> 00:21:08,100 OK, 마이크, 당신은 저를 통해 가입 할 수 있습니다 여기에 단지 하나의 초? 589 00:21:08,100 --> 00:21:08,880 사실, 아니. 590 00:21:08,880 --> 00:21:10,150 죄송합니다, 마이크하자 되감기. 591 00:21:10,150 --> 00:21:10,910 이름이 뭐였더라? 592 00:21:10,910 --> 00:21:11,180 >> NEIL : 닐. 593 00:21:11,180 --> 00:21:11,640 >> DAVID J. 마란 : 닐. 594 00:21:11,640 --> 00:21:13,750 OK, 닐, 당신은 함께 나, 당신이 괜찮다면. 595 00:21:13,750 --> 00:21:17,150 그래서 난 그냥 위해 제시하는거야 단순, 그 닐은 자신에 지금있다 596 00:21:17,150 --> 00:21:18,510 최악의 케이스. 597 00:21:18,510 --> 00:21:20,720 하지만 구현 방법에 대해 리콜 내 알고리즘입니다. 598 00:21:20,720 --> 00:21:24,530 나는 비교 비교 비교 해요 오, 비교, 비교. 599 00:21:24,530 --> 00:21:26,640 지금이 사람은 밖으로있다 순서, 그래서 수정합니다. 600 00:21:26,640 --> 00:21:27,980 그래서 너희들은 교환하십시오. 601 00:21:27,980 --> 00:21:31,630 그러나 얼마나 멀리, 지금 고려 닐 가야합니까? 602 00:21:31,630 --> 00:21:32,690 그것은 대략 보군. 603 00:21:32,690 --> 00:21:33,570 당신도 알다시피, 그것은 실제로 n을 아니에요. 604 00:21:33,570 --> 00:21:36,040 그것은 같은 N - 1,하지만 난 받고 있어요 약간의 짜증을 추적 605 00:21:36,040 --> 00:21:37,550 번호, 그럼 그냥 n이 호출 할 수 있습니다. 606 00:21:37,550 --> 00:21:42,860 >> 닐은 최대로 한 단계 각 이동 그렇다면 시간, 닐 한 단계 이동합니다, 607 00:21:42,860 --> 00:21:46,580 나는이 정말 지루한 패스를 확인해야합니다 앞뒤로,이 약입니다 608 00:21:46,580 --> 00:21:52,080 이 일을, N 단계 N 배의 총 그것은 나를 걸릴 것 때문 609 00:21:52,080 --> 00:21:55,820 여러 단계 닐 모두를 얻을 수있는 그가 속한 곳으로가는 길. 610 00:21:55,820 --> 00:21:58,620 다른 사람은 말할 것도 당신들 경우 뿐만 아니라 모든 잘못 주문했다. 611 00:21:58,620 --> 00:22:01,100 >> 그럼 거품 정렬 N 제곱를 호출 할 수 있습니다. 612 00:22:01,100 --> 00:22:04,860 이 알고리즘의 실행 시간, 이 알고리즘의 성능 613 00:22:04,860 --> 00:22:07,120 이 알고리즘의 효율성, 우리는 단지 더 서술해야한다 614 00:22:07,120 --> 00:22:08,800 n은 네모 일반적으로. 615 00:22:08,800 --> 00:22:11,650 내가 할 수 있기 때문에 어느, 좋은 팔명, 아홉과 같은 예제 616 00:22:11,650 --> 00:22:15,450 사람 만 명, 그 대답은 변경하지 않을 것입니다. 617 00:22:15,450 --> 00:22:18,870 >> 너희들이 상관 없어, 그래서 만약하자 당신이 시작 위치로 재설정합니다. 618 00:22:18,870 --> 00:22:22,510 그리고하자 다른 두 가지 방법을 시도하고 우리는 근본적으로 할 수 있는지 확인 619 00:22:22,510 --> 00:22:23,820 이보다 더. 620 00:22:23,820 --> 00:22:27,130 이 시간 그래서, 내가 제안하는거야 다른 알고리즘의 일종. 621 00:22:27,130 --> 00:22:29,950 즉, 마지막으로 우리의 매우 영리 그리고 너희들을 가지고 옳았다 622 00:22:29,950 --> 00:22:32,470 다만 어떤 종류의 권리 본능 쌍을 스왑. 623 00:22:32,470 --> 00:22:36,500 하지만 난 정말이 접근하기를 원한다면 단순히 내 목표는 이동하는 것입니다 624 00:22:36,500 --> 00:22:39,800 작은 숫자 모두이 방법과 그 큰 숫자를 모두 밀어 625 00:22:39,800 --> 00:22:43,030 방법, 왜 난 그냥에 해당하지 않는다 대부분의 방법은 가능한 순진하고 볼 경우, I 626 00:22:43,030 --> 00:22:45,730 무슨보다 더 할 수 매우 복잡한 알고리즘을? 627 00:22:45,730 --> 00:22:46,620 >> 그럼 보자. 628 00:22:46,620 --> 00:22:48,940 네 아주 작은 숫자입니다, 그래서 난 이 순간 당신을 떠나려고. 629 00:22:48,940 --> 00:22:50,610 우, 두 번째는 더 나은 것입니다. 630 00:22:50,610 --> 00:22:52,230 그래서 그냥 앞으로 단계를 수 순간? 631 00:22:52,230 --> 00:22:55,670 이것은 현재 내 작은 번호가 후보, 내가 기억하는거야 632 00:22:55,670 --> 00:22:57,000 그 변수 좋아 함께. 633 00:22:57,000 --> 00:22:57,930 그러나 나는 계속 확인하겠습니다. 634 00:22:57,930 --> 00:22:59,890 그 누군가가 번호가 작을? 635 00:22:59,890 --> 00:23:00,460 여섯, 아니. 636 00:23:00,460 --> 00:23:01,390 아, 다시 닐있다. 637 00:23:01,390 --> 00:23:04,050 >> 그래서 난 당신을 다시 밀어거야 일종의 개념의. 638 00:23:04,050 --> 00:23:05,120 닐 앞으로 올 것이다. 639 00:23:05,120 --> 00:23:08,440 그리고 지금, 나는에 변수를 사용 해요 작은있는 사람을 추적 640 00:23:08,440 --> 00:23:11,390 번호를 포함하도록 업데이트됩니다 닐의 위치. 641 00:23:11,390 --> 00:23:12,110 음, 어디 보자. 642 00:23:12,110 --> 00:23:13,960 세, 일곱, 다섯. 643 00:23:13,960 --> 00:23:15,590 좋아, 내가 닐 작은 있었는지. 644 00:23:15,590 --> 00:23:18,110 가장 간단한 것은 무엇입니까 내가 지금 할 수 있습니까? 645 00:23:18,110 --> 00:23:21,410 난 그냥으로 내 시간을 낭비하지 않을 것이다 왼쪽 닐 한 자리를 버블 링. 646 00:23:21,410 --> 00:23:25,350 왜 그냥 닐 두지 않는다 그가 어디에 속 어느 곳 물론입니까? 647 00:23:25,350 --> 00:23:26,160 >> 처음에 모든 방법. 648 00:23:26,160 --> 00:23:27,720 닐, 그래서 나와 함께. 649 00:23:27,720 --> 00:23:28,910 그리고 당신 이름이 뭐 랬지? 650 00:23:28,910 --> 00:23:29,310 >> GRACE : 그레이스. 651 00:23:29,310 --> 00:23:29,710 >> DAVID J. 마란 : 그레이스. 652 00:23:29,710 --> 00:23:29,920 확인을 클릭합니다. 653 00:23:29,920 --> 00:23:32,490 그레이스 그래서, 불행하게도, 당신이있어 방법의 종류입니다. 654 00:23:32,490 --> 00:23:34,290 그렇다면 우리는 어떻게이 문제를 해결합니까? 655 00:23:34,290 --> 00:23:34,490 오른쪽? 656 00:23:34,490 --> 00:23:37,500 이 배열 인 경우, 거기에 맥도널드 위치. 657 00:23:37,500 --> 00:23:40,830 롭과 그 리콜, 우리는 이야기 나이를 선언하고, 우리는했다 658 00:23:40,830 --> 00:23:41,740 나이의 유한 수? 659 00:23:41,740 --> 00:23:42,535 여기에 같은 생각. 660 00:23:42,535 --> 00:23:44,300 우리는 단지 정수의 유한 수 있습니다. 661 00:23:44,300 --> 00:23:47,590 은혜는 우리의 종류의 수 있습니다 방법으로, 우리는 어떻게 문제를 해결합니까? 662 00:23:47,590 --> 00:23:49,555 >> 가장 간단한 방법은 같다 은혜, 죄송합니다. 663 00:23:49,555 --> 00:23:51,870 당신이 가서해야 할 것입니다 그래서 우리는 방을 거기에 만들 수 있습니다. 664 00:23:51,870 --> 00:23:55,290 지금, 당신은 아마 이것에 대해 생각하면 우리는 단지 문제를 더 악화했다. 665 00:23:55,290 --> 00:23:58,510 그리고 어쩌면 우리가 무슨 짓을하는 경우 때문에 은총은 바로 이곳에 있었다? 666 00:23:58,510 --> 00:24:01,730 그러나 우리는 그녀가 있기 때문에, 아니 알고 그렇지 않으면, 그녀는했을 것이다 667 00:24:01,730 --> 00:24:03,980 앞으로 서 대신 이 시간에 닐, 오른쪽? 668 00:24:03,980 --> 00:24:05,550 우리는 이미 그녀의 수를 체크 아웃. 669 00:24:05,550 --> 00:24:05,770 >> 좋아. 670 00:24:05,770 --> 00:24:09,110 이제, 닐은 바로 이곳에서, 그리고 나는 약간의 최적화를 수행 할 수 있습니다. 671 00:24:09,110 --> 00:24:11,740 다음 순간을 위해, 나는 무시하는거야 되지 않도록하기 위해 함께 닐 모든 672 00:24:11,740 --> 00:24:15,280 자신의 시간을 낭비하거나 실수 잘못된 장소에 그를 교체하십시오. 673 00:24:15,280 --> 00:24:17,805 그래서 지금, 내가 어떻게 다음을 찾을 수 있습니까 최소의 요소? 674 00:24:17,805 --> 00:24:18,480 두. 675 00:24:18,480 --> 00:24:20,225 경우 즉, 꽤 좋은 번호의 당신은 앞으로 족답하고 싶​​어 676 00:24:20,225 --> 00:24:21,100 나는 당신을 기억합니다. 677 00:24:21,100 --> 00:24:21,980 여섯, 아니 좋은. 678 00:24:21,980 --> 00:24:24,820 네, 세, 일곱, 다섯, 아니 좋은. 679 00:24:24,820 --> 00:24:26,800 그래서 당신은에 저를 이동할 수 오른쪽 장소입니다. 680 00:24:26,800 --> 00:24:28,470 그리고 우리는 그냥이 시간 운 얻었다. 681 00:24:28,470 --> 00:24:31,350 >> 지금, 나는이 무시하는거야 두 사람, 이제 하나 더 많은 일을 할 682 00:24:31,350 --> 00:24:32,260 이 통과한다. 683 00:24:32,260 --> 00:24:33,490 여섯, 그 아주 작은 숫자입니다. 684 00:24:33,490 --> 00:24:34,300 앞으로 가자. 685 00:24:34,300 --> 00:24:35,220 아, 죄송합니다. 686 00:24:35,220 --> 00:24:37,640 그레이스의 숫자가 더 낫다 그래서 앞으로의 단계. 687 00:24:37,640 --> 00:24:38,260 네. 688 00:24:38,260 --> 00:24:39,120 죄송합니다, 그레이스. 689 00:24:39,120 --> 00:24:39,950 다시 이동합니다. 690 00:24:39,950 --> 00:24:41,550 세 번째는 더 낫다. 691 00:24:41,550 --> 00:24:42,290 일곱. 692 00:24:42,290 --> 00:24:42,720 다섯. 693 00:24:42,720 --> 00:24:43,550 지금 당신의 이름을 다시 무엇인가? 694 00:24:43,550 --> 00:24:44,000 >> 제이슨 : 제이슨. 695 00:24:44,000 --> 00:24:44,420 >> DAVID J. 마란 : 제이슨. 696 00:24:44,420 --> 00:24:47,050 그래서 제이슨은 이제 가장 작은 요소 내가 선택한. 697 00:24:47,050 --> 00:24:49,160 그는 어디로 가고거야? 698 00:24:49,160 --> 00:24:50,380 어디 여섯입니다. 699 00:24:50,380 --> 00:24:51,210 그리고 당신의 이름은 또 무엇입니까? 700 00:24:51,210 --> 00:24:51,710 >> 게이브 : 게이브. 701 00:24:51,710 --> 00:24:52,340 >> DAVID J. 마란 : 게이브. 702 00:24:52,340 --> 00:24:53,220 게이브 방법입니다. 703 00:24:53,220 --> 00:24:54,640 할 수있는 가장 쉬운 일이 무엇입니까? 704 00:24:54,640 --> 00:24:58,390 이 두 사람을 교체하고 계속합니다. 705 00:24:58,390 --> 00:24:59,020 그래서 지금 보자. 706 00:24:59,020 --> 00:25:00,170 누가 작은입니까? 707 00:25:00,170 --> 00:25:01,030 네. 708 00:25:01,030 --> 00:25:01,990 나 속임수, 그냥하자. 709 00:25:01,990 --> 00:25:03,090 다섯 작은 될 것입니다. 710 00:25:03,090 --> 00:25:05,220 당신이 단계 싶으면, 다음 찾기 앞으로 내가 함께 무엇을해야합니까 711 00:25:05,220 --> 00:25:06,820 게이브와이 녀석? 712 00:25:06,820 --> 00:25:08,450 다시 교환하십시오. 713 00:25:08,450 --> 00:25:10,740 그래서 지금, 여전히 약간 순서가. 714 00:25:10,740 --> 00:25:14,140 나는 게이브 그래서 작은 것으로 발견 나는 그를 튀어 너희들을 통해 이동합니다. 715 00:25:14,140 --> 00:25:15,190 그리고 다. 716 00:25:15,190 --> 00:25:17,200 >> 그래서 대답은 동일합니다. 717 00:25:17,200 --> 00:25:18,600 최종 결과는 동일합니다. 718 00:25:18,600 --> 00:25:22,730 이 두 알고리즘 중 어느 더 나은 무엇입니까? 719 00:25:22,730 --> 00:25:23,500 두 번째는, 내가 들었다. 720 00:25:23,500 --> 00:25:24,252 왜? 721 00:25:24,252 --> 00:25:25,900 >> 스피커 3 : 그것은 단계 [INAUDIBLE]를 보군. 722 00:25:25,900 --> 00:25:27,600 >> DAVID J. 마란 : 그것은 대부분의 N 단계이다. 723 00:25:27,600 --> 00:25:28,490 흥미 롭군요. 724 00:25:28,490 --> 00:25:30,610 그래서 비록입니까? 725 00:25:30,610 --> 00:25:33,630 그래서 내가 어떻게 찾았어요 작은 요소? 726 00:25:33,630 --> 00:25:37,060 얼마나 많은 단계를 내가 가지고 가야 않았다 작은 요소를 찾을? 727 00:25:37,060 --> 00:25:39,220 나는 모든 방법을보고했다 끝에서 오른쪽? 728 00:25:39,220 --> 00:25:41,530 그 최악의 경우, 무엇 때문에 닐은 여기 있다면? 729 00:25:41,530 --> 00:25:45,700 그래서 그냥 작은 요소를 찾아 나 N 단계, 또는 n에서 1을 뺀 걸립니다. 730 00:25:45,700 --> 00:25:46,100 하지만, 확인을 클릭합니다. 731 00:25:46,100 --> 00:25:46,980 그래서 닐 고정합니다. 732 00:25:46,980 --> 00:25:48,740 , 1 분 정도 전 그 기억. 733 00:25:48,740 --> 00:25:51,680 >> 그러나 어떻게 나는 다음을 찾았어요 작은 요소? 734 00:25:51,680 --> 00:25:54,830 그것은 N - 1, 또는 n 마이너스 정말 2의 단계의 수에서. 735 00:25:54,830 --> 00:25:55,440 그래서 확인을 클릭합니다. 736 00:25:55,440 --> 00:25:57,390 그래서 나는이 마이너스 n을했다. 737 00:25:57,390 --> 00:25:57,600 좋아. 738 00:25:57,600 --> 00:25:59,130 그래서 조금 더 나은 느낌. 739 00:25:59,130 --> 00:25:59,730 좋아. 740 00:25:59,730 --> 00:26:03,270 다음 번에 ​​얼마나 많은 단계 세 번째를 찾는 방법은? 741 00:26:03,270 --> 00:26:04,420 그래서 N 마이너스 4. 742 00:26:04,420 --> 00:26:07,670 그래서 1 이하로 감소하는 것 각 반복에 단계. 743 00:26:07,670 --> 00:26:08,740 그래서 바로 더 나은 기분이? 744 00:26:08,740 --> 00:26:13,450 마지막 경우는 약 n 번 N 있었다 이번에는 N - 1, 플러스 N 마이너스의 745 00:26:13,450 --> 00:26:16,500 2, 플러스 N 마이너스 3 플러스 N 마이너스 4, 점, 점, 점. 746 00:26:16,500 --> 00:26:18,750 하지만 당신은 고등학교를 호출하는 경우 교과서, 약간의 속임수 747 00:26:18,750 --> 00:26:24,380 수식을 가지고 뒤에 시트, 경우 당신은 숫자의이 시리즈를 추가 748 00:26:24,380 --> 00:26:31,280 단계의 총 개수는 무엇입니까 여기 걸릴 예정? 749 00:26:31,280 --> 00:26:36,580 >> 이것은 그 중 하나, 좋아, n은 마이너스 1, 2로 나눈 시간 없음. 750 00:26:36,580 --> 00:26:39,040 그래서 내가 해낼 수 있다면 어디 보자 잠시이 업. 751 00:26:39,040 --> 00:26:42,230 그리고 또, 내가 라운딩 종류의 일부 해요 숫자는 단지 우리의 생활을 간단하게하기 위해 752 00:26:42,230 --> 00:26:47,830 하지만 내 기억으로는, 그것은 경우처럼 뭔가 그 다음, n은 1을 뺀 작업을 수행 N 마이너스 753 00:26:47,830 --> 00:26:53,570 2, 다음 N 마이너스 3, 그것은 대략의 2를 통해이 같은, 그리고 만약 내가 754 00:26:53,570 --> 00:26:55,510 이것을 곱, 그게 실제로 N 광장. 755 00:26:55,510 --> 00:26:58,940 그것도 좋은 느낌 아니에요. 2에 N을 뺀 없음. 756 00:26:58,940 --> 00:27:00,350 >> 그러나 여기 것입니다. 757 00:27:00,350 --> 00:27:03,720 컴퓨터 과학, 문제 n을 때 흥미로운 얻을 시작이다 758 00:27:03,720 --> 00:27:04,700 정말 큰 가져옵니다. 759 00:27:04,700 --> 00:27:08,110 의 n은 정말 커질 때, 그 이러한 값은 모두를 지배하는 것입니다 760 00:27:08,110 --> 00:27:09,750 다른 사람? 761 00:27:09,750 --> 00:27:10,990 그것은 바로, 제곱 N의 일종인가요? 762 00:27:10,990 --> 00:27:13,340 예, 2로 나누어 것은 아주 좋은 것입니다. 763 00:27:13,340 --> 00:27:16,740 하지만 당신은 수십억에 대해 얘기하는 경우 데이터의 조각, 또는 수조 764 00:27:16,740 --> 00:27:18,700 데이터의 조각, 그래, 당신은 두 배 빠르다. 765 00:27:18,700 --> 00:27:22,440 하지만 누가 정말 그 큰 숫자면 걱정 이 요인은 얻는 것입니다 경우 766 00:27:22,440 --> 00:27:23,040 커지고. 767 00:27:23,040 --> 00:27:25,990 확실하게, 그것은 더 있습니다 이 사람보다 차이. 768 00:27:25,990 --> 00:27:29,120 너희들이 맞아 그렇게하더라도, 두 번째 알고리즘, 우리는 그것을 전화 할게 769 00:27:29,120 --> 00:27:32,970 선택 정렬, 현실 세계에서,이다 빠른 비트 잠재적으로, 내가 있기 때문에 770 00:27:32,970 --> 00:27:35,360 복용 줄어들고 각 시간 단계를 반복합니다. 771 00:27:35,360 --> 00:27:37,340 >> 정말 근본적으로 빠른 아니다. 772 00:27:37,340 --> 00:27:41,430 때문에 우리는 실제로이를 연주하면 끝의 N 큰 값 773 00:27:41,430 --> 00:27:44,750 일, 충분히 큰 n에, 그것은 여전히 매우 느린 느낄 것. 774 00:27:44,750 --> 00:27:46,770 음, 저를 보자 그 마침내 전달합니다. 775 00:27:46,770 --> 00:27:48,920 그게 내가 부를 것이다 무엇 선택 정렬. 776 00:27:48,920 --> 00:27:51,040 너희들은 스스로를 재설정 할 수 있습니다 마지막으로 한 번 더? 777 00:27:51,040 --> 00:27:53,550 이 마지막 경우는거야 뭔가를 제안하기 778 00:27:53,550 --> 00:27:54,970 삽입 정렬을했다. 779 00:27:54,970 --> 00:27:57,470 삽입 정렬이되고, 개념, 조금 다른. 780 00:27:57,470 --> 00:28:00,980 >> 앞뒤로가는 것이 아니라 작은 요소를 선택 해요 781 00:28:00,980 --> 00:28:05,030 다만 이들의 각각을 다루는 것 내가 그들을 발생하고, 삽입 할 사람 782 00:28:05,030 --> 00:28:06,850 그들 자신의 올바른 위치에. 783 00:28:06,850 --> 00:28:10,160 그래서 난 그냥, 그레이스 시작하는거야 그리고 그녀가 네 번째의 것을 볼 수 있습니다. 784 00:28:10,160 --> 00:28:11,720 네 번째는 어디에 속합니까? 785 00:28:11,720 --> 00:28:14,940 나는 무엇을 정렬 시작하지 않은 그래서 그레이스는 바로 거기에 숙박을 가져옵니다. 786 00:28:14,940 --> 00:28:18,355 당신은 수 있다면 지금은 항거야 이, 오른쪽에 조치를 취할 787 00:28:18,355 --> 00:28:21,650 내 정렬 된 목록이 내입니다 분류되지 않은 나머지 목록입니다. 788 00:28:21,650 --> 00:28:23,260 그래서 지금 난 다음에 진행하겠습니다 당신의 이름이 뭐였더라? 789 00:28:23,260 --> 00:28:23,700 >> BRANSON 브랜슨. 790 00:28:23,700 --> 00:28:24,150 >> DAVID J. 마란 : 브랜슨. 791 00:28:24,150 --> 00:28:25,375 그래서 브랜슨 두 번째이다. 792 00:28:25,375 --> 00:28:27,490 그래서 내가 당신을 데려 갈거야 순간을 위해 밖으로. 793 00:28:27,490 --> 00:28:30,940 그리고 지금, 당신은 어디에 속하십니까 이 배열? 794 00:28:30,940 --> 00:28:32,360 그래서 은혜의 오른쪽에. 795 00:28:32,360 --> 00:28:35,670 그래서 다시 우리가 만드는 친절 그레이스는 여기에서 많은 작업을 수행합니다. 796 00:28:35,670 --> 00:28:37,290 우리는 당신을 어디에 배치해야합니까? 797 00:28:37,290 --> 00:28:40,120 그래서 우리는 당신을 밀어거야 왼쪽, 거기 브랜슨를 삽입합니다. 798 00:28:40,120 --> 00:28:41,680 하지만 지금은 주장하는 너희들이 완료됩니다. 799 00:28:41,680 --> 00:28:43,240 하지만, 통지, 나는 여분의 공간을 사용하지 않을거야. 800 00:28:43,240 --> 00:28:45,130 그것은 여전히​​ 2 요소의 여기, 여기 5. 801 00:28:45,130 --> 00:28:47,910 전체 배열의 크기는 7이다, 그래서 난 모든 권리, 부정 행위하지? 802 00:28:47,910 --> 00:28:51,950 >> 그래서 지금 우리는 여기에 게이브로,이 6 번, 당신은 어디에 속하십니까? 803 00:28:51,950 --> 00:28:52,650 다시 운이 좋았어요. 804 00:28:52,650 --> 00:28:53,820 그래서 당신은 거기 숙박을 얻는다. 805 00:28:53,820 --> 00:28:57,210 그냥 오른쪽으로 약간의 조치를 취할 당신이 정렬하는 것을 명확하게한다. 806 00:28:57,210 --> 00:29:00,520 그리고 지금 우리는 다시 번호 닐이 한, 당신은 어디로 가야합니까? 807 00:29:00,520 --> 00:29:03,540 우리가 볼 수 시작합니다 어디 지금은 하지만 처음에이 알고리즘, 808 00:29:03,540 --> 00:29:05,950 눈이 꽤 똑똑한 느낌의 시계 일어날 대해거야. 809 00:29:05,950 --> 00:29:07,370 당신은 앞으로 단계를 수 있다면. 810 00:29:07,370 --> 00:29:09,260 >> 우리는 어디 닐를 넣어 하시겠습니까? 811 00:29:09,260 --> 00:29:11,830 그래서 분명히 여기에 어떻게 우리가 닐을받을 수 있나요? 812 00:29:11,830 --> 00:29:12,970 이 단계 - 의해 - 단계를 수행하자. 813 00:29:12,970 --> 00:29:15,620 당신이 갈 필요 게이브? 814 00:29:15,620 --> 00:29:19,590 네, 그래서 하나의 큰 걸음 또는 두 개의 반 단계를 만들려면 815 00:29:19,590 --> 00:29:20,820 거기에 한 단계. 816 00:29:20,820 --> 00:29:21,750 당신이 가서 은혜? 817 00:29:21,750 --> 00:29:22,510 좋아요. 818 00:29:22,510 --> 00:29:23,500 또 다른 단계 그래서. 819 00:29:23,500 --> 00:29:24,960 그리고 마지막으로, 브랜슨? 820 00:29:24,960 --> 00:29:25,460 다른 단계. 821 00:29:25,460 --> 00:29:27,190 그리고 지금 우리 자리에 닐을 넣을 수 있습니다. 822 00:29:27,190 --> 00:29:28,440 >> 그래서 지금,이 논리를 계속합니다. 823 00:29:28,440 --> 00:29:32,420 우리는 닐를 이동하지 않더라도 이상과 이상, 그리고 그 이상을 넣어 824 00:29:32,420 --> 00:29:36,420 그는 최악의 경우,가는 곳, 우리는 발생할 수있는 다음 번호 수 825 00:29:36,420 --> 00:29:42,220 숫자, 말, 수 있었다 제로, 우리는 모두 이동하는 것입니다 826 00:29:42,220 --> 00:29:42,730 이 녀석. 827 00:29:42,730 --> 00:29:44,950 숫자, 음수가 있다고 가정 하나, 우리는 변화해야 828 00:29:44,950 --> 00:29:46,080 이 사람의. 829 00:29:46,080 --> 00:29:48,500 그래서 우리는 정말 내리고, 그냥있어 우리가있어되도록 주변의 문제 830 00:29:48,500 --> 00:29:52,620 에서 비용을 전송 선정 과정 때문에 삽입 831 00:29:52,620 --> 00:29:56,930 너희들은 그냥 가지고 그런 과정 대략 N 마이너스 뭔가를 이동합니다 832 00:29:56,930 --> 00:29:57,940 단계의 수. 833 00:29:57,940 --> 00:30:01,200 그리고 단계의 수는 것입니다 좀 더 번호를 선택으로 높이려면, 834 00:30:01,200 --> 00:30:04,730 난 너희들을 밀어 유지해야하는 경우 다시, 다시, 다시. 835 00:30:04,730 --> 00:30:08,320 >> 그래서 슬픈 것은 지금이 모든 것입니다 알고리즘은 제곱 n을합니다. 836 00:30:08,320 --> 00:30:10,570 자, 가서 감사에에 사람, 이러한 비트를 시각화 837 00:30:10,570 --> 00:30:11,090 다른. 838 00:30:11,090 --> 00:30:12,312 아주 잘 했어. 839 00:30:12,312 --> 00:30:14,120 >> [박수] 840 00:30:14,120 --> 00:30:15,030 >> 좋아. 841 00:30:15,030 --> 00:30:16,280 거기 당신은 간다. 842 00:30:16,280 --> 00:30:18,390 843 00:30:18,390 --> 00:30:18,470 주셔서 감사합니다 - 844 00:30:18,470 --> 00:30:19,190 >> BRANSON : [들림] 숫자를 유지합니다. 845 00:30:19,190 --> 00:30:21,990 >> DAVID J. 마란 : 아니, 당신은 할 수있다 뿐만 아니라 숫자를 유지합니다. 846 00:30:21,990 --> 00:30:23,440 좋아. 847 00:30:23,440 --> 00:30:24,100 잘 했어. 848 00:30:24,100 --> 00:30:25,300 좋아. 849 00:30:25,300 --> 00:30:30,510 그래서 우리는 지금 요약 할 수없는 경우 보자 더 빨리, 그리고 더 시각적으로, 850 00:30:30,510 --> 00:30:33,410 정확히 방금 무슨 일이 일어난 여기서 다음과 같습니다. 851 00:30:33,410 --> 00:30:36,510 852 00:30:36,510 --> 00:30:38,770 내가 먼저 갈거야 파이어 폭스를 당깁니다. 853 00:30:38,770 --> 00:30:41,310 우리는이 데모를 연결합니다 과정의 웹 사이트에. 854 00:30:41,310 --> 00:30:43,870 자바는 작업을 진행하게 조금 성가신 일부 브라우저 요즘합니다. 855 00:30:43,870 --> 00:30:46,760 당신은 집에서 놀 않는 경우에, 당신이 파이어 폭스를 사용할 필요가 있습니다 실현 856 00:30:46,760 --> 00:30:47,990 이 작업을 얻을 수 있습니다. 857 00:30:47,990 --> 00:30:50,440 그리고 내가이 함께 할거야 데모는 다음과 같습니다. 858 00:30:50,440 --> 00:30:54,875 >> 아래에, 나는의 전체 무리가 시작과 등의 메뉴 옵션 859 00:30:54,875 --> 00:30:55,840 버튼을 중지합니다. 860 00:30:55,840 --> 00:30:59,450 또한, 옆으로,있을 것 같습니다 이 프로그램의 버그, 당신이 그것에 861 00:30:59,450 --> 00:31:03,720 실제로 시작을 참조하거나 중지 할 수 없습니다 당신은 명령 또는 Alt를 누른 버튼 않는 862 00:31:03,720 --> 00:31:06,560 플러스와 확대, 호기심 당신에게 더 많은 버튼이 표시됩니다. 863 00:31:06,560 --> 00:31:09,090 당신이 연주하면, 그래서 그냥 FYI 이 집에서. 864 00:31:09,090 --> 00:31:12,870 지금은 단지에서 시작을 클릭거야 순간의 지연을 지정한 후, 865 00:31:12,870 --> 00:31:16,810 여기에 200 밀리 초 같은 단지 그래서 우리는 어떻게 볼 수 있습니다. 866 00:31:16,810 --> 00:31:20,180 >> 그래서 나는이 시각화 주장 첫 번째 알고리즘의 867 00:31:20,180 --> 00:31:23,730 이 녀석은 버블 정렬, 그것에, 한 우리는 사람들이 짝을 스왑. 868 00:31:23,730 --> 00:31:27,490 이 시각화에 대한 통찰력 즉 막대의 높이 869 00:31:27,490 --> 00:31:30,510 숫자의 크기를 나타냅니다. 870 00:31:30,510 --> 00:31:32,210 키가 막대하므로, 큰 숫자입니다. 871 00:31:32,210 --> 00:31:33,680 짧은 막대, 숫자 작은. 872 00:31:33,680 --> 00:31:38,630 당신이 알 경우에, 우리는을거야 이 알고리즘의 첫 번째 반복, 873 00:31:38,630 --> 00:31:42,620 그래서, 큰 및 작은 숫자를 교환 작은 숫자가 먼저 온다 874 00:31:42,620 --> 00:31:44,280 큰 숫자는 오른쪽으로 이동합니다. 875 00:31:44,280 --> 00:31:48,770 >> 그리고 곧 우리가 배열의 끝을 받으면 일곱보다 더 많은 숫자, 우리는거야 876 00:31:48,770 --> 00:31:49,900 처음으로 되돌아 갈 예정. 877 00:31:49,900 --> 00:31:51,140 그리고이 예상된다. 878 00:31:51,140 --> 00:31:54,860 맨 왼쪽에, 그 작은 녀석이야 옆으로 스왑이하는 879 00:31:54,860 --> 00:31:56,010 과정을 반복. 880 00:31:56,010 --> 00:31:59,450 이제 시각화를 신속하게 얻을 수 지루한, 그럼 내가 가서 멈추게 881 00:31:59,450 --> 00:32:04,170 그것은 많은 지연 무언가를 변경 빠른 다만, 지금에 대한 느낌을 얻을 수 882 00:32:04,170 --> 00:32:05,060 이 알고리즘. 883 00:32:05,060 --> 00:32:07,840 >> 나는 그것을 가속화했다 그래서 비록이는 구매, 내 프로세서를 업그레이드 같은 884 00:32:07,840 --> 00:32:08,580 새 컴퓨터. 885 00:32:08,580 --> 00:32:12,980 나는 근본적으로 변경되지 않은 내 알고리즘,하지만 당신은 실제로 더 많은 것을 볼 수 있습니다 886 00:32:12,980 --> 00:32:16,800 분명히 인간보다 그 큰 숫자는 정상까지 버블 링 887 00:32:16,800 --> 00:32:20,900 그리고 작은 숫자가 버블 링 아래로 아래로. 888 00:32:20,900 --> 00:32:22,390 그리고 지금이 일을 여기에 분류. 889 00:32:22,390 --> 00:32:25,260 그리고 옆으로, 사각형, 거기에 거기에 그냥 부기 890 00:32:25,260 --> 00:32:28,010 당신은 얼마나 많은 비교를 계산하는 데 도움이 또는 얼마나 많은 스왑이 891 00:32:28,010 --> 00:32:28,950 실제로 완료되었습니다. 892 00:32:28,950 --> 00:32:30,750 >> 음, 중 하나를 해보자 다른 사람 우리는 보았다. 893 00:32:30,750 --> 00:32:37,116 내가 여기서 버블 정렬을 클릭시키고, 나를 선택할 수 있습니다,이 전체 웹 페이지 894 00:32:37,116 --> 00:32:38,936 약간의 버그입니다. 895 00:32:38,936 --> 00:32:41,155 의는 위험을 감수하자 하고 다시 실행합니다. 896 00:32:41,155 --> 00:32:44,560 897 00:32:44,560 --> 00:32:45,030 거기 우리는 간다. 898 00:32:45,030 --> 00:32:47,180 그래서 선택 정렬을 수행하자. 899 00:32:47,180 --> 00:32:49,140 나도 몰라 왜 메뉴 거기가 나타납니다. 900 00:32:49,140 --> 00:32:54,070 이 문제를 해결하려면의 확대하자 버그, 50로 변경. 901 00:32:54,070 --> 00:32:56,020 아, 실제로하자 훨씬 더 빨리합니다. 902 00:32:56,020 --> 00:32:59,160 다섯 밀리 초 정도하고 시작합니다. 903 00:32:59,160 --> 00:33:00,470 >> 그래서 이것은 선택 일종이다. 904 00:33:00,470 --> 00:33:03,070 그래서 다시 우리에 대해 생각 여기에 인간을 위로했다. 905 00:33:03,070 --> 00:33:08,490 우리는 배열을 통해 가서 선택 다시 작은 요소 906 00:33:08,490 --> 00:33:09,250 다시, 다시. 907 00:33:09,250 --> 00:33:11,110 지금 나는 아직도 꽤 나쁘다고 주장한다. 908 00:33:11,110 --> 00:33:15,010 그것은 여전히​​ 제곱 n을했다, 포기하거나 걸릴 하지만 조금 현실 세계에서,이었다 909 00:33:15,010 --> 00:33:18,280 빨리, 내가 실제로 가지고 있었기 때문에 각 시간 단계 약간 적은. 910 00:33:18,280 --> 00:33:19,800 그러나 우리는 무엇을 말하는 건가요? 911 00:33:19,800 --> 00:33:21,830 여기에 아마 40 정도 바? 912 00:33:21,830 --> 00:33:23,200 우리는 40 만 달러 얘기가 아니에요. 913 00:33:23,200 --> 00:33:27,430 그래서 완전히 나에게 명확하지 않다 그 실제로 상당한 이득이었다. 914 00:33:27,430 --> 00:33:32,530 >> 나 이제 돌아가 우리를 변경할 수 있습니다 선택 된 세 번째 알고리즘 915 00:33:32,530 --> 00:33:33,180 삽입 정렬. 916 00:33:33,180 --> 00:33:36,380 지금은 정말 버그 왜냐하면 메뉴가 정말 거기해서는 안됩니다. 917 00:33:36,380 --> 00:33:40,840 그래서 지금 우리가 여기까지 뒤로 스크롤합니다 이 알고리즘을 시작합니다. 918 00:33:40,840 --> 00:33:43,270 웁 시작 및 중지합니다. 919 00:33:43,270 --> 00:33:47,160 그래서이 한 종류가 꽤 패턴이 그것, 그것에 의하여 우리는 다시이야 920 00:33:47,160 --> 00:33:50,240 인간을 삽입, 또는에 이 경우 막대에 921 00:33:50,240 --> 00:33:52,620 적절한 위치입니다. 922 00:33:52,620 --> 00:33:55,430 그리고 그것은 이전에 이미 끝났어 나는 주위를 돌았 다. 923 00:33:55,430 --> 00:33:58,940 하지만이 하나도 이론, 아직 제곱 n입니다. 924 00:33:58,940 --> 00:34:01,430 >> 그래서 우리는 요약 할 수없는 경우 보자 이러한 다음과 같습니다. 925 00:34:01,430 --> 00:34:04,750 내가 먼저 가서 그냥주는거야 이야기의 일반적인 방법의 우리 종류 926 00:34:04,750 --> 00:34:08,489 이러한 것들에 대한, 나를 소개하자 여기에 표기 단지 조금. 927 00:34:08,489 --> 00:34:12,480 당신이 뭔가 큰이라고 볼 것입니다 O, 그것은 그대로이기 때문에 큰 928 00:34:12,480 --> 00:34:16,320 O. 그리고 그 컴퓨터 방법 과학자 또는 심지어는 사용하는 수학자 929 00:34:16,320 --> 00:34:19,230 실행 시간을 설명하는 어떤 알고리즘. 930 00:34:19,230 --> 00:34:21,400 실제로 얼마나 많은 조치를 취해야합니까? 931 00:34:21,400 --> 00:34:25,080 >> 지금은 나 자신을 난처하게 할거야 여기서 잠시 내 필기. 932 00:34:25,080 --> 00:34:29,020 그러나 내가 가서 그 말을하자 이 여기에 큰 O 될 것입니다. 933 00:34:29,020 --> 00:34:33,610 그리고 내가 다른 하나를 소개하겠습니다 기호, 자본 오메가. 934 00:34:33,610 --> 00:34:37,080 오메가는 그 반대가 될 것입니다 기본적으로, 큰 O 반면 큰 O.의 935 00:34:37,080 --> 00:34:40,790 수단, 최악의 경우, 얼마나 많은 시간이 어떤 알고리즘에 걸릴 수 있습니다 936 00:34:40,790 --> 00:34:43,480 N 약관, 오메가가는 얼마나 많은 시간이 수도 수 937 00:34:43,480 --> 00:34:45,409 최상의 경우에 걸릴. 938 00:34:45,409 --> 00:34:48,090 그리고 우리는 우리가 무엇을 의미하는 볼 수 있습니다 잠시 최고의 케이스. 939 00:34:48,090 --> 00:34:49,940 >> 그래서 뭔가 간단한 시작하자. 940 00:34:49,940 --> 00:34:54,719 나 선형 검색을 시작하자. 941 00:34:54,719 --> 00:34:55,679 그래서 정렬되지 않습니다. 942 00:34:55,679 --> 00:34:58,000 우리는이 선형 검색을 호출 할 수 있습니다. 943 00:34:58,000 --> 00:35:01,140 그리고 지금, 약간을 이 표 중. 944 00:35:01,140 --> 00:35:06,600 그리고 지금, 선형 검색의 경우, 최악의 경우, 얼마나 많은 단계입니다 945 00:35:06,600 --> 00:35:11,770 그것은을 찾아 내게 걸릴 것 임의 선택의 수? 946 00:35:11,770 --> 00:35:14,540 그리고 N 전체 문이있다 또는 n 총 숫자. 947 00:35:14,540 --> 00:35:15,940 최악의 경우. 948 00:35:15,940 --> 00:35:18,800 몇 단계 나에해야 할 것입니다 배열에 숫자 50을 찾기 위해 수행 949 00:35:18,800 --> 00:35:20,830 n 개의 문? 950 00:35:20,830 --> 00:35:21,410 왜? 951 00:35:21,410 --> 00:35:23,680 그것은 모든 수 있으므로 끝에 통해 방법입니다. 952 00:35:23,680 --> 00:35:27,120 제니퍼가 발생 순전히처럼, 숫자 50는, 그래서 모든 방법을 통해이었다 953 00:35:27,120 --> 00:35:30,760 최악의 경우 선형 검색 N의 큰 O, 우리는 말할 것입니다. 954 00:35:30,760 --> 00:35:33,430 >> 무엇 최선의 사건에 대해, 당신은 정말 운이 있다면? 955 00:35:33,430 --> 00:35:36,200 그것은 단지 하나의 조치를 취할 것 단계 또는 상수. 956 00:35:36,200 --> 00:35:37,830 그래서 우리는 1과 그 설명 할 것이다. 957 00:35:37,830 --> 00:35:39,010 그래서 이것은 아주 좋은 것입니다. 958 00:35:39,010 --> 00:35:41,210 이제 우리는 무엇인가 무엇을 한 경우 이진 검색을 좋아해? 959 00:35:41,210 --> 00:35:43,860 960 00:35:43,860 --> 00:35:47,846 최악의 그래서 이진 검색, , 케이스를했다 얼마나 많은 시간? 961 00:35:47,846 --> 00:35:49,250 >> [목소리를 개재] 962 00:35:49,250 --> 00:35:51,310 >> DAVID J. 마란 : 그래서 실제로, I 몇 장소에 들었다. 963 00:35:51,310 --> 00:35:56,390 그래서 사실, N를 기록 주거나 가지고 간다 우리가 반으로 목록을 분할로 인해 964 00:35:56,390 --> 00:36:00,730 다시, 다시, 다시, 우리는 할 수있어 궁극적으로 찾으려면 값 965 00:36:00,730 --> 00:36:04,750 거기, 그러나 캐치가됩니다. 966 00:36:04,750 --> 00:36:08,590 우리가해야하는 가정은 무엇입니까 이진 검색에 대한 당연한? 967 00:36:08,590 --> 00:36:09,700 그것은 정렬 할 수 있습니다. 968 00:36:09,700 --> 00:36:12,770 그것은 분류 아니에요, 당신은 일을 분할 할 수 있습니다 에서 또 다시 반하고, 969 00:36:12,770 --> 00:36:15,490 왼쪽으로 갈 수 있습니다, 당신은 바로 갈 수 있고, 당신은 왼쪽과 오른쪽 갈 수 있습니다,하지만 당신은거야 970 00:36:15,490 --> 00:36:18,070 요소의 경우를 발견하지 않을 목록이 정렬되지 않습니다, 때문에 971 00:36:18,070 --> 00:36:18,790 당신은 그것을 놓칠 수 있습니다. 972 00:36:18,790 --> 00:36:22,120 귀하의 휴리스틱 때문에, 왼쪽 가기를 위해 또는 오른쪽으로는의 경우 결함이 될 것입니다 973 00:36:22,120 --> 00:36:23,420 참으로 정렬되지 않습니다. 974 00:36:23,420 --> 00:36:26,110 그래서 숨겨진 비용의 종류가있다 이런 식으로 뭔가를 사용합니다. 975 00:36:26,110 --> 00:36:29,250 >> 지금, 우리의 정렬에 가자 알고리즘은 검색되지 않습니다 - 976 00:36:29,250 --> 00:36:31,140 아, 사실의이 공백을 가자. 977 00:36:31,140 --> 00:36:33,190 최상의 경우 이진 검색? 978 00:36:33,190 --> 00:36:36,290 그냥 일어나는 경우도 1의 매우 배열의 중간에, 또는에 979 00:36:36,290 --> 00:36:37,810 전화 번호부의 중간. 980 00:36:37,810 --> 00:36:39,710 이제 버블 정렬을 수행하자. 981 00:36:39,710 --> 00:36:42,570 그래서 다시, 지금 우리는을 입력하고 종류가 아닌 검색합니다. 982 00:36:42,570 --> 00:36:47,220 >> 최악의 경우, 얼마나 많은 단계 한 우리 청구 버블 정렬은 걸릴 거예요? 983 00:36:47,220 --> 00:36:48,410 N 제곱. 984 00:36:48,410 --> 00:36:49,200 그래서 나는 그를 그릴거야. 985 00:36:49,200 --> 00:36:51,710 오, 내 필기도 더 본다 그것은 그렇게 큰 투영 일 때. 986 00:36:51,710 --> 00:36:52,510 좋아. 987 00:36:52,510 --> 00:36:53,570 그래서이 제곱 보군. 988 00:36:53,570 --> 00:36:59,460 거품 정렬의 가장 좋은 경우에, 얼마나 많은 단계는 걸릴 것입니다? 989 00:36:59,460 --> 00:37:00,980 1 들었어요. 990 00:37:00,980 --> 00:37:01,760 >> 스피커 1 : N. 991 00:37:01,760 --> 00:37:03,286 >> DAVID J. 마란 : N, 나는 들었다. 992 00:37:03,286 --> 00:37:04,200 >> 스피커 1 : 2. 993 00:37:04,200 --> 00:37:05,010 >> DAVID J. 마란 : 2 들었어요. 994 00:37:05,010 --> 00:37:06,670 나는 3 들리는가? 995 00:37:06,670 --> 00:37:07,080 좋아. 996 00:37:07,080 --> 00:37:11,390 그래서 N, 2, 1을 들었지만, 선택하자 그 중 떨어져 적어도 첫 번째 997 00:37:11,390 --> 00:37:12,330 제안 1. 998 00:37:12,330 --> 00:37:15,370 그것은 때문에 나쁜 본능이 아니다 종류는 여기에 패턴을 따릅니다. 999 00:37:15,370 --> 00:37:19,670 그러나 그것은 단지 방법 1 단계, 소요되는 경우 세상은 내가 주장 수있는 목록 1000 00:37:19,670 --> 00:37:22,900 내가에만 허용 거라면 때문에 정렬 1 단계에서 얼마나 많은 요소를 가지고하는 1001 00:37:22,900 --> 00:37:25,230 사실은 확실하게 확인할 수 있을까? 1002 00:37:25,230 --> 00:37:28,270 음, 그냥 1, 그 n은 있다는 뜻 - 1 요소 즉, 수 중 수 1003 00:37:28,270 --> 00:37:31,310 순서, 그리고 난 후 바로 믿음거야 1 요소를 찾고 그 1004 00:37:31,310 --> 00:37:31,850 것은 정렬됩니다. 1005 00:37:31,850 --> 00:37:33,930 여기에 해결 안 1 그래서. 1006 00:37:33,930 --> 00:37:35,710 그래서 최소한 얼마나 많은 나는보고해야합니까? 1007 00:37:35,710 --> 00:37:36,680 >> [목소리를 개재] 1008 00:37:36,680 --> 00:37:40,160 >> 정말 N - 1, 또는 : DAVID J. 마란 N, I마다보고해야하기 때문에 1009 00:37:40,160 --> 00:37:42,190 이 있는지 확인하기 위해 요소 그것은 순서가 아니다. 1010 00:37:42,190 --> 00:37:44,750 그러나 다시, 우리는 파 우리의 정렬됩니다 작은 숫자에서 손 1011 00:37:44,750 --> 00:37:47,100 n은 대형수록, 그들이있어, 가정 어쨌든 재미. 1012 00:37:47,100 --> 00:37:48,380 그래서 거품 정렬입니다. 1013 00:37:48,380 --> 00:37:49,830 그리고 지금, 마지막 두 작업을 수행하자. 1014 00:37:49,830 --> 00:37:53,520 다음 선택 정렬, 우리는거야 삽입 정렬을 수행합니다. 1015 00:37:53,520 --> 00:37:57,160 그리고 우리는 당신을 날려 버릴 것입니다 많은 뭔가 마음 1016 00:37:57,160 --> 00:37:58,926 이 모든 것보다 더 나은. 1017 00:37:58,926 --> 00:38:00,410 좋아. 1018 00:38:00,410 --> 00:38:04,700 >> 실행하는 최악의 경우는 무엇입니까 선택 정렬의 시간은? 1019 00:38:04,700 --> 00:38:05,680 >> 스피커 4 : N 제곱. 1020 00:38:05,680 --> 00:38:06,710 >> DAVID J. 마란 : 해당 사각형, 내가 듣고 있어요. 1021 00:38:06,710 --> 00:38:09,790 그런데 왜 여기서 n은 직관적 제곱? 1022 00:38:09,790 --> 00:38:11,170 >> 스피커 4 : 우리가 해냈어 때문입니다. 1023 00:38:11,170 --> 00:38:12,260 >> DAVID J. 마란 : 우리가 해냈어 때문입니다. 1024 00:38:12,260 --> 00:38:12,550 확인을 클릭합니다. 1025 00:38:12,550 --> 00:38:13,380 좋은 대답. 1026 00:38:13,380 --> 00:38:16,660 하지만 직관적으로, 왜 선택입니다 종류의 N 제곱? 1027 00:38:16,660 --> 00:38:18,980 우리는 무엇을 했는가 또 다시? 1028 00:38:18,980 --> 00:38:22,570 우리는을 통해 스캔을 계속했다 당신 작은, 당신은있다 1029 00:38:22,570 --> 00:38:24,020 작은, 당신은 작은 수 있습니다. 1030 00:38:24,020 --> 00:38:27,480 그리고 부여, 우리는 N을 수 있었다 단, 다음 N 그 - 1, n은 마이너스 2. 1031 00:38:27,480 --> 00:38:30,700 하지만 당신이 어떤 종류의 사람 모두를 추가 할 경우, 아니면 내가 추가 한 믿음을 가지고 1032 00:38:30,700 --> 00:38:34,810 사전에 그들까지, 우리는 N 대략받을 일부 작은 숫자 마이너스 제곱. 1033 00:38:34,810 --> 00:38:36,730 그래서이 N 제곱 호출하는거야. 1034 00:38:36,730 --> 00:38:39,530 그러나 가장의 선택 종류로 경우, 그것은 얼마나 많은 단계입니다 1035 00:38:39,530 --> 00:38:40,632 저를 데려 갈? 1036 00:38:40,632 --> 00:38:41,840 >> 스피커 5 : [들림] 1037 00:38:41,840 --> 00:38:44,350 >> DAVID J. 마란 : 그것은 불행의 아직 N 제곱, 오른쪽? 1038 00:38:44,350 --> 00:38:49,590 나는 작은을 선택하는 거라면 때문에, 요소, 우리는 여기에 칠명을했다 1039 00:38:49,590 --> 00:38:53,280 난 단지 알고, 일단 난 아주에 도착 끝이 나는 작은 발견했습니다 1040 00:38:53,280 --> 00:38:55,670 번호, 어디 그 또는 그녀는되었을 수도 있습니다. 1041 00:38:55,670 --> 00:38:58,820 그러나 어떻게 나는 다음을 찾을 수 있습니까 작은 숫자? 1042 00:38:58,820 --> 00:39:00,160 또 다른 패스를 할 수 있습니다. 1043 00:39:00,160 --> 00:39:04,810 그래서 최선의 경우, 무엇인가 선택 정렬에 입력? 1044 00:39:04,810 --> 00:39:07,830 그것은 이미 정렬 목록에서 번호를 하나의 두 번째, 세 번째, 네 번째. 1045 00:39:07,830 --> 00:39:08,600 하지만 컴퓨터를 해요. 1046 00:39:08,600 --> 00:39:10,190 나는 단지 한 곳에서 볼 수 당시의 것. 1047 00:39:10,190 --> 00:39:12,465 걸음의 I는 정렬 할 수 없습니다 다시 인간과 말과 같이, 1048 00:39:12,465 --> 00:39:14,030 우,이 올바른 보인다. 1049 00:39:14,030 --> 00:39:17,580 >> 난 단지의 정확성을 판정 할 수 을 선택하여 선택 정렬 1050 00:39:17,580 --> 00:39:18,370 작은 숫자. 1051 00:39:18,370 --> 00:39:21,390 그러나 나는 번호 하나가 처음 발견하더라도, 나는에 대해 아무것도 모르는 경우 1052 00:39:21,390 --> 00:39:24,460 내가 모르는 다른 숫자, 모든 I 내가 배열을 넘겨 봤는데 알고 1053 00:39:24,460 --> 00:39:27,930 어느 뒤에 문 또는 집합 번호, 나는 그 하나를 알고있는 유일한 방법은 1054 00:39:27,930 --> 00:39:28,680 작은인가? 1055 00:39:28,680 --> 00:39:32,440 여기 모든 방법을 실현하는 경우, 젠장, 하나는 실제로 작은 하였다. 1056 00:39:32,440 --> 00:39:34,870 >> 하지만 어떻게 그 다음을 확인합니까 두 사람은 다음으로 작은입니까? 1057 00:39:34,870 --> 00:39:38,350 같은 비 효율성을 수행하여 또 다시. 1058 00:39:38,350 --> 00:39:42,210 그래서 결국, 삽입 정렬과 함께, 방법, 최악의 경우, 1059 00:39:42,210 --> 00:39:44,990 우리가 수행하는 말 했는가? 1060 00:39:44,990 --> 00:39:49,100 그것은 너무 제곱 n입니다. 1061 00:39:49,100 --> 00:39:53,020 및 방법에 대한 최상의 경우가 있나요? 1062 00:39:53,020 --> 00:39:56,282 우리는 클리프 행어로하는을 남겨 둘 것이다. 1063 00:39:56,282 --> 00:40:00,090 우리는 그 빈 다음을 입력합니다 하지만 먼저 내가 제안하자 그 우리 1064 00:40:00,090 --> 00:40:02,620 근본적으로보다 나은 이 모든, 모든 권리? 1065 00:40:02,620 --> 00:40:05,220 >> 그래서 자신에 대한 생각을 삽입 정렬거야. 1066 00:40:05,220 --> 00:40:06,910 글쎄, 그건 매우 극적인 아니었다 나는 유일한 사람 때문에 1067 00:40:06,910 --> 00:40:08,970 그 변화를 보았다. 1068 00:40:08,970 --> 00:40:09,620 와우. 1069 00:40:09,620 --> 00:40:10,420 확인을 클릭합니다. 1070 00:40:10,420 --> 00:40:12,615 그래서 여기에 우리가 다소있다 다른 데모. 1071 00:40:12,615 --> 00:40:16,580 여기에서 확대하면, 당신은을에 볼 수 있습니다 왼쪽 우리에서 거품 종류가 1072 00:40:16,580 --> 00:40:20,740 우리는 선택의 종류가 중간, 및에 오른쪽, 우리는 무언가가 우리 1073 00:40:20,740 --> 00:40:23,380 아직 못 봤어 정렬을 병합했다. 1074 00:40:23,380 --> 00:40:26,080 그러나 우리가 도움이되었다고 한 것을 고려 오늘 지금까지 여기서 뭐. 1075 00:40:26,080 --> 00:40:29,200 제니퍼 처음 무대에 올라 왔을 때, 우리는 숫자의 배열을 통해 갔다 1076 00:40:29,200 --> 00:40:33,750 다시, 다시, 선형 검색과 함께, 우리는 큰 O, 선형 실행 시간을 가지고 1077 00:40:33,750 --> 00:40:35,100 N으로, 말하자면. 1078 00:40:35,100 --> 00:40:41,000 >> 우리는 지금의 첫째 주를 고려할 때 클래스, 우리는 분열과 정복했을 때, 1079 00:40:41,000 --> 00:40:43,740 우리는 전화 번호부, 찢어했다 제니퍼, 우리 총칭 1080 00:40:43,740 --> 00:40:47,500 에 있었다 활용할 해당 키 통찰력, 에 의해 또 다시 자신을 반복 1081 00:40:47,500 --> 00:40:50,930 어떻게 든, 멀리 던지기, 멀리 던지기 멀리 던지는 문제의 절반 또는 1082 00:40:50,930 --> 00:40:55,320 일반적으로, 절반에 문제가 나누어, 다음의 작은 조각을 치료 1083 00:40:55,320 --> 00:40:59,630 개념 동등 문제 다른, 우리는 어떻게 든 한 1084 00:40:59,630 --> 00:41:00,910 근본적으로 더 나은. 1085 00:41:00,910 --> 00:41:04,720 그러나 버블 정렬과 함께 선택 정렬 삽입 정렬과 함께, 우리는했습니다 수도 1086 00:41:04,720 --> 00:41:06,560 제니퍼했던 그런 통찰력 없습니다. 1087 00:41:06,560 --> 00:41:10,220 우리는 꽤 많은 단지 뒤로 걸어 등 전체 시간의 무리, 그리고 우리 1088 00:41:10,220 --> 00:41:12,650 불통 상황이 조금 스와핑 이 순서에서, 어쩌면 1089 00:41:12,650 --> 00:41:13,730 삽입하거나 선택. 1090 00:41:13,730 --> 00:41:16,950 하지만 하루의 끝에, 내가 많이했다 어색하게 걷고 앞뒤로. 1091 00:41:16,950 --> 00:41:21,160 우리가 정말 활용 뭔가하지 않았다 제니퍼와 같은 스마트 나누는 좋아했다 1092 00:41:21,160 --> 00:41:22,040 그리고 정복. 1093 00:41:22,040 --> 00:41:25,620 >> 그래서 정렬을 병합 대조적으로, 이는 우리 다음 주까지 표시되지 않습니다, 그것은거야 1094 00:41:25,620 --> 00:41:29,540 활용 나누어 해당 키 아이디어 입력 한 다음, 절반, 그리고 1095 00:41:29,540 --> 00:41:30,580 절반, 그리고 절반. 1096 00:41:30,580 --> 00:41:34,590 그리고 그 루프의 각 반복에, 왼쪽 절반을 정렬하고 오른쪽 1097 00:41:34,590 --> 00:41:38,200 반, 왼쪽 절반의 왼쪽 반 후, 다음 왼쪽과 오른쪽 절반, 1098 00:41:38,200 --> 00:41:40,990 왼쪽 오른쪽 절반의 절반, 그리고 오른쪽 절반의 오른쪽 절반. 1099 00:41:40,990 --> 00:41:42,840 그리고 또 다시 반복. 1100 00:41:42,840 --> 00:41:46,170 >> 그래서 당신은 시각이 표시되지만이 있습니다 다음 주에 우리를 기다리고 것입니다. 1101 00:41:46,170 --> 00:41:49,760 그리고 일반적으로 때, 우리는 조금 생각 이러한 문제에 조금 더. 1102 00:41:49,760 --> 00:41:52,435 1103 00:41:52,435 --> 00:41:57,970 우리는 왼쪽에 제곱 N, N있다 중간에 제곱, 그리고 N 1104 00:41:57,970 --> 00:41:59,400 오른쪽에 N를 기록합니다. 1105 00:41:59,400 --> 00:42:00,590 그래서 실제 클리프 행어가있다. 1106 00:42:00,590 --> 00:42:02,040 우리는 월요일에 당신을 볼 수 있습니다. 1107 00:42:02,040 --> 00:42:05,163 >> [박수]