728x90

알고리즘 2

[알고리즘] 루프 불변성

루프 불변성은 반복문 또는 루프가 실행될 때 특정 조건이 항상 참으로 유지되는 것을 의미하는 것으로, 알고리즘이 타당한 이유를 쉽게 이해할 수 있도록 하기 위해 사용된다. 루프 불변성을 보이려면 다음 세 가지 특성을 만족해야 한다. 초기조건: 루프가 첫 번째 반복을 시작하기 전에 루프 불변성이 참이어야 한다. 유지조건: 루프의 반복이 시작되기 전에 루프 불변성이 참이었다면 다음 반복이 시작되기 전까지도 계속 참이어야 한다. 종료조건: 루프가 종료될 때 그 불변식이 알고리즘의 타당성을 보이는 데 도움이 될 유용한 특성을 가져야 한다. 초기조건과 유지조건을 만족하면 루프가 반복을 시작할 때 루프 불변성은 항상 참이다. 종료조건은 알고리즘의 타당성을 보이는 것과 같기 때문에 가장 중요한다.

알고리즘 2024.04.12

[알고리즘] 삽입 정렬(Insertion Sort)

Input: n개 수들의 수열 (a1, a2, ..., an) Output: a’1 0 and A[i] > key A[j + 1] = A[i] i = i - 1 A[i + 1] = key 입력은 정렬하려는 n개의 수열이 들어있는 배열 A[1...n]이다. 인덱스 j는 카드를 쥔 손으로 가져가 정렬할 현재 카드를 나타낸다. 부분 배열 A[1...j - 1]은 현재 손에 쥔 정렬된 카드고 나머지 부분 배열 A[j + 1...n]은 아직 탁자에 쌓여 있는 카드다. 루프 불변성을 확인해보자. (루프불변성 참고) 2024.04.12 - [프로그래밍 공부] - [알고리즘] 루프 불변성 초기조건: 루프의 첫 반복이 시작되기 전, 즉 j = 2일 때 루프 불변성이 성립하는지 살펴본다. 이때 부분배열 A[1...j - ..

알고리즘 2024.04.11
728x90