시간 복잡도 2

[알고리즘] 삽입 정렬 정리

삽입 정렬(Insertion Sort)은 비교 기반의 정렬 알고리즘으로, 배열의 각 요소를 순차적으로 선택하여 적절한 위치에 삽입하면서 배열을 정렬하는 방식이다. 이 알고리즘은 현재 배열의 일부분을 이미 정렬된 상태로 유지하면서, 새로운 요소를 삽입하는 방식으로 작동한다. 거의 정렬된 데이터에서 매우 효율적으로 동작하며, 구현이 간단하고 직관적인 특징이 있다.동작 방식 초기 상태: 첫 번째 요소는 이미 정렬된 것으로 가정한다.두 번째 요소부터 시작: 배열의 두 번째 요소를 선택한다.왼쪽에 있는 정렬된 부분과 비교: 선택한 요소를 왼쪽의 정렬된 부분에 삽입할 적절한 위치를 찾기 위해 비교한다.삽입: 비교하여 자신보다 큰 값들은 한 칸씩 오른쪽으로 이동시키고, 자신의 자리를 찾으면 그 위치에 삽입한다.반복:..

[알고리즘] 시간 복잡도

시간 복잡도는 알고리즘의 효율성을 평가하는 중요한 척도이다. 주어진 입력 크기 n에 따라 알고리즘이 실행되는 데 걸리는 시간을 수학적으로 표현한 것이다. 이를 통해 알고리즘이 커지는 입력에 대해 얼마나 효율적인지 판단할 수 있다. 시간 복잡도 종류 O(1): 상수 시간 복잡도입력 크기에 상관없이 실행 시간이 일정하다.예: 배열에서 첫 번째 요소를 읽는 작업이 코드는 입력 크기에 상관없이 언제나 한 번만 실행되므로 시간 복잡도는 O(1)이다. n이 커져도 동일한 작업을 하며, 실행 시간이 변하지 않는다.public class ConstantTime { public static void main(String[] args) { int n = 100; System.out.print..

반응형