자료구조/알고리즘 - 코딩 테스트 1
·
SE Bootcamp 내용 정리
Time Complexity(시간 복잡도) 알고리즘 문제는 해답을 찾는 것도 중요하지만, 그만큼 효율적인 방법으로 해결했는지도 중요하다 → 효율성 = 시간 복잡도 시간 복잡도 알고리즘 문제에서 자주 겪게 되는 문제? → 바로, 시간 복잡도 그 의미는? 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가? 효율적인 알고리즘이란, 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 것 이러한 시간 복잡도는 빅-오 표기법으로 나타낸다 Big-O 표기법 시간 복잡도를 표기하는 방법은 아래의 3가지가 있으나 주로 빅-오 표기법을 사용한다 * Big-O(빅-오): 시간 복잡도를 최악의 경우에 대해 나타내는 방법 * Big-Ω(빅-오메가): 최선의 경우 * Big-θ(빅-세타): 중..
버블(거품) 정렬 알고리즘
·
알고리즘 연습
버블 정렬(bubble sort) 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 출력(리턴)하는 구조의 버블 정렬을 구현 해보자 버블 정렬 알고리즘은 아래와 같습니다. 1. 첫 번째 요소가 두 번째 요소보다 크면, 두 요소의 위치를 바꿈 2. 두 번째 요소와 세 번째 요소보다 크면, 두 요소의 위치를 바꿈 3. 1, 2를 마지막까지 반복합니다. (마지막에서 두 번째 요소와 마지막 요소를 비교) 4. 1~3의 과정을 한 번 거치게 되면, 가장 큰 요소가 배열의 마지막으로 밀려남(마지막 인덱스에 위치) 5. 1~3의 과정을 첫 요소부터 다시 반복 6. 5를 통해 두 번째로 큰 요소가 배열의 마지막 바로 두 번째로 밀려남(마지막 인덱스 -1에 위치) 7. 1~3의 과정을 총 n번(배열의 크기) 반복..