1. NoSQLRedis의 개념을 알기 위해선 먼저 NoSQL에 대한 개념을 알아야한다. NoSQL이란, 'Not only SQL'의 약자로, JSON 형태로 저장되는 데이터베이스를 말한다. NoSQL을 처음 들어본 사람들은 ' SQL을 쓰지 않는 데이터베이스인가?' 라며 혼동되기도 한다. 또한, NoSQL은 RDBMS가 커버하지 못하는 기능을 제공하기도 한다. 한 가지 예로 'Flexible Schema'를 제공한다. Flexible Schema란, 영단어 뜻에서도 알 수 있듯이 스키마에 대해 유연성을 제공해주는 기능이다. 예를 들어, RDMS에서 '학생'이라는 스키마를 정의한다면, 학생ID(pk), 이름은 varchar, 나이, 학년은 int, 입학일자는 date 등, 제한된 스키마를 정의해야한다. ..
1. 개요퀵 정렬(Quick Sort)은 피벗을 하나 정하고, 배열을 피벗을 기준으로 배열을 분할하여 정렬하는 기법이다. 재귀 호출을 사용한다. 2. 시간복잡도어떤 피벗값을 선정하는지에 따라 시간복잡도 차이가 난다.평균 시간복잡도 : 𝛳(nlogn)최악 시간복잡도 : O(n^2) 3. 핵심이론1) 하나의 피벗(기준값)을 정한다. (피벗값 배열의 맨 처음 값으로 설정)2) 시작, 끝 포인터를 설정한다. (시작 s는 0, 끝 e는 배열의 마지막 인덱스로 설정한다.)3) s가 e보다 작을 때까지 순회한다. 3-1) 배열의 마지막 값 (arr[e])이 피벗값 (arr[pivot]) 보다 클때 까지 순회하며, e를 1씩 왼쪽(감소)으로 이동한다. (피벗값보다 작은 값이 나올때까지 순..
1. 개요선택정렬이란, 배열의 맨 앞 요소를 선택한 후 그 다음 요소부터 가장 작은 값을 찾아 맨 앞 요소와 비교 후 swap 하는 형식의 정렬 알고리즘이다. (오름차순 기준) 2. 시간복잡도모든 배열의 요소를 첫 요소로 잡고 (N), 그 다음 요소부터 끝까지 최소값을 찾아야하므로 (N) 시간복잡도는 O(N^2)이다. 3. 핵심이론- 배열의 크기를 5로 가정51324 - 맨 앞 요소를 선택 후 그 다음 요소부터 최소값을 찾은 후 비교하여 서로 swap 한다.5(맨 앞 요소 선택)1(최소값)32415324 - 위 과정을 반복한다.15(맨 앞 요소 선택)32(최소값)412354 123(맨 앞 요소 선택)54(최소값)12354 1235(맨 앞 요소 선택)4(최소값)12345 - 정렬 완료 4. 예시 코..
1. 버블정렬이란?인접한 두 요소를 비교하여 정렬하는 간단한 알고리즘이다. 왜 버블정렬일까? 가장 큰 요소가 배열의 마지막 위치로 버블처럼 떠오른다고 하여 '버블정렬' 이라는 이름으로 유래됨. 2. 시간복잡도각 정렬 과정마다 다시 한번 배열을 순회하여 인접한 두 요소를 비교해야 하므로 O(N^2) 의 시간복잡도를 가진다. 3. 핵심이론1) 배열 사이즈가 N이라고 가정한다.2) 버블 정렬은 총 (N - 1)번의 과정을 거친다.3) 각 정렬 과정마다 맨 끝 요소는 정렬이 된 상태이므로 (N - i - 1)번 순회한다.4) 이전 요소가 다음 요소보다 크면 swap 진행5) 위 과정 반복 4. 예시아래 N이라는 배열이 있다고 가정하자.543211) 첫번째 순회45321435214325143215 (가장 큰 요소..