1 00:00:00,000 --> 00:00:13,300 2 00:00:13,300 --> 00:00:15,010 >> ROB 보덴은 : 안녕, 난 롭 해요. 3 00:00:15,010 --> 00:00:16,790 우리는 어떻게 이진 검색을 사용합니까? 4 00:00:16,790 --> 00:00:18,770 찾아 보자. 5 00:00:18,770 --> 00:00:23,400 그래서,이 검색은 우리가 가고 있습니다 재귀 적으로 구현합니다. 6 00:00:23,400 --> 00:00:27,470 또한 이진 검색을 구현​​할 수 반복적으로, 그래서 당신은 그런 적이있는 경우, 7 00:00:27,470 --> 00:00:29,280 그것은 완벽하게 괜찮아요. 8 00:00:29,280 --> 00:00:32,820 >> 이제 첫째, 기억합시다 무엇 검색에 대한 매개 변수가 될 것을 의미한다. 9 00:00:32,820 --> 00:00:36,120 여기, 우리는 int 값을 참조 사용자가 값이고 가정 10 00:00:36,120 --> 00:00:37,320 에 대한 검색. 11 00:00:37,320 --> 00:00:40,800 우리는 INT 값 배열을 참조하는 우리가 야하는 배열 12 00:00:40,800 --> 00:00:42,520 값을 검색. 13 00:00:42,520 --> 00:00:45,602 그리고 우리는이다, INT의 N 참조 우리의 배열의 길이. 14 00:00:45,602 --> 00:00:47,410 >> 자, 우선 처음. 15 00:00:47,410 --> 00:00:51,350 우리는 n이에, 0에 해당하는지 확인 우리는 false를 반환하는 경우. 16 00:00:51,350 --> 00:00:54,770 우리가 비어있는 경우 그건 그냥 말하는 것 배열 값은 명확하지 않습니다 17 00:00:54,770 --> 00:00:57,860 하늘의 배열은, 그래서 우리는 false를 반환 할 수 있습니다. 18 00:00:57,860 --> 00:01:01,250 >> 이제, 우리는 실제로 바이너리를 수행 할 이진 검색의 검색 부분. 19 00:01:01,250 --> 00:01:04,780 그래서, 우리는 중간을 찾으려면 이 배열의 요소입니다. 20 00:01:04,780 --> 00:01:09,130 여기, 우리는 중간 분할 N에 해당 말 이 기준, 중간 요소이기 21 00:01:09,130 --> 00:01:12,240 의 길이 될 것 우리는이 어레이에 의​​해 분할. 22 00:01:12,240 --> 00:01:15,040 이제 우리는 확인하려고하는 경우 중간 요소는 우리가하고있는 값과 동일 23 00:01:15,040 --> 00:01:16,160 에 대한 검색. 24 00:01:16,160 --> 00:01:21,030 값의 중간 값에 해당 그렇다면, 우리 우리가 발견 한 이후 true를 반환 할 수 있습니다 25 00:01:21,030 --> 00:01:22,810 우리의 배열에있는 값입니다. 26 00:01:22,810 --> 00:01:26,380 >> 그러나 그것은 사실이 아니었다면, 지금 우리는 재귀을 할 필요가 27 00:01:26,380 --> 00:01:27,840 이진 검색의 단계. 28 00:01:27,840 --> 00:01:30,450 우리는에 하나를 검색해야 배열 또는 왼쪽 29 00:01:30,450 --> 00:01:32,320 배열의 중간. 30 00:01:32,320 --> 00:01:39,280 중간에 값이있는 경우, 그래서 여기에 우리는 말 값보다 작은, 즉 그 값을 의미한다 31 00:01:39,280 --> 00:01:41,350 중간보다 큰 배열의 형태가됩​​니다. 32 00:01:41,350 --> 00:01:45,790 그래서 값의 오른쪽에 있어야 우리가 바라 보았다 요소입니다. 33 00:01:45,790 --> 00:01:48,090 >> 그래서 여기, 우리는거야 재귀 적으로 검색 할 수 있습니다. 34 00:01:48,090 --> 00:01:50,320 그리고 우리는 우리가 통과하는지 살펴 보자 두 번째로이에. 35 00:01:50,320 --> 00:01:53,440 그러나 우리는에 검색 할거야 중간 요소의 권리. 36 00:01:53,440 --> 00:01:57,710 다른 경우에, 그 의미 값이 중간보다 작은 37 00:01:57,710 --> 00:02:00,660 배열, 그리고 우리는거야 왼쪽에있는 검색하십시오. 38 00:02:00,660 --> 00:02:03,520 이제 왼쪽이 될 것입니다 좀 더 쉽게 볼 수 있습니다. 39 00:02:03,520 --> 00:02:07,770 그래서, 우리는 우리가 반복적으로 걸 여기 참조 여기서 첫 번째 검색을 호출 40 00:02:07,770 --> 00:02:10,120 인수는 다시 값입니다 우리는 이상 찾고 있습니다. 41 00:02:10,120 --> 00:02:14,970 두 번째 인수는 될 것입니다 우리가 이상 찾고 있다고 배열입니다. 42 00:02:14,970 --> 00:02:17,090 그리고 마지막 요소는 지금 중간입니다. 43 00:02:17,090 --> 00:02:21,650 마지막 매개 변수는 우리의 int이며 기억 N, 즉 우리의 배열의 길이의 때문에. 44 00:02:21,650 --> 00:02:25,310 >> 검색하는 재귀 호출에서, 우린 지금 말하는 그 길이 45 00:02:25,310 --> 00:02:27,230 배열은 중간입니다. 46 00:02:27,230 --> 00:02:32,900 그래서, 우리의 배열은 크기 20 그리고 우리의라면 중간이기 때문에, 인덱스 10에서 검색 47 00:02:32,900 --> 00:02:36,930 (20)를 2로 나눈, 그것은 우리가있어 의미 새로 (10)를 통과 48 00:02:36,930 --> 00:02:38,300 우리의 배열의 길이. 49 00:02:38,300 --> 00:02:41,910 기억하십시오 당신은 배열이있을 때 길이 10, 그 유효한 수단 50 00:02:41,910 --> 00:02:45,450 요소는 0에서 9까지의 인덱스에 있습니다. 51 00:02:45,450 --> 00:02:50,120 그래서 이것은 우리가 원하는 정확히 무엇입니까 왼쪽 - 업데이트 된 배열을 지정 52 00:02:50,120 --> 00:02:53,010 중간 엘리먼트의 배열. 53 00:02:53,010 --> 00:02:55,710 >> 그래서 오른쪽으로 찾고 있습니다 조금 더 어렵습니다. 54 00:02:55,710 --> 00:03:00,170 이제 첫째, 길이를 생각해 보자 오른쪽에 배열 55 00:03:00,170 --> 00:03:01,240 중간 요소입니다. 56 00:03:01,240 --> 00:03:08,390 그래서, 우리의 배열의 크기 n의 인 경우, 다음 새로운 배열의 크기 n을 뺀 될 것입니다 57 00:03:08,390 --> 00:03:10,140 중간 - 1. 58 00:03:10,140 --> 00:03:12,530 그래서, N 마이너스 중간 생각하자. 59 00:03:12,530 --> 00:03:18,710 >> 또, 배열의 사이즈가 20 인 경우와 우리는 중간을 얻기 위해 2로 나누어, 60 00:03:18,710 --> 00:03:23,540 그래서 중간은 10, n은 마이너스 중순 우리가 10, 그래서 10을 제공하는 것입니다 61 00:03:23,540 --> 00:03:25,330 중간의 오른쪽에있는 요소입니다. 62 00:03:25,330 --> 00:03:27,780 그러나 우리는 또한이 마이너스가 1, 우리는 원하지 않기 때문에 63 00:03:27,780 --> 00:03:29,700 중간 자체 있습니다. 64 00:03:29,700 --> 00:03:34,190 그래서 N 마이너스 중간에서 1을 뺀 우리에게 제공 오른쪽에있는 요소의 총 수 65 00:03:34,190 --> 00:03:36,800 배열의 중간 색인. 66 00:03:36,800 --> 00:03:41,870 >> 지금 여기, 기억이 중간 매개 변수 값의 배열입니다. 67 00:03:41,870 --> 00:03:46,180 그래서 여기, 우리를 전달하고 업데이트 된 값의 배열입니다. 68 00:03:46,180 --> 00:03:50,930 이 값이 플러스 중간에 1을 더한입니다 실제로 재귀 적으로 호출 말 69 00:03:50,930 --> 00:03:56,460 검색, 새로운 배열을 전달 곳 이 새로운 배열은 중앙에서 시작 70 00:03:56,460 --> 00:03:59,370 플러스 우리의 원래 값의 배열의 하나. 71 00:03:59,370 --> 00:04:05,400 >> 그에 대한 대체 구문, 지금 당신은 포인터를 참조하기 시작했습니다 72 00:04:05,400 --> 00:04:10,170 앰퍼샌드 값 중간 플러스 1. 73 00:04:10,170 --> 00:04:17,149 따라서, 중간의 주소를 잡아 값을 더한 요소입니다. 74 00:04:17,149 --> 00:04:23,690 >> 자, 당신은 편안하지 않다면 당신은 그와 같은 배열을 수정 75 00:04:23,690 --> 00:04:28,900 또한 사용하여이를 구현 한 수 재귀 도우미 기능, 위치 76 00:04:28,900 --> 00:04:31,680 그 도우미 기능을합니다 이상의 인수. 77 00:04:31,680 --> 00:04:36,610 그래서 대신 값을 취하는, 배열 및 배열의​​ 크기 78 00:04:36,610 --> 00:04:42,315 도우미 기능이 더 걸릴 수 있습니다 낮은 인덱스 등의 인수, 79 00:04:42,315 --> 00:04:45,280 당신은 배열에 대한 관심 것 그리고 당신이 걱정 상단 인덱스 80 00:04:45,280 --> 00:04:46,300 배열에 대해. 81 00:04:46,300 --> 00:04:49,770 >> 그리고 모두 이하의 트랙을 유지 인덱스와 인덱스 상단에, 당신은하지 않습니다 82 00:04:49,770 --> 00:04:52,780 지금까지 수정해야하는 원래 값의 배열입니다. 83 00:04:52,780 --> 00:04:56,390 당신은 계속 할 수 있습니다 값 배열을 사용합니다. 84 00:04:56,390 --> 00:04:59,540 그러나 여기에서, 우리는 도우미가 필요하지 않습니다 통지 로 우리가있어로서 기능 85 00:04:59,540 --> 00:05:01,760 원본을 수정하고자 값의 배열입니다. 86 00:05:01,760 --> 00:05:05,020 우리는에 전달하고자하는 업데이트 된 값. 87 00:05:05,020 --> 00:05:09,140 >> 이제, 우리는 이상의 이진 검색을 할 수 없습니다 정렬되지 않은 배열입니다. 88 00:05:09,140 --> 00:05:12,220 그래서,이 정리하세요. 89 00:05:12,220 --> 00:05:17,650 자, 그 종류는 과거입니다 알 두 매개 변수는 어떤 값을 int로 90 00:05:17,650 --> 00:05:21,110 우리가 분류하고 배열 ​​및 INT의 N, 어레이의 길이 인 것을 91 00:05:21,110 --> 00:05:22,250 우리는 분류하고 있습니다. 92 00:05:22,250 --> 00:05:24,840 그래서, 우리가 구현하려는 정렬 알고리즘 93 00:05:24,840 --> 00:05:26,690 즉, N의 O를 제곱입니다. 94 00:05:26,690 --> 00:05:30,560 당신은 버블 정렬, 선택을 선택할 수 정렬이나 삽입 정렬, 또는 95 00:05:30,560 --> 00:05:32,670 우리가하지 않은 다른 종류의 클래스에서 본. 96 00:05:32,670 --> 00:05:36,380 그러나 여기에서, 우리는 갈거야 선택 정렬을 사용합니다. 97 00:05:36,380 --> 00:05:40,030 >> 그래서, 우리는 반복하는거야 전체 배열에 대해. 98 00:05:40,030 --> 00:05:44,360 자, 우리는 우리가 반복하는 것을 볼 수 0에서 N으로 - 1. 99 00:05:44,360 --> 00:05:45,990 왜 모든 방법 N까지? 100 00:05:45,990 --> 00:05:49,320 음, 우리는 이미 정렬 한 경우 첫 번째 다음 N - 1 요소, 101 00:05:49,320 --> 00:05:54,420 이미 무엇을해야 가장 마지막 요소 올바른 위치에, 그래서 위에 정렬 102 00:05:54,420 --> 00:05:56,520 전체 배열. 103 00:05:56,520 --> 00:05:58,770 >> 자, 기억하는 방법을 선택 종류의 작동합니다. 104 00:05:58,770 --> 00:06:01,950 우리는 전체 배열에 갈거야 의 최소​​값을 찾는 105 00:06:01,950 --> 00:06:04,480 배열과 스틱이 처음에. 106 00:06:04,480 --> 00:06:07,610 그럼 우리는 전체에 갈거야 배열은 두 번째로 다시 찾고 107 00:06:07,610 --> 00:06:10,410 작은 요소, 스틱이 에서 두 번째 위치에있는 108 00:06:10,410 --> 00:06:12,100 배열, 등등. 109 00:06:12,100 --> 00:06:14,330 그래서, 이것이 무엇을하고 있는지입니다. 110 00:06:14,330 --> 00:06:17,290 >> 여기에서, 우리는 우리가 걸보고있다 현재 최소 설정 111 00:06:17,290 --> 00:06:20,030 i 번째 인덱스 값입니다. 112 00:06:20,030 --> 00:06:23,160 그래서 첫 번째 반복에, 우리는거야 최소 값이라고 생각합니다 113 00:06:23,160 --> 00:06:25,030 우리 어레이의 시작. 114 00:06:25,030 --> 00:06:28,500 그 후, 우리는 반복하는거야 에 체크 배열의 나머지 115 00:06:28,500 --> 00:06:31,870 보다가 어떤 요소가 더 작은 경우 참조 우리가 현재하고있는 일 116 00:06:31,870 --> 00:06:33,900 최소 고려. 117 00:06:33,900 --> 00:06:38,840 >> 그래서 여기, 일본을 더한 값 - 그건 우리가 현재 무엇보다 118 00:06:38,840 --> 00:06:40,380 최소 고려. 119 00:06:40,380 --> 00:06:42,940 그런 다음 업데이트 할 거냐 우리는 최소한에 생각 120 00:06:42,940 --> 00:06:44,640 인덱스 J + 1. 121 00:06:44,640 --> 00:06:48,540 따라서, 전체 어레이에 걸쳐 그렇게, 이 후 루프, 최소 122 00:06:48,540 --> 00:06:53,160 에서 최소의 요소해야 배열에서 i 번째 위치. 123 00:06:53,160 --> 00:06:57,350 >> 우리가이되면, 우리는 교체 할 수 있습니다 i 번째의 위치로 최소값 124 00:06:57,350 --> 00:06:58,230 배열. 125 00:06:58,230 --> 00:07:00,130 그래서 이것은 단지 표준 스왑입니다. 126 00:07:00,130 --> 00:07:03,940 우리는 임시 값을 저장 - 배열에있는 i 번째 값 - 127 00:07:03,940 --> 00:07:08,460 배열에있는 i 번째 값에 넣고 이 속해있는 최소값, 128 00:07:08,460 --> 00:07:13,580 다음 위치로 다시 저장 로 사용되는 현재의 최​​소값 129 00:07:13,580 --> 00:07:16,460 배열에있는 i 번째 값, 그래서 우리는 그것을 잃지 않았다. 130 00:07:16,460 --> 00:07:20,510 >> 그래서 그것은 계속된다 다음 반복. 131 00:07:20,510 --> 00:07:23,480 우리는 두 번째를 찾기 시작합니다 최소값에 해당 삽입 132 00:07:23,480 --> 00:07:24,590 두 번째 위치. 133 00:07:24,590 --> 00:07:27,440 세 번째 반복에서 우리를 찾을 수 있습니다 세 번째 최소 값과 삽입 134 00:07:27,440 --> 00:07:31,550 그 세 번째 위치에, 등등 우리는 정렬 된 배열을 가지고 때까지. 135 00:07:31,550 --> 00:07:33,820 내 이름은 롭이며,이 선택 정렬했다. 136 00:07:33,820 --> 00:07:39,456