자료구조 & 알고리즘 3

[자료구조] 배열(Array) vs 연결리스트(Linked List)

배열 (Array) 배열이란 같은 종류의 데이터들이 연속된 메모리 공간으로 이루어져 있는 자료구조를 말한다. 예를 들어 크기가 8인 배열 하나를 생성한다고 하면 컴퓨터는 연속된 빈 공간을 찾아 데이터를 할당하게 된다. 장점 컴퓨터는 위 메모리에서 배열의 시작과 끝이 어디인지 알고 있기 때문에 내가 배열의 3번 인덱스를 참조할 때 0...1...2 순차적으로 찾는 게 아니라 3번 인덱스에 바로 참조할 수 있다. 그래서 시간 복잡도는 O(1)이 된다. 즉, 읽기 쓰기와 같은 참조에서는 O(1)의 좋은 성능을 가졌다. 단점 하지만 배열에 데이터를 빈번하게 추가하거나 삭제하는 경우에는 비효율적이다. 배열 중간에 값을 추가하게 되면 추가하려는 부분의 자리를 비우고, 기존 데이터는 복사되어 한 칸씩 미뤄지게 된다...

[javascript] 소수 판별식

1. 해당 숫자가 나누어질 때까지 반복문을 실행한다. 1 ) 먼저 소수는 2부터 시작이므로 num === 2 일 때는 return true이다. 2 ) 반복문이 끝나기 전에 num이 나누어지면 return false 나누어지지 않으면 return true이다. 3 ) 가장 간단하지만 시간복잡도가 가장 크다. function isPrime(num) { if (num === 2) return true; if (num === 1) return false; for (let i = 2; i < num; i++) { if (num % i === 0) { return false; } } return true; } 2. 해당 숫자의 가장 큰 약수 만큼 반복문을 실행한다. 1 ) 1번과 유사하지만 1번 보다 반복문을 반..