1 00:00:00,000 --> 00:00:10,982 2 00:00:10,982 --> 00:00:11,940 DAVID 마란 : 좋습니다. 3 00:00:11,940 --> 00:00:16,470 이것이 CS50이고, 이쪽은 지금은 주일의 시작. 4 00:00:16,470 --> 00:00:19,960 >> 지금까지 우리가했습니다까지 그래서 C에서 프로그램을 작성하고 5 00:00:19,960 --> 00:00:23,210 그건 좀 봐 여기에 이​​런 식으로 뭔가. 6 00:00:23,210 --> 00:00:25,470 그래서 우리는 몇있어 날카로운 상단에 포함되어 있습니다. 7 00:00:25,470 --> 00:00:28,490 우리는 무효, 주요 int 있으니까요 무언가가 중간에서 할 수있는, 8 00:00:28,490 --> 00:00:30,590 내부 코드의 일부 비트 그 함수의. 9 00:00:30,590 --> 00:00:34,170 그러나 키는 사실이있다 우리는 여기에서 무효라고했습니다. 10 00:00:34,170 --> 00:00:39,320 그래서 무효,이 모든 시간, 지정 이 프로그램은 경우에 실행하는 것이, 11 00:00:39,320 --> 00:00:41,300 이름 만을 통해 실행할 수 있습니다. 12 00:00:41,300 --> 00:00:46,330 당신은 어떤 다른 단어를 입력 할 수 없습니다 또는 프로그램의 이름 때 후 번호 13 00:00:46,330 --> 00:00:46,830 그것을 실행. 14 00:00:46,830 --> 00:00:51,200 그래서, 예를 들어 프로그램이 있다면 안녕하세요라는 파일로 컴파일, 15 00:00:51,200 --> 00:00:53,480 당신은 ./hello 할 수 있지만, 그것입니다. 16 00:00:53,480 --> 00:00:56,750 >> 유일한 방법은 당신이 할 수 이 프로그램에 입력을 제공 17 00:00:56,750 --> 00:00:57,960 함수를 호출하는 것입니다. 18 00:00:57,960 --> 00:00:59,790 예를 들어, 어떤 기능 우리는 지금까지 사용하고있다 19 00:00:59,790 --> 00:01:00,950 사용자로부터 입력을 얻을 수 있습니까? 20 00:01:00,950 --> 00:01:02,117 >> 관객 : 문자열을 가져옵니다. 21 00:01:02,117 --> 00:01:04,700 DAVID 마란은 : 문자열을 얻거나하려면 INT를 얻을 수, 또는 당신은 다른 사람을 본 적이 22 00:01:04,700 --> 00:01:07,630 당신이 아직 사용하지 않은 경우에도, 같은 오래 오래 등 얻는다. 23 00:01:07,630 --> 00:01:09,380 그러나 그 가정 우리 실제로 시작하려면 24 00:01:09,380 --> 00:01:12,760 조금 더 아르 프로그램을 작성 솔직히, 좀 더 다양하고, 그리고 25 00:01:12,760 --> 00:01:15,090 만약 여러분의 명령 등 희망을, 받고, 26 00:01:15,090 --> 00:01:16,550 조금 익숙해. 27 00:01:16,550 --> 00:01:18,560 CD 공간 드롭 박스처럼. 28 00:01:18,560 --> 00:01:20,800 이것은, 물론, 변경 디렉토리, 가정 29 00:01:20,800 --> 00:01:23,590 당신은 존 하버드의 집에있어 디렉토리, 보관 용 폴더로 이동합니다. 30 00:01:23,590 --> 00:01:27,380 한편,이 같은 명령 , pset2라는 새로운 디렉토리를 생성 31 00:01:27,380 --> 00:01:30,290 당신이해야 할 수도 있습니다으로 이미 나 의지는 곧 문제에 대한이 설정합니다. 32 00:01:30,290 --> 00:01:33,970 확인 안녕은 물론, 명령입니다 그 안녕하세요라는 프로그램을 빌드 33 00:01:33,970 --> 00:01:35,770 안녕하세요 도트 C라는 파일에서. 34 00:01:35,770 --> 00:01:39,140 그리고 이들 각각의 경우는, 지금, 우리는 했어 35 00:01:39,140 --> 00:01:43,620 소위에 인자를 제공 명령 줄 프롬프트가 나타나면, 36 00:01:43,620 --> 00:01:48,540 그 make가 알 수 있도록 무엇을 구축하고, 너무합니다 그 MKDIR 만들 어떤 폴더를 알고, 37 00:01:48,540 --> 00:01:51,110 그래서 그 CD는 알고있다 어디 가고 싶어. 38 00:01:51,110 --> 00:01:54,720 그러나 지금까지 우리는 자꾸 그 주, 기본 기능, 39 00:01:54,720 --> 00:01:58,500 보이드 식에 있습니다 그 괄호 안에 40 00:01:58,500 --> 00:02:01,250 어떤 것이 있다는 것을 의미 인수를 취할 수 없습니다. 41 00:02:01,250 --> 00:02:03,240 >> 그래서 오늘 시작 우리가 무엇을 할 거 야 42 00:02:03,240 --> 00:02:06,270 우리는 시작하기 위하여려고하고있다 이 경우에도 같은 것들을 지원. 43 00:02:06,270 --> 00:02:08,990 사실,이 경우, 어떤 당신을 일반적으로 수동으로 입력하지 마십시오, 44 00:02:08,990 --> 00:02:11,130 이 일을하고있다 확인 우리를 위해,이 없습니다 45 00:02:11,130 --> 00:02:15,840 하나를 제외하고 한 개, 두 개, 세 개 추가 프로그램의 이름을 한 후 문자열 46 00:02:15,840 --> 00:02:16,850 그 소리. 47 00:02:16,850 --> 00:02:18,240 그래서 우리는 어떻게 이것을 달성합니까? 48 00:02:18,240 --> 00:02:20,260 >> 음, 오늘부터, 우리가 원하는 경우 49 00:02:20,260 --> 00:02:22,855 를 통해 입력을 제공 할 커맨드 라인, 소위 50 00:02:22,855 --> 00:02:24,980 우리는 추가 시작하는거야 여기에 노란 건에 무슨 51 00:02:24,980 --> 00:02:30,520 INT의는 argc 쉼표와 공백을 대체 문자열 변수는 argv 대괄호 대괄호. 52 00:02:30,520 --> 00:02:32,520 지금 이것은 재미있다 몇 가지 이유로. 53 00:02:32,520 --> 00:02:35,690 하나, 그것은 우리가 작성할 수 것 좀 더 동적 프로그램. 54 00:02:35,690 --> 00:02:37,570 그러나, 더 강력하게, 그것은 열 것 55 00:02:37,570 --> 00:02:40,340 에 지금처럼 대화 무엇을 배열 할 수있는 정말 56 00:02:40,340 --> 00:02:43,300 어떤 문자열을 사용할 수 정말 후드 아래에있다, 57 00:02:43,300 --> 00:02:47,320 다음 주까지 우리는 다이빙을 시작할 때 기계가 얼마나에 심지어 깊이에서 58 00:02:47,320 --> 00:02:48,590 이 물건의 모든 작업을. 59 00:02:48,590 --> 00:02:51,920 그러나 지금은 그려 보자, 아마도 그림. 60 00:02:51,920 --> 00:02:54,950 >> 당신은 프로그램을 작성하는 경우 선언 주와 함께 61 00:02:54,950 --> 00:02:58,810 이러한 방식으로, 그와 같은 메인 두 개의 인수, int를 취 62 00:02:58,810 --> 00:03:03,233 그리고 ... 어떤 데이터 유형 두 번째 인자는? 63 00:03:03,233 --> 00:03:04,529 >> 청중 : 배열입니다. 64 00:03:04,529 --> 00:03:05,320 DAVID 마란 : 배열입니다. 65 00:03:05,320 --> 00:03:09,170 그것은을처럼 그래서 먼저 눈에 보이는 문자열은 있지만, 대괄호가 있습니다. 66 00:03:09,170 --> 00:03:12,760 우리가 도입 된 지난 시간을 기억 배열의 개념. 67 00:03:12,760 --> 00:03:16,210 그리고 배열은 대괄호를 사용 컨텍스트의 커플. 68 00:03:16,210 --> 00:03:19,160 당신은 광장을 사용할 수 있습니다 브래킷은 배열로 이동합니다 69 00:03:19,160 --> 00:03:22,710 와 같은 특정 요소를 얻을 브래킷 0 또는 브래킷 1 브래킷 2. 70 00:03:22,710 --> 00:03:25,500 그러나 우리는, 만약 잠깐 보았다 지난 주에 그 또한 71 00:03:25,500 --> 00:03:28,790 이러한 대괄호를 사용 배열 크기를 선언 72 00:03:28,790 --> 00:03:31,790 사전에 알고있는 경우에 얼마나 많은 정수 또는 얼마나 많은 문자열이나 당신이 무엇을 73 00:03:31,790 --> 00:03:32,630 실제로 할 수 있습니다. 74 00:03:32,630 --> 00:03:34,790 그래서 거기의 밝혀 여기에 세 번째 컨텍스트 75 00:03:34,790 --> 00:03:37,890 그 내부에는 번호가 없습니다 대괄호. 76 00:03:37,890 --> 00:03:41,920 내가 여기에 가지고있는 때, 지정 argv와 같은 이름, 77 00:03:41,920 --> 00:03:44,550 이는 단지 멋진 방법입니다 인수 벡터를 말하고있는 78 00:03:44,550 --> 00:03:47,750 또 다른 멋진 방법입니다 인수의 배열을 말 79 00:03:47,750 --> 00:03:50,870 대괄호 대괄호 단지 당신이 필요하지 않는 것을 의미한다 80 00:03:50,870 --> 00:03:52,960 얼마나 큰 사전에 알고 배열이 될 것입니다 81 00:03:52,960 --> 00:03:55,070 하지만 당신은 배열 될 것 알고있다. 82 00:03:55,070 --> 00:03:57,320 당신이 모르는 경우에 따라서 여러 가지가에 넣어하지 않습니다 83 00:03:57,320 --> 00:04:01,160 대괄호 대괄호에 대한 변수는 argv는 문자열이 아닌 것을 의미한다, 84 00:04:01,160 --> 00:04:03,124 하지만 문자열의 배열. 85 00:04:03,124 --> 00:04:05,040 그래서 구문, 당신이 경우 지난 주 다시 생각한다 86 00:04:05,040 --> 00:04:09,460 그것은 말과 매우 유사하다 INT 세 대괄호 같은, 87 00:04:09,460 --> 00:04:10,984 다음 일 이후. 88 00:04:10,984 --> 00:04:12,150 그래서이 보입니까? 89 00:04:12,150 --> 00:04:13,399 의 실제 그림을 그려 보자. 90 00:04:13,399 --> 00:04:18,756 그래서 당신은 메인이 프로그램을 실행하면 이 인수는 내부 정의하는 데 91 00:04:18,756 --> 00:04:21,339 소괄호, 당신 본질적으로 적어도 두 개의 청크를 가지고 92 00:04:21,339 --> 00:04:23,560 메모리 당신을 물려 후드 아래에. 93 00:04:23,560 --> 00:04:26,550 하나,이 사각형으로 그립니다 내가 겠지만, 는 argc 호출 할 것입니다. 94 00:04:26,550 --> 00:04:30,645 그리고 그냥 빨리 요점을 되풀이로, 는 argc의 데이터 유형은 무엇입니까? 95 00:04:30,645 --> 00:04:31,270 그래서 정수입니다. 96 00:04:31,270 --> 00:04:33,480 그래서 숫자는 것입니다 argc-- 회전에 이동합니다 97 00:04:33,480 --> 00:04:35,660 아웃 인수 수를 의미하는. 98 00:04:35,660 --> 00:04:38,887 한편, 나는 배열로 변수는 argv를 그려 놨거든요. 99 00:04:38,887 --> 00:04:40,970 그리고 정말 모르겠어요 가 될 것 얼마나 오래, 100 00:04:40,970 --> 00:04:42,470 그래서 오늘의 목적은 점 점 점. 101 00:04:42,470 --> 00:04:43,636 그것은 어떤 길이를 얻을 수 있습니다. 102 00:04:43,636 --> 00:04:45,640 하지만 여기에 묘사 한 적어도 네 개의 사각형. 103 00:04:45,640 --> 00:04:50,970 그래서 저장 메모리 청크를 argv를 문자열 문자열 문자열은 점 점 점, 104 00:04:50,970 --> 00:04:53,950 그리고는 argc는 단지 하나의 덩어리입니다 정수의 메모리. 105 00:04:53,950 --> 00:04:55,710 >> 그래서 이제 좀 더 정확하게 할 수 있습니다. 106 00:04:55,710 --> 00:04:59,200 만약, 내가 문자열이있을 때 이 배열에서 호출 107 00:04:59,200 --> 00:05:03,290 argv에, 나는 그들을 싶어 개별적으로 지난 주와 같은, 108 00:05:03,290 --> 00:05:05,670 우리는 표기법을 사용하는거야 argv에 브래킷 공 등 109 00:05:05,670 --> 00:05:07,650 먼저 배열로 얻을 수 있습니다. 110 00:05:07,650 --> 00:05:10,440 ARGV 브래킷 1을 얻을 수 등 초 일합니다. 111 00:05:10,440 --> 00:05:14,597 열쇠는 여기에 우리가 아직 영이야 인 indexed-- 우리는 여전히 0부터 계산하고 있습니다. 112 00:05:14,597 --> 00:05:16,430 이제 실제로하자 이 뭔가를 넣어. 113 00:05:16,430 --> 00:05:21,670 나는라는 프로그램을 컴파일한다면 안녕하세요 안녕하세요 도트 C라는 파일에서, 114 00:05:21,670 --> 00:05:24,340 그리고, 나는 그 프로그램을 실행 점으로 인사 슬래시 115 00:05:24,340 --> 00:05:28,380 내 컴퓨터, 내 컴퓨터를 무엇을, 후드 아래처럼 116 00:05:28,380 --> 00:05:31,300 나는 도트 실행 순간 안녕하세요 슬래시를 입력하고 Enter 키를 누르십시오? 117 00:05:31,300 --> 00:05:33,500 음, 이것은 아마도 우리는 설명 할 수 무엇을 118 00:05:33,500 --> 00:05:37,010 컴퓨터의 내용으로 메모리 또는 RAM-- 랜덤 액세스 메모리. 119 00:05:37,010 --> 00:05:40,330 즉, 컴퓨터 어떻게 든 마술 당신을 위해, 120 00:05:40,330 --> 00:05:45,360 는 argc에 숫자 1을두고, 일명 argcount, 그것은 말 그대로 문자열을 넣습니다 121 00:05:45,360 --> 00:05:48,200 ./hello argv에 브래킷 공입니다. 122 00:05:48,200 --> 00:05:51,750 아무 생각이 솔직히 무슨 일이 없다가 argv와 브래킷의 1 또는 2 또는 3, 123 00:05:51,750 --> 00:05:55,550 사용자가없는 경우 때문에 , ./hello 외에 아무것도 입력 124 00:05:55,550 --> 00:05:58,550 우리는 이러한 가정거야 대부분 쓰레기 값은, 125 00:05:58,550 --> 00:05:59,700 말하자면. 126 00:05:59,700 --> 00:06:02,650 메모리의 그 덩어리 존재하지만, 그것은 우리를 아니에요 127 00:06:02,650 --> 00:06:05,710 때문에, 그들을 보는 argcount는 하나입니다. 128 00:06:05,710 --> 00:06:07,870 >> 지금, 그 사이에, 나는 경우 다른 프로그램을 실행, 쓰기, 129 00:06:07,870 --> 00:06:12,250 더 적절하게 명령입니다 CD, 점멸하여 prompt-- CD 공간 130 00:06:12,250 --> 00:06:17,200 나는 효과적으로 것을 실행할 때 Dropbox--, CD 프로그램이 실행될 때,는 argc, 131 00:06:17,200 --> 00:06:22,270 내 컴퓨터의 메모리의 내부입니다 가장 잠깐 씩 제 번호 2. 132 00:06:22,270 --> 00:06:25,936 그리고 argv에 브래킷 o를 가지고 CD, argv와 브래킷 하나는 보관이 133 00:06:25,936 --> 00:06:28,560 다음 코스의 명령 완료, 그래서이 모든 메모리 134 00:06:28,560 --> 00:06:30,420 기본적으로 사라지고 다른 일에 사용됩니다. 135 00:06:30,420 --> 00:06:32,270 그리고 그게 내가 말할 이유 초 단지 분할. 136 00:06:32,270 --> 00:06:35,720 >> 한편, 우리는에서 mkdir pset2을 할 경우, 사진은 거의 같은 보인다 137 00:06:35,720 --> 00:06:37,900 하지만 변수는 argv 안에 다른 문자열. 138 00:06:37,900 --> 00:06:42,570 나는 안녕하세요 연타 대시를 할 경우 안녕하세요 도트 C, 같은 생각. 139 00:06:42,570 --> 00:06:47,060 더 많은 물건을 채워된다 변수는 argv와는 argc는 물론, 4입니다. 140 00:06:47,060 --> 00:06:49,150 따라서 환언하면, 심지어이 배열하지만 141 00:06:49,150 --> 00:06:52,950 일부의 도트 도트 도트 수 있습니다 가변 길이 때문에, 말하자면 142 00:06:52,950 --> 00:06:56,720 당신은 항상 그것의 위치 끝을 알 는 argc 당신을 말할 것입니다 때문입니다 143 00:06:56,720 --> 00:07:00,120 어떤 시점에서 당신은 중지해야 변수는 argv의 요소를 찾고 있습니다. 144 00:07:00,120 --> 00:07:03,660 당신은 사 볼 수 있습니다 이 경우, 전체. 145 00:07:03,660 --> 00:07:06,600 >> 그래서 지금 살펴 보자, 아마도 간단한 프로그램. 146 00:07:06,600 --> 00:07:09,070 그냥 안부 하나 Zamyla 같은 사람이다. 147 00:07:09,070 --> 00:07:12,620 그래서 내가 프로그램을 작성하는거야 주장 그냥 순간에 어떤 통해 내가 할 수있는 148 00:07:12,620 --> 00:07:16,670 다음 내가 원하는 ./hello 공간 Zamyla하고, 내 프로그램은 뭔가를 인쇄하려면 149 00:07:16,670 --> 00:07:18,520 같은 슈퍼 간단하게 "안녕하세요, Zamyla." 150 00:07:18,520 --> 00:07:20,100 이제 과거에 우리는 getstring를 사용했습니다. 151 00:07:20,100 --> 00:07:22,850 과거에, 비록 그래서 당신은 프로그래밍을 처음 접하는 152 00:07:22,850 --> 00:07:27,180 확률은 당신을 채찍질 할 수 있습니다 getstring를를 사용하는 프로그램 153 00:07:27,180 --> 00:07:29,390 다음의 printf를 사용 Zamyla에게 인사한다. 154 00:07:29,390 --> 00:07:31,290 그러나 이제이 시간을 getstring를 사용하지 말자. 155 00:07:31,290 --> 00:07:37,510 나 대신 수험생으로 가자 표준 I O 도트 시간을 포함 않습니다. 156 00:07:37,510 --> 00:07:41,160 나 또한 CS50 도트 시간을 포함 할 수 있습니다. 157 00:07:41,160 --> 00:07:44,730 지금 주요 중간, 그리고 지금 난 오늘 무효하지 않을. 158 00:07:44,730 --> 00:07:51,200 대신, INT의는 argc을 할거야 문자열 변수는 argv 대괄호 대괄호, 159 00:07:51,200 --> 00:07:52,640 번호를 지정하지. 160 00:07:52,640 --> 00:07:54,644 그리고 지금 여기 내 할 소위된다. 161 00:07:54,644 --> 00:07:57,560 내가 지금 할 거 야하는 난입니다 믿음의 도약의 비트를 할 것, 162 00:07:57,560 --> 00:08:00,560 나는 사용자의 것 같은데요 제대로이 프로그램을 사용하는 것, 163 00:08:00,560 --> 00:08:04,980 나는 단순히 갈거야 안녕하세요 printf의 %의 SN을한다. 164 00:08:04,980 --> 00:08:06,630 그래서 아무것도 새. 165 00:08:06,630 --> 00:08:11,470 하지만 지금은 어떤 단어를 넣을 프로그램의 이름 뒤에 사용자 유형. 166 00:08:11,470 --> 00:08:16,970 그래서 Zamyla ./hello 공간을 할 경우, I 어떻게 든 프로그램에 액세스하려면 167 00:08:16,970 --> 00:08:20,870 맺다 "Zamyla을."인용 그래서 나는 내 인수 벡터에 갈 수 있습니다, 168 00:08:20,870 --> 00:08:25,980 내 문자열 배열하고 명령하는 경우, 다시, ./hello 공간은 Zamyla이었다 169 00:08:25,980 --> 00:08:29,340 무슨 수를 내가 원하는 수행 여기에 변수는 argv에 넣어? 170 00:08:29,340 --> 00:08:29,840 대상 : 1. 171 00:08:29,840 --> 00:08:32,355 DAVID 마란 : 일 때문에 브래킷 공은 밝혀 172 00:08:32,355 --> 00:08:34,230 을 될 것입니다 프로그램의 이름을 우리는보고있다. 173 00:08:34,230 --> 00:08:37,789 그래서 브래킷은 제 1 단어는 I 것으로, 사용자가 입력 한. 174 00:08:37,789 --> 00:08:39,559 내가 가서이 저장거야. 175 00:08:39,559 --> 00:08:42,830 내 폴더에 갈거야 어디이 파일을 배치했습니다. 176 00:08:42,830 --> 00:08:44,920 나는 안녕하세요 3을 할거야. 177 00:08:44,920 --> 00:08:46,230 미리보기 IO의 OK. 178 00:08:46,230 --> 00:08:51,380 ./hello Zamyla십시오. 179 00:08:51,380 --> 00:08:54,480 내가 잘못 무슨 짓을 한거야? 180 00:08:54,480 --> 00:08:57,270 나는 놀라움에 의해 붙 잡혔다 자신이 그냥 잠시. 181 00:08:57,270 --> 00:08:58,230 내가 잘못 무슨 짓을 한거야? 182 00:08:58,230 --> 00:08:59,220 >> 청중 : 이름입니다. 183 00:08:59,220 --> 00:09:01,767 >> DAVID 마란 : 파일의 실제로 hello3.c했다. 184 00:09:01,767 --> 00:09:03,850 그리고 난 그냥 위해 그렇게했다 일관성, 우리가했기 때문에 185 00:09:03,850 --> 00:09:06,550 에 있었다 작성한 hello.c의의 온라인 코드의 과거. 186 00:09:06,550 --> 00:09:11,550 그래서이 ./hello를 해결하자 브래킷 대시 3 Zamyla. 187 00:09:11,550 --> 00:09:12,370 입력합니다. 188 00:09:12,370 --> 00:09:14,030 그리고 지금 우리는, 안녕하세요 Zamyla 있습니다. 189 00:09:14,030 --> 00:09:17,650 한편, 나는로 변경할 수 있습니다 롭, 또는 정말 다른 단어합니다. 190 00:09:17,650 --> 00:09:19,230 >> 그러나의 코너의 경우를 생각해 보자. 191 00:09:19,230 --> 00:09:24,360 당신이 경우 무슨 일이 일어날 지 예상 할 수 나는 모든 사람의 이름을 입력하지? 192 00:09:24,360 --> 00:09:25,270 >> 청중 : 오류가 발생했습니다. 193 00:09:25,270 --> 00:09:27,300 >> DAVID 마란 : 오류 아마도 어떤 종류의. 194 00:09:27,300 --> 00:09:28,200 어디 보자. 195 00:09:28,200 --> 00:09:29,440 입력합니다. 196 00:09:29,440 --> 00:09:30,210 널 (null). 197 00:09:30,210 --> 00:09:33,870 그래서 printf와 실제로되고있다 우리의 작은 보호 198 00:09:33,870 --> 00:09:38,131 여기에 그대로 열린 괄호를 인쇄 널 (null),하지만 더 나쁜 상황이 발생할 수 있습니다. 199 00:09:38,131 --> 00:09:40,130 그리고 단지 보여주기 위해 뭔가 당신이 절대적으로 200 00:09:40,130 --> 00:09:42,800 하지 말아야 할, 들어가요 여기 주위에 파고 시작합니다. 201 00:09:42,800 --> 00:09:43,300 오른쪽? 202 00:09:43,300 --> 00:09:46,410 내가 알고있는 경우 해당 사진에 메모리는 기본적으로이입니다 203 00:09:46,410 --> 00:09:52,660 argv와 브래킷 1 Zamyla, 변수는 argv가 브래킷 0 ./hello이 있거나 ./hello-3. 204 00:09:52,660 --> 00:09:55,400 무엇 브래킷이에? 205 00:09:55,400 --> 00:09:58,210 그래서 나는 대답 할 수 있습니다 바로, 자신을 질문? 206 00:09:58,210 --> 00:10:00,460 난 그냥 2에 1을 변경할 수 있습니다. 207 00:10:00,460 --> 00:10:07,270 지금, 3 안녕하세요 다시 컴파일 ./hello3의이 확대를 입력하고 Enter 키를 누르십시오 보자. 208 00:10:07,270 --> 00:10:08,270 아차. 209 00:10:08,270 --> 00:10:10,660 어떤 따옴표가 없습니다. 210 00:10:10,660 --> 00:10:12,540 흥미. 211 00:10:12,540 --> 00:10:15,530 그래서 종류의의 멋진 여기에 다른 기능을 참조하십시오. 212 00:10:15,530 --> 00:10:17,130 >> 그래서 다른 무엇을 내 노트북​​의 내부에? 213 00:10:17,130 --> 00:10:20,390 의 브라켓 셋으로 저장하자. 214 00:10:20,390 --> 00:10:25,190 ./hello-3, hello3를 확인합니다. 215 00:10:25,190 --> 00:10:26,500 호기심. 216 00:10:26,500 --> 00:10:30,560 그리고 지금의 정말 bold-- (50)를 얻을 수 있습니다. 217 00:10:30,560 --> 00:10:34,340 그래서 정말 깊게 다이빙이다 내 컴퓨터의 메모리에. 218 00:10:34,340 --> 00:10:35,930 50 인덱스 인치 219 00:10:35,930 --> 00:10:41,950 그래서 안녕하세요 3 ./hello-3을합니다. 220 00:10:41,950 --> 00:10:42,680 호기심. 221 00:10:42,680 --> 00:10:44,660 좋아, 지금은 그냥 해요 무모 얻을 것. 222 00:10:44,660 --> 00:10:47,331 의는 5000에 가자. 223 00:10:47,331 --> 00:10:47,830 좋아. 224 00:10:47,830 --> 00:10:49,520 그래서 나를 다시 컴파일 할 수 있습니다. 225 00:10:49,520 --> 00:10:51,460 ./hello-3, hello3를 확인합니다. 226 00:10:51,460 --> 00:10:55,780 227 00:10:55,780 --> 00:10:56,460 확인을 클릭합니다. 228 00:10:56,460 --> 00:10:59,250 여러분 중 몇몇 지금, 거기는 수도 꺼져가는 전구합니다. 229 00:10:59,250 --> 00:11:01,900 이 얼마나되는 지의 이전에이 메시지를 본 적있어? 230 00:11:01,900 --> 00:11:03,440 확인을 클릭합니다. 231 00:11:03,440 --> 00:11:04,420 그럼, 왜? 232 00:11:04,420 --> 00:11:07,250 >> 승률은 알수가 다른있다 이와 같은 문제가 발생할 수있는 일, 233 00:11:07,250 --> 00:11:09,730 분명히 당신은 좋은에있어 company-- 우리는 분명히있다 234 00:11:09,730 --> 00:11:11,900 라고 원인은 무엇 세그먼트 오류. 235 00:11:11,900 --> 00:11:15,890 그리고 오늘은 긴 이야기를 짧은 I 메모리의 세그먼트를 만진 236 00:11:15,890 --> 00:11:17,060 나는이 안된다. 237 00:11:17,060 --> 00:11:19,970 어디 세그먼트 그냥 덩어리를 의미한다 메모리 내가하지 말았어야 그. 238 00:11:19,970 --> 00:11:25,530 이제 컴퓨터가 보장되는 경우 I 나는 argv와 접촉 할 수있는 ./helloZamyla을 실행 239 00:11:25,530 --> 00:11:27,760 브래킷 공 및 argv를 브래킷 1합니다. 240 00:11:27,760 --> 00:11:32,730 그러나는 argc 값이, 즉 내가 의미입니다 단지 그것이 명예의 일종 allowed-- 241 00:11:32,730 --> 00:11:35,180 터치 외 시스템 브래킷 0 브래킷 1. 242 00:11:35,180 --> 00:11:37,990 내가 더 멀리 가면, 거기에 절대적으로 거기에 메모리를 될 것. 243 00:11:37,990 --> 00:11:40,660 내 RAM은 물리적으로 존재 컴퓨터. 244 00:11:40,660 --> 00:11:42,080 그러나 사람이 무엇을 알고? 245 00:11:42,080 --> 00:11:44,450 실제로, 나는 여러 실행 해요 한 번에 프로그램. 246 00:11:44,450 --> 00:11:46,910 내가 아니었다면 나는 seen--있을 수 있습니다 수험생에이 일을 247 00:11:46,910 --> 00:11:49,937 그러나 나의 Mac 또는 PC--에 내가있을 수 있습니다 메일의 내용을 알. 248 00:11:49,937 --> 00:11:52,270 나는 순간을 볼수있을 것이다 메시지는 내가 최근에 보낸. 249 00:11:52,270 --> 00:11:55,390 수 있습니다 아무것도 메모리에 주위 느린 250 00:11:55,390 --> 00:11:59,180 의 방법으로 액세스 한 수 이 임의의 대괄호 표기법. 251 00:11:59,180 --> 00:12:02,850 또는 더 나쁜 아직, 당신은 할 수 있습니다 내 암호 중 하나를 발견 252 00:12:02,850 --> 00:12:05,859 나는 최근에 입력하는 거라고 프로그램이 메모리에 저장했다 그래서 253 00:12:05,859 --> 00:12:07,900 저를 인증하며합니다 그럼 그냥 가지를 왼쪽 254 00:12:07,900 --> 00:12:09,910 RAM에 나는 그 프로그램을 종료 할 때까지. 255 00:12:09,910 --> 00:12:12,860 >> 그리고 실제로,이 중 하나입니다 위험 한 힘 256 00:12:12,860 --> 00:12:15,980 C. 같은 언어를 사용 당신은 자유롭게 액세스 할 수 있습니다 257 00:12:15,980 --> 00:12:18,860 내용 전체에 프로그램 메모리, 258 00:12:18,860 --> 00:12:21,340 어떤 나쁜 사람은 할 수 심지어 cases--에서 할 259 00:12:21,340 --> 00:12:23,807 특히 우리를 웹 프로그래밍에 도착 260 00:12:23,807 --> 00:12:26,890 학기의 끝으로, 우리는거야 살펴볼 때이 topic--을 방문, 261 00:12:26,890 --> 00:12:31,660 잠재적으로 사람이 컴퓨터의이야 메모리와 같은 호기심이 일을 찾을 수 262 00:12:31,660 --> 00:12:32,570 우리가 본 것처럼. 263 00:12:32,570 --> 00:12:36,900 아니면 더 나쁜 아직, 암호 그가 또는 그녀는 나쁜 일을 할 수 있습니다. 264 00:12:36,900 --> 00:12:40,240 >> 그래서 분명 나는이 일을하지 말았어야 이상한 일이 발생하기 시작하기 때문이다. 265 00:12:40,240 --> 00:12:42,310 실제로,이 프로그램 충돌이다. 266 00:12:42,310 --> 00:12:44,580 이 동등하게 윈도우 맥 OS의 또는 267 00:12:44,580 --> 00:12:46,770 프로그램 윈도우는 사라지고. 268 00:12:46,770 --> 00:12:48,300 예기치 않은 오류가 발생했습니다. 269 00:12:48,300 --> 00:12:50,840 명령 줄 환경에서 우리는이 같은 내용을 볼 수. 270 00:12:50,840 --> 00:12:54,480 하지만 그 이유는, 단순히 터치하고있어가요 나에게 속하지 않는 메모리. 271 00:12:54,480 --> 00:12:57,090 >> 그래서이 방어하자 다른 방법으로 조금 272 00:12:57,090 --> 00:12:59,010 여기에이 프로그램을보고하여. 273 00:12:59,010 --> 00:13:01,000 그래서 다시, 골격 우리는 earlier-- 보았다 274 00:13:01,000 --> 00:13:02,480 나는이 시간 INT 강조했다. 275 00:13:02,480 --> 00:13:05,900 그리고이 모든 시간 주에는 참 값을 반환했습니다. 276 00:13:05,900 --> 00:13:09,120 비록 우리 강의의 대부분 우리는 한 번 사용한 적이 예 277 00:13:09,120 --> 00:13:10,990 주요 아무것도를 반환합니다. 278 00:13:10,990 --> 00:13:13,710 우리는 printf와 가까이 쓰기 중괄호와 그거야. 279 00:13:13,710 --> 00:13:16,500 그러나 무료로, 어떤 컴파일러는 당신을 위해 일을하고 280 00:13:16,500 --> 00:13:19,510 효과적으로 당신을 위해 0을 반환합니다. 281 00:13:19,510 --> 00:13:22,950 병원을 나온 켜고 그것은 조금이다 0이 좋은 것을 counterintuitive--. 282 00:13:22,950 --> 00:13:24,690 그것은 그 자체로 거짓을 의미하지 않는다. 283 00:13:24,690 --> 00:13:29,080 0 좋고, 비 영 값, 세계는 결정했다, 284 00:13:29,080 --> 00:13:30,619 에러를 의미 할 수있다. 285 00:13:30,619 --> 00:13:32,910 혹시 망친 경우에 따라서 컴퓨터에 뭔가까지, 286 00:13:32,910 --> 00:13:36,600 또는 프로그램이 당신에 사망하고 당신은 몇 가지 잘못된 창을 늘어 놓던 287 00:13:36,600 --> 00:13:40,360 화면에 말하는 오류 49 또는 오류 부정적인 23-- 288 00:13:40,360 --> 00:13:44,170 입니다 일부 겉보기에 임의의 value-- 프로그래머는 하드 코딩 때문 289 00:13:44,170 --> 00:13:49,370 49 부정적인 또는 긍정적 인 같은 값 (23) 숫자를 표현하기 위해, 감히, 290 00:13:49,370 --> 00:13:53,340 4000000000 가능한 것들 그 프로그램에서 잘못 될 수 있습니다. 291 00:13:53,340 --> 00:13:55,700 >> 그래서 방법이 걸릴 수 있습니다 이것의 장점 자신? 292 00:13:55,700 --> 00:13:58,970 글쎄, 내가 프로그램을 열 수 있습니다 나는 사전에 썼다, 293 00:13:58,970 --> 00:14:01,450 온라인 안녕하세요 네라고 찌를. 294 00:14:01,450 --> 00:14:05,650 그리고 그것은 것을 제외하고는 거의 동일하다 그 오류 체크를 조금 얻었다. 295 00:14:05,650 --> 00:14:09,660 이 경우, 다시 선언했습니다 이 인수를 복용 등의 주요, 296 00:14:09,660 --> 00:14:13,180 하지만이 시간, 라인 (17)에 통지 나는 전성 검사의 비트를하고 있어요. 297 00:14:13,180 --> 00:14:17,100 그 확인하고있어 는 argc 2에 해당 같습니다. 298 00:14:17,100 --> 00:14:18,960 이 경우이므로, 그 내가 안전하게 할 수있는 의미 299 00:14:18,960 --> 00:14:21,420 뿐만 아니라 브라켓 0하지만 브라켓 하나를 터치합니다. 300 00:14:21,420 --> 00:14:24,330 내가 가서 인쇄, 이 경우, 또는 Zamyla 롭 301 00:14:24,330 --> 00:14:26,020 아니면 밖으로 입력 어떤 단어. 302 00:14:26,020 --> 00:14:28,020 그리고 지금은 그냥 얻을 수 더 적절한 조금 303 00:14:28,020 --> 00:14:31,910 내가 명시 적으로 반환하는거야 공은 모두가 잘 의미합니다. 304 00:14:31,910 --> 00:14:33,300 아무것도 나쁜 일이 없습니다. 305 00:14:33,300 --> 00:14:38,590 >> 그러나 관례, 내가 갈거야 한 돌아가거나 솔직히 아닌 0 값 306 00:14:38,590 --> 00:14:40,160 뭔가 잘못되었을 경우. 307 00:14:40,160 --> 00:14:43,270 이제 사용자에게 않을 것입니다 정말 무슨 일이 일어나고 있는지 알 수 있습니다. 308 00:14:43,270 --> 00:14:50,410 사실 나는이 디렉토리로 이동하는 경우, 우리는 확대 안녕하세요 넷을해야합니까 309 00:14:50,410 --> 00:14:54,210 내가 예상 한대로 ./hello-4 Zamyla 동작합니다. 310 00:14:54,210 --> 00:14:58,570 하지만 대신 입력하지 않은 경우 아무것도, 아무것도 일어날 것 같다, 311 00:14:58,570 --> 00:14:59,680 하지만 충돌하지 않습니다. 312 00:14:59,680 --> 00:15:04,660 그리고 내가 대신 일을 할 경우 롭 같은 감독관은 313 00:15:04,660 --> 00:15:07,550 Thayer-- 공유에 임의의 정보를 제공합니다. 314 00:15:07,550 --> 00:15:13,680 그러나 통지 argv를 1, 2, 3, 4, 5는 현재 메모리에 존재해야한다. 315 00:15:13,680 --> 00:15:16,540 즉,도하지 무슨이다 내 프로그램은 예상 316 00:15:16,540 --> 00:15:20,300 나는 여부를 확인했기 때문에 는 argc는 같음이 아닌지 같습니다. 317 00:15:20,300 --> 00:15:22,140 그래서 나는 지금이 방어하고 있습니다. 318 00:15:22,140 --> 00:15:25,290 >> 지금과 같은 옆으로, 우리 programmer-- 또는 오히려 우리 users--는 319 00:15:25,290 --> 00:15:29,670 0 또는 1 있지만이를 사용 중임을 확인하지 못합니다 도구, 디버거, 또는 다른 도구를 호출 320 00:15:29,670 --> 00:15:32,250 우리가 전에 볼로 한, 당신이 프로그래머 321 00:15:32,250 --> 00:15:36,590 실제로 될 일을 볼 수 있습니다 프로그램의 내부 잘못되어 가고. 322 00:15:36,590 --> 00:15:39,170 >> 그래서는 argc에 대한 질문? 323 00:15:39,170 --> 00:15:40,873 그래. 324 00:15:40,873 --> 00:15:45,292 >> 청중 : 내가 본 어디 문자가 없었어요, [INAUDIBLE] 325 00:15:45,292 --> 00:15:49,669 단지 같은 문자열 스타 D를 말했다 문자 별표 쉼표. 326 00:15:49,669 --> 00:15:50,710 그들은 여기에 해당합니까? 327 00:15:50,710 --> 00:15:51,626 >> DAVID 마란 : 그들은이다. 328 00:15:51,626 --> 00:15:55,080 질문은 그래서, 당신은이 가끔 본 프로그램 329 00:15:55,080 --> 00:15:57,270 그렇지 않은 다음과 같습니다 : 문자열 변수는 argv 브래킷을 말한다 330 00:15:57,270 --> 00:16:01,015 대신 뭔가 말 문자 스타는 argv 브래킷 등을들 수있다. 331 00:16:01,015 --> 00:16:03,140 그리고 심지어는 다른있다 당신이 볼 수있는 변형. 332 00:16:03,140 --> 00:16:04,264 그들은 참으로 동일합니다. 333 00:16:04,264 --> 00:16:06,240 지금, 우리는이가 훈련 바퀴의 정렬 334 00:16:06,240 --> 00:16:09,737 CS50에서 문자열의 형태에 도서관,하지만 단지 주 이상에서 335 00:16:09,737 --> 00:16:12,570 또는 그렇게 우리는 그것을 제거하는 겁니다 모두 실제로 폐쇄 336 00:16:12,570 --> 00:16:16,820 문자 및 별 무엇을보고 이고, 그 메모리에 관련된 방법 337 00:16:16,820 --> 00:16:18,140 표현보다 일반적으로. 338 00:16:18,140 --> 00:16:19,540 그래서 우리는 다시 그에게 올 것이다. 339 00:16:19,540 --> 00:16:21,540 >> 우리는 argv 또는는 argc에 다른 질문 있나요? 340 00:16:21,540 --> 00:16:22,397 그래. 341 00:16:22,397 --> 00:16:24,438 관객 : 왜 돌아 않았다 오류 [들리지? 342 00:16:24,438 --> 00:16:27,147 343 00:16:27,147 --> 00:16:29,230 DAVID 마란 : 왜 그랬는지 아, 먹을 것은 오류를 반환! 344 00:16:29,230 --> 00:16:31,813 이전의 경우, 언제 메모리와 주변 구부릴했다, 345 00:16:31,813 --> 00:16:35,110 이유는 오류를 반환 않았다 정말 큰 숫자를 입력 할 때? 346 00:16:35,110 --> 00:16:36,620 짧은 대답은 우리가 운이 좋았죠입니다. 347 00:16:36,620 --> 00:16:39,240 일반적으로, 컴퓨터 덩어리로 메모리를 할당 348 00:16:39,240 --> 00:16:42,900 그리고 그것은 나에게 충분히 큰 덩어리를 준 나는 들키지 않고, 멀리있어 349 00:16:42,900 --> 00:16:46,280 감동 브래킷 2, 브라켓 (3)의, 브래킷 (50),하지만 최대한 빨리 누르지로 350 00:16:46,280 --> 00:16:49,080 나의 운, 나는 넘어 갔다 메모리의 청크의 경계 351 00:16:49,080 --> 00:16:50,520 운영 체제는 저를 부여했다. 352 00:16:50,520 --> 00:16:52,720 그리고 그 때예요 아래로 고정없이 말했다. 353 00:16:52,720 --> 00:16:54,580 분할 오류입니다. 354 00:16:54,580 --> 00:16:55,692 그래. 355 00:16:55,692 --> 00:16:58,890 >> 대상 : 수행 방법 컴퓨터 는 argc의 값을 알아? 356 00:16:58,890 --> 00:17:02,390 >> DAVID 마란이 : 어떻게 컴퓨터는 argc의 값을 알아? 357 00:17:02,390 --> 00:17:07,920 당신이 프로그램을 실행하면 해당 프로그램, 프롬프트가 나타나면의 특성상, 358 00:17:07,920 --> 00:17:11,359 의 배열을 넘겨진다 입력 된 단어 359 00:17:11,359 --> 00:17:13,300 프롬프트에서, 그이었다 프롬프트에 입력했습니다. 360 00:17:13,300 --> 00:17:16,569 그리고 그것은 운영됩니다 시스템 본질적 361 00:17:16,569 --> 00:17:20,329 당신을 위해 주요의 인수를 채 웁니다. 362 00:17:20,329 --> 00:17:22,829 그래서 서비스 중 하나 당신이 얻을 것을 일종의 비밀 363 00:17:22,829 --> 00:17:24,869 의 후드 아래 운영체제. 364 00:17:24,869 --> 00:17:27,118 다른 질문 있나요? 365 00:17:27,118 --> 00:17:27,618 그래. 366 00:17:27,618 --> 00:17:29,787 >> 청중 : 코어 덤프가 무엇을 의미합니까? 367 00:17:29,787 --> 00:17:31,370 DAVID 마란 : 코어 덤프가 무엇을 의미합니까? 368 00:17:31,370 --> 00:17:32,950 그래서 좋은 질문이다. 369 00:17:32,950 --> 00:17:35,312 그리고 나에게로 돌아 가자 여기에이 디렉토리. 370 00:17:35,312 --> 00:17:37,270 그리고 당신은 그것을 알 수 있습니다 나는 거기에 새로운 파일이 있습니다. 371 00:17:37,270 --> 00:17:41,670 그것은 참으로 핵심이라고하고, 영역 이죠 실제로 일반적으로 괜찮은 크기의 파일입니다. 372 00:17:41,670 --> 00:17:45,300 즉, 본질적으로 스냅 샷입니다 내 프로그램 메모리 내용 373 00:17:45,300 --> 00:17:46,902 이 추락 또는 RAM. 374 00:17:46,902 --> 00:17:49,110 그리고 이것은, 도움이 될 것입니다 잠재적으로 진단 학적, 375 00:17:49,110 --> 00:17:52,850 우리는 미래의 강의에서 이야기하면 및 디버깅에 대한 부분, 376 00:17:52,850 --> 00:17:55,730 실제로 작업을 수행 할 수 있기 때문에 디지털 부검의 상당 377 00:17:55,730 --> 00:18:00,300 해당 파일에 파악하는 데 도움 당신은 당신의 프로그램에서 뭘 잘못했는지. 378 00:18:00,300 --> 00:18:01,220 그래. 379 00:18:01,220 --> 00:18:04,450 >> 관객 : 명령 ARGC인가 자체, 또는 당신은 아무것도 이름을 지정할 수 있습니다? 380 00:18:04,450 --> 00:18:05,575 >> DAVID 마란 : 좋은 질문입니다. 381 00:18:05,575 --> 00:18:08,040 그 자체로 명령 ARGC인가 또는 당신은 아무것도 이름을 지정할 수 있습니다? 382 00:18:08,040 --> 00:18:09,290 확실히 명령이 아니다. 383 00:18:09,290 --> 00:18:13,500 그것은 단순히 변수이다 또는 인수의 이름입니다, 384 00:18:13,500 --> 00:18:15,481 그래서 절대적으로 우리 이 foo는 호출 할 수 있습니다, 385 00:18:15,481 --> 00:18:18,480 우리는 경향이 줄을 호출 할 수 있습니다 이동 - 단어 컴퓨터가 될 수 있습니다 386 00:18:18,480 --> 00:18:19,860 과학자에 간다. 387 00:18:19,860 --> 00:18:22,820 그러나 규칙에 따라, 우리는 argc와 argv를 사용합니다. 388 00:18:22,820 --> 00:18:25,360 그러나 그것은 단지 인간이다 컨벤션, 아무것도 더. 389 00:18:25,360 --> 00:18:25,860 좋아. 390 00:18:25,860 --> 00:18:28,140 그래서 밝혀, 내가 봤는데 흰색 lie--의 비트를 말하는 391 00:18:28,140 --> 00:18:31,264 솔직히, 미래에, 당신은 볼 것이다 우리는 다른 흰색 거짓말을하고 있었어요. 392 00:18:31,264 --> 00:18:33,510 하지만 지금, 우리는거야 이들 중 하나를 벗겨합니다. 393 00:18:33,510 --> 00:18:37,310 이전 I 때 여기 이때 ./hello 또는 ./hello-3와 같은 프로그램을 실행 394 00:18:37,310 --> 00:18:42,780 Zamyla, 우리의 내용을 가지고 내 약처럼 보이는 컴퓨터의 메모리 395 00:18:42,780 --> 00:18:43,280 이. 396 00:18:43,280 --> 00:18:45,070 그러나 문자열이 무엇인지 기억합니다. 397 00:18:45,070 --> 00:18:49,279 우리는 무엇을 일주일 전에 말 했는가 문자열은 실제로 후드 아래에 무엇입니까? 398 00:18:49,279 --> 00:18:50,320 청중 : 문자의 배열입니다. 399 00:18:50,320 --> 00:18:52,111 DAVID 마란 : 그것은이다 문자의 배열, 오른쪽? 400 00:18:52,111 --> 00:18:55,760 그래서 우리의 배열이있을 수 있습니다 문자열하지만,​​ 차례 차례로, 문자열 401 00:18:55,760 --> 00:18:57,150 문자의 배열이다. 402 00:18:57,150 --> 00:19:00,010 난 정말 할 싶다면 나는이 그림을 그려 항문, 403 00:19:00,010 --> 00:19:03,290 정말 그리기해야 그것은 좀 더 이런 식으로, 404 00:19:03,290 --> 00:19:08,000 이에 의해 이들 각각의 내 argv 배열의 인덱스, 405 00:19:08,000 --> 00:19:11,432 전체 문자열 자체가 자신 있다는 것은 배열입니다. 406 00:19:11,432 --> 00:19:13,140 그리고 지금의 거짓말 오늘날 우리가 말하는 거 407 00:19:13,140 --> 00:19:15,181 사진이 없다는 것입니다 아주 같이. 408 00:19:15,181 --> 00:19:19,110 사실, 작은 사각형은 큰 사각형의 일반적으로 외부 409 00:19:19,110 --> 00:19:19,610 가. 410 00:19:19,610 --> 00:19:21,280 그러나 우리는 오래 전에 다시 그에게 올 것이다. 411 00:19:21,280 --> 00:19:25,440 그러나 이것은, ./hello 백 슬래시 0 그 특수 문자가있는 412 00:19:25,440 --> 00:19:28,310 문자열의 끝을 구분한다, 그리고 우리는 또 다른 한 후이있어 413 00:19:28,310 --> 00:19:29,360 Zamyla의 이름입니다. 414 00:19:29,360 --> 00:19:30,900 그래서 이것은 무엇을 의미 하는가? 415 00:19:30,900 --> 00:19:33,410 >> 글쎄, 내가 가서하자 이 다른 예를 열어 416 00:19:33,410 --> 00:19:35,220 온라인으로 사용할 수는 있습니다. 417 00:19:35,220 --> 00:19:40,590 하나는 argv1.c라고 다른 하나는 argv2이다. 418 00:19:40,590 --> 00:19:44,260 그것은 슈퍼 간단한 프로그램입니다 그 과거 프로그램 다르다 419 00:19:44,260 --> 00:19:47,260 점에서 지금은 사용하고 argc와는 여기 argv를. 420 00:19:47,260 --> 00:19:54,300 지금은 루프와 통합 해요 argc의 최대의 난에서 라인 (18) = 0이다. 421 00:19:54,300 --> 00:19:56,850 내가 뭘 하겠어 여기에이 코드 라인? 422 00:19:56,850 --> 00:19:58,270 영어. 423 00:19:58,270 --> 00:20:00,510 이것은 분명히는 argc의 사용을 보여줍니다. 424 00:20:00,510 --> 00:20:03,670 그러나 영어로 무엇을 수행합니다 나는이 프로그램을 실행하는 경우가 있습니까? 425 00:20:03,670 --> 00:20:04,366 그래? 426 00:20:04,366 --> 00:20:07,386 >> 청중 : 그것은 인쇄 할거야 당신 당신이 원하는만큼 화면. 427 00:20:07,386 --> 00:20:08,260 DAVID 마란 : 그렇지. 428 00:20:08,260 --> 00:20:10,480 그래서 어떤 단어 I 그것의 프롬프트에 입력 429 00:20:10,480 --> 00:20:13,120 역류 것 한 줄에 나 한테 그 하나. 430 00:20:13,120 --> 00:20:14,370 그럼 가서이 작업을 수행 할 수 있습니다. 431 00:20:14,370 --> 00:20:17,862 내 디렉토리에 가자 및 argv1 ./argv1을 수행. 432 00:20:17,862 --> 00:20:20,521 433 00:20:20,521 --> 00:20:21,770 그리고 지금의이 간단하게 할 수 있습니다. 434 00:20:21,770 --> 00:20:23,834 의 처음에 아무것도 할 수 있습니다. 435 00:20:23,834 --> 00:20:26,750 그것은 한 가지를 인쇄했고, 즉, 실제로 프로그램의 이름이다, 436 00:20:26,750 --> 00:20:28,240 그 브래킷 공에 있기 때문에. 437 00:20:28,240 --> 00:20:33,290 지금 foo는 말을하면, 그것은 할 것 그 두 가지, 내가 foo는 줄을 말한다면, 438 00:20:33,290 --> 00:20:35,580 그것은 그 세 가지를 말할 것입니다. 439 00:20:35,580 --> 00:20:37,740 이제 어쩌면 다소 흥미. 440 00:20:37,740 --> 00:20:41,450 하지만 변수는 argv를 불러 문자열의 배열입니다, 441 00:20:41,450 --> 00:20:45,960 하지만 문자열은 문자의 배열입니다, 그래서 우리는 한 단계 일을 걸릴 수 있습니다 442 00:20:45,960 --> 00:20:48,560 그 기본을 적용 논리와 코드를 만들어 그 443 00:20:48,560 --> 00:20:51,160 인정 하듯이, 좀 더 애매한 보인다. 444 00:20:51,160 --> 00:20:53,540 그러나에 의해 중첩 된 데 루프, 유사 뭔가 445 00:20:53,540 --> 00:20:57,030 당신은 마리오에서 호출을 사용하는 것과, 예를 들어, 경우에 당신은이 방법을했다. 446 00:20:57,030 --> 00:21:00,380 >> 그래서 지금 난, 라인 (19)에 통지 다시는 내 인수 반복, 447 00:21:00,380 --> 00:21:02,410 0에서 최대에 argc의합니다. 448 00:21:02,410 --> 00:21:05,510 그리고 지금 라인에 나는 21-- 해요 마지막 week--에서 트릭을 차입 449 00:21:05,510 --> 00:21:11,090 나는이 무엇인지 확인하고 있어요 argv와 브래킷 난의 길이. 450 00:21:11,090 --> 00:21:12,920 나는 N에서 그 답을 저장하고 있습니다. 451 00:21:12,920 --> 00:21:18,230 그리고 제가 일본에서에 통합하고있어 J가 0으로 초기화된다 N, 최대. 452 00:21:18,230 --> 00:21:19,460 그래서 계산을위한 대회. 453 00:21:19,460 --> 00:21:22,335 당신이있는 경우에 당신은 내가 사용하고 나면 중첩 루프, 당신은 다시 난을 사용할 수 없습니다 454 00:21:22,335 --> 00:21:25,770 그렇지 않으면 당신은 잠재적으로, 소지품 것이다, 내부 루프의 외부 값입니다. 455 00:21:25,770 --> 00:21:27,200 그래서 나는 규칙에 따라 J를 사용하고 있습니다. 456 00:21:27,200 --> 00:21:28,020 우리는 K를 사용할 수 있습니다. 457 00:21:28,020 --> 00:21:31,080 당신이 K 이상이있는 경우, 아마 일반적으로 너무 많이 중첩이있다. 458 00:21:31,080 --> 00:21:33,800 하지만 지금은 내 printf의 통지 라인은 약간 다릅니다. 459 00:21:33,800 --> 00:21:37,520 나는 % s을 (를) 인쇄 아니에요, 난 %의 C를 인쇄하는 물론 460 00:21:37,520 --> 00:21:39,460 문자에 대한 자리 표시 자입니다. 461 00:21:39,460 --> 00:21:40,770 >> 그리고 지금이 구문을 확인할 수 있습니다. 462 00:21:40,770 --> 00:21:41,270 새. 463 00:21:41,270 --> 00:21:42,630 우리는 전에 그것을 보지 못했다. 464 00:21:42,630 --> 00:21:47,290 그러나 논리적으로, 이것은 단지 의미 argv에 존재 i 번째 문자열을 얻을 465 00:21:47,290 --> 00:21:50,067 무엇 j 번째를 얻을 수? 466 00:21:50,067 --> 00:21:50,900 청중 : 문자입니다. 467 00:21:50,900 --> 00:21:52,800 DAVID 마란 : 문자열에서 문자입니다. 468 00:21:52,800 --> 00:21:57,100 그래서 대괄호를 사용하여 대괄호 다음에, 469 00:21:57,100 --> 00:22:00,390 이 첫번째 다이빙 변수는 argv의 문자열로, 470 00:22:00,390 --> 00:22:02,225 다음 두 번째 J 대괄호 471 00:22:02,225 --> 00:22:06,580 의 문자에 다이빙 argv에 존재하는 특정 문자열. 472 00:22:06,580 --> 00:22:09,562 그리고, 그냥 좋은 측정을위한, 여기 새로운 라인을 인쇄하고 있습니다. 473 00:22:09,562 --> 00:22:12,020 그래서 지금 내가 가서 열 수 있습니다 약간 더 큰 창 최대 474 00:22:12,020 --> 00:22:13,600 그래서 우리는 행동에서 볼 수 있습니다. 475 00:22:13,600 --> 00:22:15,700 나 해당 폴더로 가자. 476 00:22:15,700 --> 00:22:22,550 그리고 지금 확인 할 변수는 argv-2 ... 변수는 argv-2을 whoops--, ./argv 2. 477 00:22:22,550 --> 00:22:23,110 입력합니다. 478 00:22:23,110 --> 00:22:24,860 그리고 그것은 조금 어렵다 수직으로 읽는, 479 00:22:24,860 --> 00:22:27,920 하지만 실제로의 이름입니다 빈 줄 다음 프로그램. 480 00:22:27,920 --> 00:22:30,210 이제 내가 가서 foo는 작업을 수행 할 수 있습니다. 481 00:22:30,210 --> 00:22:33,210 마찬가지로 하드 판독하지만 야 할 실제로 한 줄에 하나의 문자를 인쇄 할 수 있습니다. 482 00:22:33,210 --> 00:22:36,780 나는 줄을한다면, 그것은 이제 라인으로 그 선을 인쇄. 483 00:22:36,780 --> 00:22:40,140 그래서 여기에 테이크 아웃은 너무 많이하지 않습니다 와우,이 깔끔한 새로운 마술을보고 있음 484 00:22:40,140 --> 00:22:44,750 어디 내용을 얻을 수 있습니다 배열의 특정 문자, 485 00:22:44,750 --> 00:22:48,380 오히려 우리는 이러한 기본을 복용하는 방법 배열로 인덱싱과 같은 아이디어, 486 00:22:48,380 --> 00:22:51,620 다음으로 인덱싱 해당 배열에 있었다 배열, 487 00:22:51,620 --> 00:22:56,180 단지 동일한 아이디어를 적용 조금 더 복잡한 예. 488 00:22:56,180 --> 00:22:59,560 그러나 기본은 정말하지 않은 심지어 지난 주 이후로 변경. 489 00:22:59,560 --> 00:23:02,350 >> 지금 이것은, 적시 일종이다 점에서, 주 제로에서, 리콜 490 00:23:02,350 --> 00:23:04,110 우리는이 같은 전화 번호부와 함께 연주. 491 00:23:04,110 --> 00:23:06,670 그리고 이것은 분명히에도 불구하고 종이의 물리적 조각, 492 00:23:06,670 --> 00:23:09,150 당신은 가지를 생각할 수 배열로 전화 번호부. 493 00:23:09,150 --> 00:23:12,770 당신이 인 경우에 확실히, 다시 구현 이 조각 종이의이 조각 494 00:23:12,770 --> 00:23:15,260 컴퓨터, 아마 당신이 뭔가를 사용하는 것이 495 00:23:15,260 --> 00:23:20,270 배열은 그 모두를 저장하는 것처럼 모든 방법에서 이름과 전화 번호 496 00:23:20,270 --> 00:23:23,800 Z까지 그래서이 있기 때문에, 좋은 그것은 우리에게 기회를 허용, 497 00:23:23,800 --> 00:23:28,310 어떻게 할 수도 있고, 아마도 고려 실제로 그런 일을 구현합니다. 498 00:23:28,310 --> 00:23:31,250 여기 문 시리즈로. 499 00:23:31,250 --> 00:23:36,380 나는 일은 ... 그렇다면 우리는 하나가 필요 최대에 와서 자원 봉사. 500 00:23:36,380 --> 00:23:36,980 어디 보자. 501 00:23:36,980 --> 00:23:40,650 익숙하지 아마도, 아마도 익숙하지 않은 얼굴. 502 00:23:40,650 --> 00:23:42,090 어떻게 오렌지 약? 503 00:23:42,090 --> 00:23:42,680 여기에. 504 00:23:42,680 --> 00:23:45,870 오렌지 셔츠, 업 어서. 505 00:23:45,870 --> 00:23:52,230 >> 의 지금과 이동 앞서 가자 측면을 통해 이러한 문, 506 00:23:52,230 --> 00:23:54,020 잠시 길에서 이러한 이동합니다. 507 00:23:54,020 --> 00:23:56,600 508 00:23:56,600 --> 00:23:57,760 당신의 이름은 무엇입니까? 509 00:23:57,760 --> 00:23:58,580 >> AJAY : 510 00:23:58,580 --> 00:23:58,655 >> DAVID 마란 : 아제. 511 00:23:58,655 --> 00:23:58,680 데이비드. 512 00:23:58,680 --> 00:23:59,451 만나서 반가워요. 513 00:23:59,451 --> 00:23:59,950 좋아. 514 00:23:59,950 --> 00:24:04,500 그래서 우리는이 여섯 뒤에있다 screen--에 디지털 도어 515 00:24:04,500 --> 00:24:07,810 또는 오히려, 일곱 문 숫자를 왕창 screen--. 516 00:24:07,810 --> 00:24:10,099 그리고 난 당신에게 아무것도 말하지했습니다 에 advance-- 동의? 517 00:24:10,099 --> 00:24:11,140 AJAY : 사전에 없음. 518 00:24:11,140 --> 00:24:14,730 DAVID 마란 : 모든 당신이 원하는 이제 나를 위해 찾는 것입니다, 그리고 우리를 위해, 519 00:24:14,730 --> 00:24:20,920 정말 수 (50) 한 번에 한 단계. 520 00:24:20,920 --> 00:24:21,830 >> AJAY : 번호 50? 521 00:24:21,830 --> 00:24:22,580 >> DAVID 마란 : 번호 50. 522 00:24:22,580 --> 00:24:24,746 그리고 당신은 무엇을 밝힐 수 이 문 각 뒤에 523 00:24:24,746 --> 00:24:27,930 단순히 손가락으로 만져. 524 00:24:27,930 --> 00:24:31,364 젠장. [웃음] 525 00:24:31,364 --> 00:24:34,560 >> [박수] 526 00:24:34,560 --> 00:24:39,540 >> 아주 잘. 527 00:24:39,540 --> 00:24:40,400 확인을 클릭합니다. 528 00:24:40,400 --> 00:24:44,090 우리는 멋진 선물이 여기 당신을 위해 수상. 529 00:24:44,090 --> 00:24:46,520 영화의 당신의 선택 우리 지난 주 논의했다. 530 00:24:46,520 --> 00:24:47,362 >> AJAY : 오, 이런. 531 00:24:47,362 --> 00:24:49,050 아, Spaceballs 본 적이 없어. 532 00:24:49,050 --> 00:24:49,520 >> DAVID 마란 : Spaceballs. 533 00:24:49,520 --> 00:24:50,140 좋아. 534 00:24:50,140 --> 00:24:53,790 그래서 한 순간에 개최합니다. 535 00:24:53,790 --> 00:24:57,430 의이를 만들어 보자, 어떻게? 가르침을받을만한 순간은 536 00:24:57,430 --> 00:25:00,412 당신은 어떻게 했나요 숫자 50를 찾는? 537 00:25:00,412 --> 00:25:01,370 AJAY : 나는 무작위로 선택했다. 538 00:25:01,370 --> 00:25:03,420 DAVID 마란 : 그래서 당신은 선택했다 무작위로 운이 좋았죠. 539 00:25:03,420 --> 00:25:03,790 AJAY : 예. 540 00:25:03,790 --> 00:25:04,456 DAVID 마란 : OK. 541 00:25:04,456 --> 00:25:05,050 우수. 542 00:25:05,050 --> 00:25:08,470 그래서 지금 당신을했으나, 운이, 어떤 다른받은 543 00:25:08,470 --> 00:25:10,210 이 문 뒤에 무슨 일이 있었 겠는가? 544 00:25:10,210 --> 00:25:12,930 내가 가서한다면 및 여기에이 번호를 공개, 545 00:25:12,930 --> 00:25:15,180 그들은 실제로 임의의 순서에 있습니다. 546 00:25:15,180 --> 00:25:17,750 그리고 최고의 당신이 가질 수 수행 솔직히, 궁극적입니다 547 00:25:17,750 --> 00:25:19,410 최악의 경우에는, 그들 모두를 검사. 548 00:25:19,410 --> 00:25:23,000 그래서 당신은, 슈퍼 행운이있어 어떤 우리는 알고리즘이라고 부르는 없습니다. 549 00:25:23,000 --> 00:25:24,730 그래, 축하합니다. 550 00:25:24,730 --> 00:25:27,010 당신이 할 수 있다면 그러나 지금, 유머에게 나를 let's--. 551 00:25:27,010 --> 00:25:28,310 여기서이 탭에 가자. 552 00:25:28,310 --> 00:25:31,460 그리고 여기에서 명확하게 숫자 임의의 순서로 보이는, 553 00:25:31,460 --> 00:25:32,280 그들은 있었다. 554 00:25:32,280 --> 00:25:35,160 하지만 지금은 대신 제 경우 이들 문 뒤에 555 00:25:35,160 --> 00:25:39,070 분류되어 숫자입니다. 556 00:25:39,070 --> 00:25:41,780 목표는 이제하다 우리에게 숫자 50를 찾을 수 있습니다. 557 00:25:41,780 --> 00:25:45,910 그러나 알고리즘을 수행하고 당신이 그것에 대해가는 여러분의 의견을 알려주세요. 558 00:25:45,910 --> 00:25:48,020 당신이 그것을 발견하면, 당신은 영화를 유지합니다. 559 00:25:48,020 --> 00:25:49,520 당신은, 당신이 그것을 돌려 줄 찾을 수 없습니다. 560 00:25:49,520 --> 00:25:52,720 561 00:25:52,720 --> 00:25:58,112 AJAY : 그래서 끝을 확인하는거야 첫째하게 있어요 여부를 결정합니다 562 00:25:58,112 --> 00:26:02,048 [웃음과 박수] 563 00:26:02,048 --> 00:26:04,451 564 00:26:04,451 --> 00:26:05,492 DAVID 마란 : 여기 당신은 간다. 565 00:26:05,492 --> 00:26:17,080 566 00:26:17,080 --> 00:26:21,700 의 하나를 살펴 보자 아제의 전임자, 567 00:26:21,700 --> 00:26:25,450 확실히 운이 숀. 568 00:26:25,450 --> 00:26:28,670 OK, 여기에 작업 때문에, 션은 다음과 같다. 569 00:26:28,670 --> 00:26:32,970 나는이 뒤에 숨겨진 문 7 번 570 00:26:32,970 --> 00:26:37,200 그러나이 문 중 일부에 자리 잡고 뿐만 아니라 다른 음이 아닌 숫자입니다. 571 00:26:37,200 --> 00:26:40,730 그리고 당신의 목표는이 생각하는 것입니다 그냥 배열로 숫자의 맨 위 행. 572 00:26:40,730 --> 00:26:43,590 우리는 개 단지 순서 야 그들 뒤에 숫자와 함께 종이의. 573 00:26:43,590 --> 00:26:47,640 그리고 당신의 목표는 정상을 사용합니다 배열 여기, 나에게 일곱 번째를 찾을 수 있습니다. 574 00:26:47,640 --> 00:26:51,200 그리고 우리는 그 비판하려고하는 당신은 그 일에 대해 가지 방법에 대해 설명합니다. 575 00:26:51,200 --> 00:26:52,920 우리에게 7이라는 숫자하십시오하실 수 있습니다. 576 00:26:52,920 --> 00:27:02,570 577 00:27:02,570 --> 00:27:03,070 번호 578 00:27:03,070 --> 00:27:06,760 579 00:27:06,760 --> 00:27:08,179 5, 19, 13. 580 00:27:08,179 --> 00:27:16,752 581 00:27:16,752 --> 00:27:17,835 속임수의 질문이 아니다. 582 00:27:17,835 --> 00:27:21,420 583 00:27:21,420 --> 00:27:21,920 1. 584 00:27:21,920 --> 00:27:26,715 585 00:27:26,715 --> 00:27:29,840 이 시점에서 당신의 점수는 매우 아니다 좋은, 그래서 당신은뿐만 아니라 계속 있습니다. 586 00:27:29,840 --> 00:27:32,870 587 00:27:32,870 --> 00:27:33,370 3. 588 00:27:33,370 --> 00:27:38,570 589 00:27:38,570 --> 00:27:39,802 에 이동합니다. 590 00:27:39,802 --> 00:27:42,510 솔직히, 나는 도움이되지만 궁금 수 없습니다 당신은 무엇을도에 대해 생각하고 있습니다. 591 00:27:42,510 --> 00:27:44,990 >> 숀 : 난 단지 맨 윗줄에서 걸릴 수 있습니다. 592 00:27:44,990 --> 00:27:46,240 DAVID 마란 : 만 맨 위 행. 593 00:27:46,240 --> 00:27:47,281 그래서 당신은 세 왼쪽 있어요. 594 00:27:47,281 --> 00:27:48,310 그래서 나에게 칠을 찾을 수 있습니다. 595 00:27:48,310 --> 00:27:54,758 596 00:27:54,758 --> 00:27:59,141 >> [관객이 제안을 소리 질러] 597 00:27:59,141 --> 00:28:22,210 598 00:28:22,210 --> 00:28:26,130 그래서 그 둘은 훌륭했다 매우 다른 이유. 599 00:28:26,130 --> 00:28:29,150 따라서이 어디 우리 조금 전에 중단, 600 00:28:29,150 --> 00:28:32,530 여기에 대한 통찰력 이 문은 번호가 있었다 601 00:28:32,530 --> 00:28:37,390 그들 뒤에 그 이상적인 정렬 된 에 대한 테이크 아웃은 당신이 할 수 있다는 것입니다 602 00:28:37,390 --> 00:28:39,670 근본적으로 더 나은 이 두 번째 example-- 603 00:28:39,670 --> 00:28:42,380 그리고, 참으로, 그 숀했다 임의의 숫자와 함께 첫 번째 시도 604 00:28:42,380 --> 00:28:45,460 그냥 before--하지만 곧 이 번호는 분류되어 있습니다로, 605 00:28:45,460 --> 00:28:47,980 전화 번호부처럼 많이 당신은 분명 무엇을 할 수 있습니까? 606 00:28:47,980 --> 00:28:50,090 또는 당신은 어떻게 그 지식을 활용할 수 있습니까? 607 00:28:50,090 --> 00:28:51,530 그래. 608 00:28:51,530 --> 00:28:54,910 >> 청중 : 당신은 [INAUDIBLE] 중간 이동합니다. 609 00:28:54,910 --> 00:28:55,660 DAVID 마란 : 그래. 610 00:28:55,660 --> 00:28:56,160 정확히. 611 00:28:56,160 --> 00:28:59,680 그래서 아제의 초기 본능이었다 내 기억으로는, 끝을 확인하기 위해, 612 00:28:59,680 --> 00:29:02,320 그리고 우리 종류의 완성 신속하게 예. 613 00:29:02,320 --> 00:29:05,220 우리가 시작하지만이 더 많은 일을 할 수 있습니다 차근 차근 그 라인을 따라, 614 00:29:05,220 --> 00:29:07,860 하지만 아마도 시작 중간 그들이 정렬하고 있기 때문에, 615 00:29:07,860 --> 00:29:10,900 즉시 우리가 공개로 번호 16, 우리 그러므로부터 알아 616 00:29:10,900 --> 00:29:14,850 그리고 이제 우리는 ... 그 얘기도 정확히하자 따라서 알고 50 그 오늘날의 경우에, 617 00:29:14,850 --> 00:29:16,080 오른쪽으로 가지고있다. 618 00:29:16,080 --> 00:29:18,735 그러니 그냥 같은 주 제로의 우리는 반으로 전화 번호부 찢어 619 00:29:18,735 --> 00:29:21,490 그리고의 절반을 던졌다 거리 문제, 여기에 같은 생각. 620 00:29:21,490 --> 00:29:23,680 우리는이 절반을 던질 수 문제의 거리. 621 00:29:23,680 --> 00:29:25,730 그리고 아마도 무엇을 알고리즘 적으로 할 수 있습니다, 622 00:29:25,730 --> 00:29:28,710 당신은 50해야한다는 알면 오른쪽에, 그것은 어디인지, 623 00:29:28,710 --> 00:29:31,390 중간에,이 시도이며 나머지 문. 624 00:29:31,390 --> 00:29:33,450 물론, (50)는 높은 42보다 그래서 우리는 할 수 있습니다 625 00:29:33,450 --> 00:29:36,060 이 나머지를 던져 거리 문제 분기 626 00:29:36,060 --> 00:29:38,510 그리고, 마지막으로, 확인 50 뭔가. 627 00:29:38,510 --> 00:29:41,050 그러나 단지와 같이 전화 번호부,이 숫자 628 00:29:41,050 --> 00:29:44,560 이미 우리에게 주어졌다 정렬 된 순서로, 우리를 잎 629 00:29:44,560 --> 00:29:47,450 질문, 당신은 어떻게 할 정렬 된 순서로 일을 처리? 630 00:29:47,450 --> 00:29:49,640 그리고 솔직히, 어떤 비용? 631 00:29:49,640 --> 00:29:51,390 그것은 할 한 가지 전화 번호부를 건네 632 00:29:51,390 --> 00:29:54,810 다음 찾아 당신의 친구들에게 감동을 오른쪽 정말로 빨리 전화 번호? 633 00:29:54,810 --> 00:29:58,520 을 찾기 위해 32 페이지를 찢어 4000000000 페이지 중 사람, 634 00:29:58,520 --> 00:30:00,470 우리는 하나의 극단적 인 예라고 말했다. 635 00:30:00,470 --> 00:30:03,320 그러나 얼마나 많은 시간은 걸렸나요 버라이존은 전화 번호부를 정렬하려면? 636 00:30:03,320 --> 00:30:06,170 그것은 우리 힘들어하지 않아 많은 시간 이 일곱 숫자를 정렬하는 방법? 637 00:30:06,170 --> 00:30:10,110 그게 우리가했습니다 질문 지금까지 완전히 무시했다. 638 00:30:10,110 --> 00:30:12,330 >> 그래서 지금은이 질문에 대답 할 수 있습니다. 639 00:30:12,330 --> 00:30:15,920 그리고 우리는 지금 모든 동영상 나간다, 그러나 우리는 약간의 스트레스 볼을해야합니까. 640 00:30:15,920 --> 00:30:19,480 , 팔 자원 봉사자는 말을하는 경우 여기에 우리를 합류 상관 없어? 641 00:30:19,480 --> 00:30:24,100 방법에 대한,의 앞서 가자와 할 당신의 네, 여기 세 가지? 642 00:30:24,100 --> 00:30:25,290 새로운 얼굴을 가져옵니다. 643 00:30:25,290 --> 00:30:27,220 그리고 거기의 네? 644 00:30:27,220 --> 00:30:30,760 그리고하지의 편의하자 지금은 - 이곳에와 여기에서 끝을 통해 여덟. 645 00:30:30,760 --> 00:30:32,060 올라 와요. 646 00:30:32,060 --> 00:30:32,560 좋아. 647 00:30:32,560 --> 00:30:37,480 그래서 우리는 여기에 대해 무엇을 당신의 각각의 숫자입니다. 648 00:30:37,480 --> 00:30:40,055 당신이 가고 싶은 경우 앞서,이 번호를 가지고. 649 00:30:40,055 --> 00:30:40,763 당신의 이름은 무엇입니까? 650 00:30:40,763 --> 00:30:41,950 >> 아티 : 아티. 651 00:30:41,950 --> 00:30:43,100 >> DAVID 마란 : 아티, 알았어요. 652 00:30:43,100 --> 00:30:44,297 당신은 수 일이야. 653 00:30:44,297 --> 00:30:45,310 >> AMIN : 아민. 654 00:30:45,310 --> 00:30:46,060 DAVID 마란 : 아민. 655 00:30:46,060 --> 00:30:46,820 데이비드. 656 00:30:46,820 --> 00:30:47,530 당신은 2 번이야. 657 00:30:47,530 --> 00:30:49,100 나는 손으로 그리고, 가서 만약 종이 시트 658 00:30:49,100 --> 00:30:52,130 음악 앞에 자신을 줄 거기와 같은 순서에 의미합니다. 659 00:30:52,130 --> 00:30:52,660 >> 앤디 : 안녕하세요, 앤디. 660 00:30:52,660 --> 00:30:53,970 >> DAVID 마란 : 앤디, 만나서하는 것이 좋다. 661 00:30:53,970 --> 00:30:54,520 번호 3. 662 00:30:54,520 --> 00:30:55,310 >> 야곱 야곱. 663 00:30:55,310 --> 00:30:56,760 >> DAVID 마란 : 야곱, 번호 4. 664 00:30:56,760 --> 00:30:57,549 탑승을 환영합니다. 665 00:30:57,549 --> 00:30:58,090 GRANT : 부여합니다. 666 00:30:58,090 --> 00:30:58,881 DAVID 마란 : 부여합니다. 667 00:30:58,881 --> 00:31:00,348 번호 5. 668 00:31:00,348 --> 00:31:01,200 >> 튼튼하게 알라나. 669 00:31:01,200 --> 00:31:02,766 >> DAVID 마란 튼튼하게, 번호 6. 670 00:31:02,766 --> 00:31:03,589 >> FRANCES : 프랜시스. 671 00:31:03,589 --> 00:31:04,880 DAVID 마란 : 프랜시스, 수 7. 672 00:31:04,880 --> 00:31:05,200 그리고? 673 00:31:05,200 --> 00:31:05,830 >> 레이첼 : 레이첼. 674 00:31:05,830 --> 00:31:06,815 >> DAVID 마란 : 레이첼, 숫자 8. 675 00:31:06,815 --> 00:31:07,100 좋아. 676 00:31:07,100 --> 00:31:08,766 가서 순서에 자신을 얻을. 677 00:31:08,766 --> 00:31:11,440 내가 나머지 하나를 넣어 보자 음악이 자리에 서있다. 678 00:31:11,440 --> 00:31:13,670 당신은 어디에서 독립을해야합니까? 679 00:31:13,670 --> 00:31:14,170 확인을 클릭합니다. 680 00:31:14,170 --> 00:31:18,710 가서 당신의 숫자를 넣어 여기서 관객이 그들을 볼 수 있습니다, 681 00:31:18,710 --> 00:31:20,340 음악은 바깥쪽으로 향하게 서있다. 682 00:31:20,340 --> 00:31:27,240 그리고 희망, 우리의 첫 번째 전성 검사 이곳에 4, 2, 6. 683 00:31:27,240 --> 00:31:27,890 오 - 오. 684 00:31:27,890 --> 00:31:29,070 분을 기다리십시오. 685 00:31:29,070 --> 00:31:31,140 우리는 팔이 없습니다. 686 00:31:31,140 --> 00:31:35,180 나는 당신을 퇴거해야 어떻게 든 예. 687 00:31:35,180 --> 00:31:35,680 번호 688 00:31:35,680 --> 00:31:36,940 아니, 괜찮아요. 689 00:31:36,940 --> 00:31:37,890 어디 보자. 690 00:31:37,890 --> 00:31:38,880 우리는이 작업을 수행 할 수 있습니다. 691 00:31:38,880 --> 00:31:39,440 대기. 692 00:31:39,440 --> 00:31:43,970 693 00:31:43,970 --> 00:31:45,740 우리가 간다. 694 00:31:45,740 --> 00:31:46,800 수정. 695 00:31:46,800 --> 00:31:47,360 좋아. 696 00:31:47,360 --> 00:31:50,260 그래서, 지금 우리는 8, 1, 3, 7, 5가있다. 697 00:31:50,260 --> 00:31:50,760 확인을 클릭합니다. 698 00:31:50,760 --> 00:31:51,360 우수. 699 00:31:51,360 --> 00:31:54,400 >> 그래서 손에 질문에,이다 어떤 비용 및 어떤 방법을 통해, 700 00:31:54,400 --> 00:31:58,580 우리가 실제로 여기에이 숫자를 정렬 할 수 있습니다 우리가 가지 뒤쪽으로 작업 할 수 있도록, 701 00:31:58,580 --> 00:32:02,759 궁극적으로, 그리고 decide--는 정말입니다 인상적인, 정말 효율적이다, 702 00:32:02,759 --> 00:32:04,550 내가 나눌 수 있고 전화 번호부를 정복? 703 00:32:04,550 --> 00:32:06,716 그것은 그 정말 효율적인 나는 분할하고 정복 할 수 있습니다 704 00:32:06,716 --> 00:32:08,600 이러한 디지털 조각 보드에 종이, 705 00:32:08,600 --> 00:32:14,500 그것은 우리에게 대가를 치르게 될거야 아마 경우 시간이나 에너지 또는 CPU 사이클의 행운 706 00:32:14,500 --> 00:32:17,340 실제로 우리의 데이터를 얻을 수 일부 정렬 된 순서로? 707 00:32:17,340 --> 00:32:18,930 그래서 그 질문을 물어 보자. 708 00:32:18,930 --> 00:32:22,077 >> 그래서, 일단,이 번호는 거의 임의의 순서로, 709 00:32:22,077 --> 00:32:24,160 내가 제안하는거야 한 알고리즘 또는 프로세스 710 00:32:24,160 --> 00:32:25,970 하는 우리는이 사람들을 정렬 할 수 있습니다. 711 00:32:25,970 --> 00:32:28,100 내가 다가 갈거야 이 꽤 순진. 712 00:32:28,100 --> 00:32:30,730 그리고 인식하는거야 나를 위해 많은 가지 있다고 713 00:32:30,730 --> 00:32:32,890 주위에 내 마음을 포장합니다 전체 데이터를 한 번에 설정합니다. 714 00:32:32,890 --> 00:32:33,640 그러나 당신은 무엇을 알고 있는가? 715 00:32:33,640 --> 00:32:37,450 나는 몇 가지를 만들려고 해요 아주 간단한 한계 수정. 716 00:32:37,450 --> 00:32:41,152 도 4 및도 2는 경우, 순서를 벗어난 목표는 최대 8 개에 1에서 이동하는 것입니다. 717 00:32:41,152 --> 00:32:41,860 그래서 당신이 뭘 알아? 718 00:32:41,860 --> 00:32:43,776 난 당신을 가질거야 당신이 전환하는 경우들, 교환 719 00:32:43,776 --> 00:32:46,380 물리적 위치와 종이의 당신의 조각. 720 00:32:46,380 --> 00:32:47,894 이제도 4 및도 06은 이러한 순서에있다. 721 00:32:47,894 --> 00:32:49,060 나는 사람들은 떠날거야. 722 00:32:49,060 --> 00:32:50,227 도 6 및도 8은, 그 순서대로있다. 723 00:32:50,227 --> 00:32:51,185 그들이 떠날 예정. 724 00:32:51,185 --> 00:32:52,170 순서가 8 AND1. 725 00:32:52,170 --> 00:32:54,790 당신이 교환 상관 없어합니다. 726 00:32:54,790 --> 00:32:57,300 이제 8 세, 너희들은 교환 할 수 있다면. 727 00:32:57,300 --> 00:32:59,320 8, 7, 너희들은 교환 할 수 있다면. 728 00:32:59,320 --> 00:33:01,790 그리고 8, 5, 너희들은 교환 할 수 있다면. 729 00:33:01,790 --> 00:33:03,980 >> 자, 다입니까? 730 00:33:03,980 --> 00:33:05,200 아니, 분명하지. 731 00:33:05,200 --> 00:33:07,880 하지만이 만든 더 나은 상황, 오른쪽? 732 00:33:07,880 --> 00:33:09,430 이름이 뭐였더라, 8 번? 733 00:33:09,430 --> 00:33:10,055 >> 레이첼 : 레이첼. 734 00:33:10,055 --> 00:33:12,850 DAVID 마란 : 그래서 레이첼이있다 효율적으로 꽤 멀리까지 버블, 735 00:33:12,850 --> 00:33:15,660 끝으로 끝까지 여기에 숫자의 내 배열입니다. 736 00:33:15,660 --> 00:33:17,310 그래서 그 문제는 가지 해결된다. 737 00:33:17,310 --> 00:33:21,670 이제, 분명히이 여전히 필요 조금 이동하고, 4, 6 및 1. 738 00:33:21,670 --> 00:33:24,420 하지만 난을받은 것 같다 용액에 가까운 작은. 739 00:33:24,420 --> 00:33:26,790 그래서이 같은 적용 할 수 다시 순진 발견. 740 00:33:26,790 --> 00:33:27,690 2, 4, OK. 741 00:33:27,690 --> 00:33:28,810 4, 6, 확인을 클릭합니다. 742 00:33:28,810 --> 00:33:29,930 6 일, mm-mm. 743 00:33:29,930 --> 00:33:32,230 의 스왑을 보자. 744 00:33:32,230 --> 00:33:33,200 6 세, mm-mm. 745 00:33:33,200 --> 00:33:34,420 의 스왑을 보자. 746 00:33:34,420 --> 00:33:35,580 6과 7은 OK입니다. 747 00:33:35,580 --> 00:33:36,590 7 및 05 아니. 748 00:33:36,590 --> 00:33:37,790 의 스왑을 보자. 749 00:33:37,790 --> 00:33:38,470 그리고 지금 7, 8. 750 00:33:38,470 --> 00:33:39,862 그리고 자네 이름이 뭐였더라? 751 00:33:39,862 --> 00:33:40,570 FRANCES : 프랜시스. 752 00:33:40,570 --> 00:33:41,445 DAVID 마란 : 프랜시스. 753 00:33:41,445 --> 00:33:44,230 그래서 지금 프랜시스는 심지어 더 나은에 위치, 이제도 7 및도 8 인해 754 00:33:44,230 --> 00:33:46,440 제대로 상단에 부풀어있다. 755 00:33:46,440 --> 00:33:47,510 그래서 2, 4, OK. 756 00:33:47,510 --> 00:33:48,720 4 일,하자 스왑. 757 00:33:48,720 --> 00:33:50,410 4, 3,하자 스왑. 758 00:33:50,410 --> 00:33:51,550 4, 6, 당신은 괜찮아요. 759 00:33:51,550 --> 00:33:53,340 6, 5,하자 스왑. 760 00:33:53,340 --> 00:33:54,590 그리고 지금 그 사람이 좋다. 761 00:33:54,590 --> 00:33:55,780 우리는 거의 다 왔어. 762 00:33:55,780 --> 00:33:57,706 2 일, 순서가, 그래서 교환합니다. 763 00:33:57,706 --> 00:33:59,080 그리고 지금 나를 전성 검사를 할 수 있습니다. 764 00:33:59,080 --> 00:34:03,080 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8. 765 00:34:03,080 --> 00:34:05,060 OK, 그래서 우리는 완료. 766 00:34:05,060 --> 00:34:09,310 >> 그러나 무슨 비용은 I를했다 여기에이 숫자를 정렬? 767 00:34:09,310 --> 00:34:13,960 글쎄, 얼마나 많은 단계 잠재적 I을했다 이 사람들을 정렬 할 때 걸릴? 768 00:34:13,960 --> 00:34:15,710 음, 우리는 다시 그 질문에 올 것이다. 769 00:34:15,710 --> 00:34:18,030 하지만, 솔직히, 당신이 가지고있는 경우 조금 지루는, 그건 770 00:34:18,030 --> 00:34:22,270 가지이 아니었다에 공개 어쩌면 가장 효율적인 알고리즘입니다. 771 00:34:22,270 --> 00:34:25,230 그리고 실제로, 솔직히, 나는 땀을 흘리고있어 모두가 더 앞뒤로 산책. 772 00:34:25,230 --> 00:34:26,639 즉, 특히 효율적인 느끼지 않았다. 773 00:34:26,639 --> 00:34:27,805 그래서 다른 뭔가를 할 수 있습니다. 774 00:34:27,805 --> 00:34:31,870 너희들은 다시 할 수 있다면 이 여덟 값을 자신. 775 00:34:31,870 --> 00:34:32,969 잘 했어. 776 00:34:32,969 --> 00:34:36,570 >> 그냥 들어, 디지털 살펴 보자 순간 우리는 다른 뭔가를 시도하기 전에 777 00:34:36,570 --> 00:34:38,179 방금 무슨 일이 있었는지에. 778 00:34:38,179 --> 00:34:41,330 여기, 당신은 볼에 대한이야 이 여덟 사람의 시각화 779 00:34:41,330 --> 00:34:44,719 이에 파란색과 빨간색 바는 숫자를 나타냅니다. 780 00:34:44,719 --> 00:34:46,670 키 바, 수 더 큰. 781 00:34:46,670 --> 00:34:48,510 짧은 바, 수가 적 으면. 782 00:34:48,510 --> 00:34:51,560 그리고 당신이 보게 될 것은입니다 그들의 팔보다 더 임의의 순서. 783 00:34:51,560 --> 00:34:55,830 이러한 막대를 만나러가는 중이 야 동일한 알고리즘으로 분류되어지고, 784 00:34:55,830 --> 00:34:59,890 또는, 지시 사항 집합 우리는 거품 정렬 이제부터는 전화 할께. 785 00:34:59,890 --> 00:35:04,000 그래서 초 정도마다, 알 이 바는, 적색으로 점등된다 786 00:35:04,000 --> 00:35:05,590 컴퓨터에 의해 비교되고있다. 787 00:35:05,590 --> 00:35:08,630 그리고 만약 큰 바, 작은 바는, 순서가 788 00:35:08,630 --> 00:35:11,220 그들은 나를 위해 교환되고있다. 789 00:35:11,220 --> 00:35:15,120 >> 지금이 믿을 수 없을만큼 지루 확실히,이를보고, 790 00:35:15,120 --> 00:35:18,630 매우 오래하지만 알 오른쪽으로 이동하는 큰 막대를 takeaway-- 791 00:35:18,630 --> 00:35:20,460 왼쪽으로 이동하는 작은 바. 792 00:35:20,460 --> 00:35:23,380 의이 과정을 중단하자 이 속도를 793 00:35:23,380 --> 00:35:27,330 훨씬 더 빨리, 그래서 우리가 할 수있는 어떤 고급 감을 얻을 794 00:35:27,330 --> 00:35:29,970 실제로, 거품 정렬은하고있다. 795 00:35:29,970 --> 00:35:33,150 실제로, 최대 버블 링이야 리스트의 우측, 796 00:35:33,150 --> 00:35:35,260 또는 배열, 더 큰 바. 797 00:35:35,260 --> 00:35:40,020 그리고 반대로, 작은 바 아르 왼쪽 아래로 자신의 길을 버블 링, 798 00:35:40,020 --> 00:35:42,950 빠른 속도이기는하지만 보다 우리는 이전했다. 799 00:35:42,950 --> 00:35:45,850 그래서 더 인간과 보려면, 하지만 시각이 참으로 무엇을이다 800 00:35:45,850 --> 00:35:46,540 무슨 일이 벌어지고. 801 00:35:46,540 --> 00:35:49,110 >> 그러나의 근본적 해보자 지금은 다른 접근 방식. 802 00:35:49,110 --> 00:35:52,387 의 다른 해보자 알고리즘 우리는 당신을 가지고있다 803 00:35:52,387 --> 00:35:59,640 사람이 원래의 시작 이 순서가 여기에 있었던 위치. 804 00:35:59,640 --> 00:36:00,827 그리고의 지금 진행하자. 805 00:36:00,827 --> 00:36:02,910 그리고 내가 뭔가를 할거야 더 간단, 맞죠? 806 00:36:02,910 --> 00:36:06,710 돌이켜 보면, 다시 페어 교환 다시 거의 조금 영리한. 807 00:36:06,710 --> 00:36:10,460 ,의 더욱 순진하게 일을하자 여기서 나는이 사람들을 정렬 할 경우, 808 00:36:10,460 --> 00:36:12,560 나 그냥 계속 찾아 보자 가장 작은 요소. 809 00:36:12,560 --> 00:36:14,570 그래서 지금은 4 인 내가 본 가장 작은 수입니다. 810 00:36:14,570 --> 00:36:15,695 내가 기억하는거야. 811 00:36:15,695 --> 00:36:17,750 아니,이 더 나은, 그리고 기억. 812 00:36:17,750 --> 00:36:20,730 한도 작다. 813 00:36:20,730 --> 00:36:21,970 3, 7, 5. 814 00:36:21,970 --> 00:36:22,470 확인을 클릭합니다. 815 00:36:22,470 --> 00:36:23,750 보이면 당신의 이름이 뭐였더라? 816 00:36:23,750 --> 00:36:24,400 >> 아티 : 아티. 817 00:36:24,400 --> 00:36:24,610 >> DAVID 마란 : 아티. 818 00:36:24,610 --> 00:36:25,460 그래서, 아티, 가서. 819 00:36:25,460 --> 00:36:27,043 I 라인 밖으로 당길거야. 820 00:36:27,043 --> 00:36:28,400 여기 다시 올 수 있다면. 821 00:36:28,400 --> 00:36:30,790 그리고 나는 그 공간을 확보해야합니다. 822 00:36:30,790 --> 00:36:32,040 우리는 여기에서 결정 포인트가 있습니다. 823 00:36:32,040 --> 00:36:36,000 우리는 여기 아티 공간을 만들 수있는 방법 수 일이 속하는 처음에? 824 00:36:36,000 --> 00:36:36,770 >> 대상 : 이동. 825 00:36:36,770 --> 00:36:38,950 >> DAVID 마란 : OK, 우리 모두를 이동 할 수 있습니다. 826 00:36:38,950 --> 00:36:40,860 그러나 최적화를 제안한다. 827 00:36:40,860 --> 00:36:43,410 즉, 조금 귀찮은 느낌 나 사명을 신청하기에 828 00:36:43,410 --> 00:36:44,620 아래로 모든 방법을 이동합니다. 829 00:36:44,620 --> 00:36:45,520 나는 다른 어떤 작업을 수행 할 수 있습니까? 830 00:36:45,520 --> 00:36:46,360 >> 관객 :을 전환합니다. 831 00:36:46,360 --> 00:36:46,850 >> DAVID 마란은 :을 전환합니다. 832 00:36:46,850 --> 00:36:47,900 그리고 자네 이름이 뭐였더라? 833 00:36:47,900 --> 00:36:48,441 >> 야곱 야곱. 834 00:36:48,441 --> 00:36:50,330 DAVID 마란 : 야곱 이동합니다. 835 00:36:50,330 --> 00:36:54,440 훨씬 더 효율적 그냥 가지고 아티와 야곱 스왑 위치 836 00:36:54,440 --> 00:36:56,710 강제력에 반대 이 사람들의 네, 837 00:36:56,710 --> 00:36:58,734 에, 대단히 감사합니다 자신의 정확한 위치. 838 00:36:58,734 --> 00:37:01,150 이제 어떻게 아티에 대한 좋은 데요, 그는 자신의 올바른 위치에 있습니다. 839 00:37:01,150 --> 00:37:02,060 다시 한 번이 작업을 수행 할 수 있습니다. 840 00:37:02,060 --> 00:37:03,730 2, 내가 본 것 중 가장 작은 수입니다. 841 00:37:03,730 --> 00:37:05,690 3, 7, 5. 842 00:37:05,690 --> 00:37:06,190 확인을 클릭합니다. 843 00:37:06,190 --> 00:37:07,467 이 확실히 작다. 844 00:37:07,467 --> 00:37:08,550 어떤 작업을 수행 할 필요가 없습니다. 845 00:37:08,550 --> 00:37:09,320 다시 한 번 해 보자. 846 00:37:09,320 --> 00:37:10,070 6. 847 00:37:10,070 --> 00:37:10,640 작은? 848 00:37:10,640 --> 00:37:11,140 8. 849 00:37:11,140 --> 00:37:11,590 아니. 850 00:37:11,590 --> 00:37:11,720 네? 851 00:37:11,720 --> 00:37:12,220 우. 852 00:37:12,220 --> 00:37:13,420 내가 네 기억하자. 853 00:37:13,420 --> 00:37:13,950 3. 854 00:37:13,950 --> 00:37:15,110 내가 3을 기억합시다. 855 00:37:15,110 --> 00:37:16,080 7, 5. 856 00:37:16,080 --> 00:37:18,490 나는했습니다 작은 수 이 패스를 볼 수는 3입니다. 857 00:37:18,490 --> 00:37:20,340 당신은 밖으로 올 것이라고합니다. 858 00:37:20,340 --> 00:37:21,986 어디 우리가 당신을 넣어가는거야? 859 00:37:21,986 --> 00:37:22,860 그리고 당신의 이름은 무엇입니까? 860 00:37:22,860 --> 00:37:23,530 >> 튼튼하게 알라나. 861 00:37:23,530 --> 00:37:25,780 >> DAVID 마란 튼튼하게, 우리는있어 당신을 퇴거해야 할 것. 862 00:37:25,780 --> 00:37:28,670 하지만 그게 더 효율적입니다 단지 이명을 교환하고, 863 00:37:28,670 --> 00:37:31,850 여러 사람이하는 것보다 실제로 이상 회피. 864 00:37:31,850 --> 00:37:32,850 이제 다시는이 작업을 수행 할 수 있습니다. 865 00:37:32,850 --> 00:37:34,980 나는 4를 선택, 그래서 밖으로 올거야. 866 00:37:34,980 --> 00:37:36,540 누가 이동하는거야? 867 00:37:36,540 --> 00:37:37,750 번호 8, 물론. 868 00:37:37,750 --> 00:37:40,260 지금은 숫자 5를 찾아내는 경우에, 밖으로 온다. 869 00:37:40,260 --> 00:37:42,104 번호 8 다시 퇴거 당할 것이다. 870 00:37:42,104 --> 00:37:43,770 지금 자리에 숫자 6을 찾을거야. 871 00:37:43,770 --> 00:37:44,410 장소에 7. 872 00:37:44,410 --> 00:37:45,080 대신 8. 873 00:37:45,080 --> 00:37:48,590 >> 우리가 지금 한 것은 선택 정렬라는 것을, 874 00:37:48,590 --> 00:37:52,560 우리는이를 시각화하는 경우, 그것은이다 조금 다른 느낌 것. 875 00:37:52,560 --> 00:37:56,800 의 앞서이에서 가자 메뉴 여기,이 visualization-- 876 00:37:56,800 --> 00:38:02,920 의는, 파이어 폭스에 오셨죠이 설정을 변경 할 수 있습니다. 877 00:38:02,920 --> 00:38:07,610 이제 선택 정렬로 변경하자. 878 00:38:07,610 --> 00:38:11,830 그리고 이제 이전과 속도를 높일 수 있도록, 이제 시각화를 시작합니다. 879 00:38:11,830 --> 00:38:13,990 그리고이 알고리즘은있다 그것에 다른 느낌. 880 00:38:13,990 --> 00:38:16,480 각각의 반복에, 솔직히, 그것은 훨씬 더 간단합니다. 881 00:38:16,480 --> 00:38:18,385 난 그냥 작은 요소를 선택하고 있습니다. 882 00:38:18,385 --> 00:38:21,510 자, 솔직히, 그 약간의 운이있어 시간, 그에서 초고속 분류. 883 00:38:21,510 --> 00:38:22,660 요소는 임의이었다. 884 00:38:22,660 --> 00:38:25,520 그것은는 우리가 결국거야, 아니야 근본적으로 빠르고 참조하십시오. 885 00:38:25,520 --> 00:38:29,400 그러나 이제 세 번째이자 마지막 보자 무슨 일이 일어나고 있는지에 여기에 접근. 886 00:38:29,400 --> 00:38:36,230 그럼 가서하자 너희들을 다시 일 마지막으로 여기에이 순서로한다. 887 00:38:36,230 --> 00:38:38,450 >> 그리고 지금, 나는 갈거야 , 좀 더 영리 888 00:38:38,450 --> 00:38:40,220 우리의 알고리즘을 완성합니다. 889 00:38:40,220 --> 00:38:41,230 난 할거야. 890 00:38:41,230 --> 00:38:43,140 나는 갈거야 앞뒤로 정말 감사합니다. 891 00:38:43,140 --> 00:38:44,900 솔직히, 난 지쳤어 이 모든 이송. 892 00:38:44,900 --> 00:38:47,691 난 그냥 난 무엇을 가지고 갈거야 리스트의 처음에 주어진 893 00:38:47,691 --> 00:38:49,460 나는 정렬 할거야 그 다음 거기. 894 00:38:49,460 --> 00:38:50,140 그래서 여기에 우리가 있습니다. 895 00:38:50,140 --> 00:38:51,030 번호 4. 896 00:38:51,030 --> 00:38:53,680 나는 번호를 삽입 할거야 정렬 된 목록에 네. 897 00:38:53,680 --> 00:38:54,180 완료. 898 00:38:54,180 --> 00:38:58,300 지금 주장하고, 그냥이 더 만들기 위해 분명, 내 목록의이 부분은 정렬됩니다. 899 00:38:58,300 --> 00:39:02,610 그것은 바보 같은 주장 가지이지만, 실제로 4는 크기 하나의 목록에 정렬​​됩니다. 900 00:39:02,610 --> 00:39:04,210 지금, 나는 2 번에 걸릴거야. 901 00:39:04,210 --> 00:39:07,670 수 2는 지금 갈거야 적절한 장소에 삽입합니다. 902 00:39:07,670 --> 00:39:08,680 어디이 소속입니까? 903 00:39:08,680 --> 00:39:09,824 물론, 여기. 904 00:39:09,824 --> 00:39:11,490 그래서 가서 당신이 할 수 있다면, 다시 이동합니다. 905 00:39:11,490 --> 00:39:14,406 그리고 왜 너희들은 그냥해야 하나 음악은 당신과 함께이 시간을 의미합니다. 906 00:39:14,406 --> 00:39:17,020 그리고 강제로하자를 삽입 목록의 처음으로. 907 00:39:17,020 --> 00:39:17,936 그래서 좀 더 많은 작업. 908 00:39:17,936 --> 00:39:20,890 나는 주위 야곱를 이동했다 당신의 이름은 무엇입니까? 909 00:39:20,890 --> 00:39:21,420 >> AMIN : 아민. 910 00:39:21,420 --> 00:39:22,270 >> DAVID 마란 : 아민. 911 00:39:22,270 --> 00:39:24,350 그러나 적어도 나는 앞뒤로 가지 않았다. 912 00:39:24,350 --> 00:39:25,739 내가 가서 그냥 물건을 가지고 있어요. 913 00:39:25,739 --> 00:39:27,530 나는 단지 그들을 삽입 해요 바로 이곳에서. 914 00:39:27,530 --> 00:39:29,220 6, 이것은 실제로 매우 간단합니다. 915 00:39:29,220 --> 00:39:31,510 당신이 있나, 저기를 삽입하자 단지 약간 이상 이동 싶었다. 916 00:39:31,510 --> 00:39:32,870 번호 8, 또한 매우 쉽다. 917 00:39:32,870 --> 00:39:33,741 바로 저기. 918 00:39:33,741 --> 00:39:34,240 젠장. 919 00:39:34,240 --> 00:39:37,590 번호 하나 우리는 할 수 없습니다 만 여기 아민으로 교체, 920 00:39:37,590 --> 00:39:39,340 그 때문에거야 엉망 순서. 921 00:39:39,340 --> 00:39:40,660 그래서 우리는 좀 더 영리해야한다. 922 00:39:40,660 --> 00:39:42,770 그래서, 아티는 경우는 수 잠시 백업합니다. 923 00:39:42,770 --> 00:39:46,550 , 이제 가서 지금 이동하자 이전 알고리즘과는 달리, 924 00:39:46,550 --> 00:39:50,910 아티을위한 공간을 만들기 위해 여기 처음에. 925 00:39:50,910 --> 00:39:54,690 하루의 끝에 그래서 나는 가지 해요 내가 전에 피하기 위해 원하는 것을하고. 926 00:39:54,690 --> 00:39:57,770 그래서 내 알고리즘은 일종의 의는 지적 반전 927 00:39:57,770 --> 00:39:59,070 그것은 원래 무엇에서. 928 00:39:59,070 --> 00:40:01,240 난 그냥 이동을하고 있어요 상이한 시점. 929 00:40:01,240 --> 00:40:02,291 지금은 세에 있어요. 930 00:40:02,291 --> 00:40:02,790 이런, 젠장. 931 00:40:02,790 --> 00:40:04,039 우리는 다시 더 많은 작업을 수행해야합니다. 932 00:40:04,039 --> 00:40:05,060 그래서 당신을 밀어 보자. 933 00:40:05,060 --> 00:40:09,360 좋아, 이동, 8, 6, 4-- 오 ... 오와 3 바로 거기에 갈 것입니다. 934 00:40:09,360 --> 00:40:11,490 이 때 적어도 약간의 저축에서 그래서. 935 00:40:11,490 --> 00:40:13,100 7, 너무 많은 작업을 수행 할 수 있습니다. 936 00:40:13,100 --> 00:40:15,370 당신이 팝업 싶다면 다시,의 당신을 삽입 할 수 있습니다. 937 00:40:15,370 --> 00:40:17,440 그리고 마지막으로, 오, 당신이 경우 다시 팝업 할, 우리 938 00:40:17,440 --> 00:40:22,610 당신을 전환 할 필요가 오 때까지 당신은 장소에 있습니다. 939 00:40:22,610 --> 00:40:25,670 >> 그래서 지금에이를 볼 수 있습니다 그래픽 고레벨 940 00:40:25,670 --> 00:40:31,080 의는이 알고리즘을하자 시각화 한 추가 시간. 941 00:40:31,080 --> 00:40:33,580 그래서 이것은 우리가 삽입 정렬을 호출해야한다. 942 00:40:33,580 --> 00:40:37,700 우리는 단지로 실행합니다 빠르고, 여기를 시작합니다. 943 00:40:37,700 --> 00:40:39,580 그리고 그것은 너무 다른 느낌이있다. 944 00:40:39,580 --> 00:40:42,180 그것은 종류의 더 나은 점점 및 더 나은,하지만 완벽 결코 945 00:40:42,180 --> 00:40:44,630 나는 그 틈에 부드러운 갈 때까지. 946 00:40:44,630 --> 00:40:47,860 때문에, 다시, 나는 단지 복용하고있어 나는 왼쪽에서 오른쪽으로 주어지고 있어요. 947 00:40:47,860 --> 00:40:50,350 그래서 나는 운이하지 않았다 모든 것이 완벽했다. 948 00:40:50,350 --> 00:40:54,190 우리는이 작은 있었다 이유 우리가 시간이 지남에 고정 mispositions. 949 00:40:54,190 --> 00:40:58,890 >> 그래서 이러한 알고리즘 모두에 보인다 약간 다른 걸음에 실행합니다. 950 00:40:58,890 --> 00:41:02,030 사실, 어떤 당신은 말할 것 최고의 또는 지금까지 가장 빠른? 951 00:41:02,030 --> 00:41:03,450 버블 정렬, 첫째? 952 00:41:03,450 --> 00:41:05,000 선택 정렬, 초? 953 00:41:05,000 --> 00:41:08,450 삽입 정렬, 셋째? 954 00:41:08,450 --> 00:41:10,710 나는 약간의 선택 종류들을 수 있습니다. 955 00:41:10,710 --> 00:41:13,280 다른 생각? 956 00:41:13,280 --> 00:41:16,880 >> 그래서 밝혀 이러한 알고리즘의 모든 957 00:41:16,880 --> 00:41:22,400 근본적으로 단지 효율적입니다 다만, 역으로 각각 다른 것이라면 또는 958 00:41:22,400 --> 00:41:25,980 서로 같은 비효율적 우리가 근본적으로 할 수 있기 때문에 959 00:41:25,980 --> 00:41:28,120 세보다 더 이러한 알고리즘의. 960 00:41:28,120 --> 00:41:29,990 그리고 흰색 거짓말의 비트도 있습니다. 961 00:41:29,990 --> 00:41:32,580 나는 효율적 말할 때 비효율적으로, 962 00:41:32,580 --> 00:41:35,040 그 이상에 대한이야 N의 초대형 값. 963 00:41:35,040 --> 00:41:38,450 우리가 여기에 단지 8 명이있을 때, 아니면 화면에 50 정도 바, 964 00:41:38,450 --> 00:41:41,645 당신은 절대적으로 차이를 알 수 있습니다 이 세 가지 알고리즘 중. 965 00:41:41,645 --> 00:41:44,020 그러나 N 등, 사람의 수, 또는 숫자의 개수, 966 00:41:44,020 --> 00:41:46,350 또는 휴대폰에서 사람의 수 책, 또는 웹 페이지의 수가 967 00:41:46,350 --> 00:41:48,230 구글의 데이터베이스에 , 더 크고 더 커지며 968 00:41:48,230 --> 00:41:51,650 이 부분에 대해서는 다음의 세 알고리즘은 실제로 매우 가난하다. 969 00:41:51,650 --> 00:41:54,060 그리고 우리는 근본적으로 할 수 보다 더 나은. 970 00:41:54,060 --> 00:41:56,830 >> , 이제 마지막으로 살펴 보자 어떻게 이러한 알고리즘은 수도에서 971 00:41:56,830 --> 00:41:59,520 에서 같은 소리 몇 가지 다른 컨텍스트 972 00:41:59,520 --> 00:42:03,550 뿐만 아니라이의 방법으로 여기 시각화 973 00:42:03,550 --> 00:42:06,860 그것은 우리를 소개합니다 알고리즘의 수입니다. 974 00:42:06,860 --> 00:42:10,330 이제 가서 축하하자 누구의 모두 여기에 우리의 참가자, 975 00:42:10,330 --> 00:42:11,690 매우 자신을 잘 분류. 976 00:42:11,690 --> 00:42:15,124 당신은 이별 선물을하고 싶다면. 977 00:42:15,124 --> 00:42:16,540 당신은 당신의 번호를 유지할 수 있습니다. 978 00:42:16,540 --> 00:42:19,460 979 00:42:19,460 --> 00:42:22,520 그리고 당신은 볼 것을, 또는 오히려, 지금 듣고 980 00:42:22,520 --> 00:42:25,710 입니다 우리는 소리를 넣어 이 바의 각 행 981 00:42:25,710 --> 00:42:28,660 그리고, 소프트웨어와 연결 소리의 서로 다른 주파수, 982 00:42:28,660 --> 00:42:33,970 당신은 당신의 마음을 더 audioly을 포장 할 수 있습니다 이런 것들을 어떻게 각 주변 983 00:42:33,970 --> 00:42:34,470 처럼. 984 00:42:34,470 --> 00:42:39,325 그 중 첫째는 삽입 일종의 985 00:42:39,325 --> 00:42:44,275 >> [TONES] 986 00:42:44,275 --> 00:42:47,245 987 00:42:47,245 --> 00:42:49,720 >> 이 거품의 일종이다. 988 00:42:49,720 --> 00:42:54,175 >> [TONES] 989 00:42:54,175 --> 00:43:17,250 990 00:43:17,250 --> 00:43:18,222 >> 선택 정렬. 991 00:43:18,222 --> 00:43:22,596 >> [TONES] 992 00:43:22,596 --> 00:43:33,570 993 00:43:33,570 --> 00:43:35,150 >> 병합 정렬라는 뭔가. 994 00:43:35,150 --> 00:43:38,140 >> [TONES] 995 00:43:38,140 --> 00:43:49,510 996 00:43:49,510 --> 00:43:51,278 >> 그놈 일종. 997 00:43:51,278 --> 00:43:56,390 >> [TONES] 998 00:43:56,390 --> 00:44:08,240 999 00:44:08,240 --> 00:44:09,430 >> 즉, CS50은 여기까지. 1000 00:44:09,430 --> 00:44:13,360 우리는 수요일에 당신을 볼 수 있습니다. 1001 00:44:13,360 --> 00:44:16,671 >> 내레이터 : 그리고 지금, "깊은 Daven 판햄으로 생각 ". 1002 00:44:16,671 --> 00:44:19,910 1003 00:44:19,910 --> 00:44:21,590 왜 for 루프는 무엇입니까? 1004 00:44:21,590 --> 00:44:23,200 왜 그것을 더 만들? 1005 00:44:23,200 --> 00:44:25,970 나는 오 루프를 만들 것. 1006 00:44:25,970 --> 00:44:28,720 >> [웃음]