6. 배열 (Array)
블로그 글을 열심히 써보려고 했지만, 최근에 생각을 정리하는 시간을 많이 갖게 되었습니다.결국 블로그 글을 작성하는 것이 옳다고 생각했고. 글을 주로 쓰려고 합니다.다만, 제 생각을 정리하고 기본을 다시 채우는 느낌의 블로그라서 공부의 지침서가 될 지는 모르겠습니다.몇 번씩, 방문하면서 제 글을 읽어주시는 분들께 감사합니다! 배열이란 무엇일까?배열은 자료구조 관점에서 보면 상당한데요.현재 글의 카테고리는 Java의 기본이론이므로 단순하게만 보도록 하겠습니다! 현실과 빗대어 생각해보자. 숫자가 `1, 2, 3, 4`의 형태를 띠고 있으면 우리는 '수가 나열되어 있다.' 라고 하죠?글자가 `ㅈ, ㅣ, ㄱ, ㅏ, ㅂ`의 형태를 띠고 있을 때, 올바른 글자로 '배열'해 보세요. 라고도 하죠?올바르게 배열 한다면..
2024. 2. 10.
[이분 탐색] 이분 탐색(Binary Search) 이란 ?
이분 탐색 두 이, 나눌 분을 써서 이분인가? 정답, 이분 탐색은 두개로 나누어서 탐색하는 것이다. 예를 들어, 1부터 10까지 있다고 생각해보자. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 우리가 8을 찾을 때, 눈으로 바로 보이니까 위치를 파악할 수 있다. 하지만 몇 번째에 있는가? 배열은 0번째부터 시작하니 7번째에 있다는 것을 알 수 있다. 컴퓨터 배열 인덱스 개념이 없는 사람들은 8번째라고 답할 것이다. 즉, O(1) 시간이다. 그럼, {1, 4, 7, 10, 12, 23, 30, 35, 100, 120} 이 있을 때, 35의 위치는? 우리는 앞에서 값을 세어가면서 몇 번째에 있는지 알 것이다. 즉, O(N) 시간이다. 100만개의 숫자가 있다면? 우리는 100만개를 일일이 세다가..
2024. 2. 1.