본문 바로가기

알고리즘2

Insertion Algorith - 삽입 정렬 삽입 정렬은 카드 놀이를 할 때 손에 쥔 카드를 정렬하는 것과 방법이 같습니다. 왼손ㄴ은 비었고 카드가 탁자 위에 뒤집힌 채 쌓여 있다고 하자. 이제 탁자에서 카드를 한 장씩 가져와 왼손의 적절한 위치에 삽입합니다. 카드를 삽입할 적절한 위치를 찾기 위해 왼손에 이미 든 카드와 새 카드를 오른쪽ㅇ서 왼쪽에서 왼쪽 방향으로 차례로 비교하면 됩니다. 왼손에 있는 카드는 항상 정렬되어 있고, 이는 처음에 탁자에서 맨 위에 쌓였던 카드입니다. 입력: n개 수들의 수열(a1,a2,a3,a4...,an) 출력: a1 키 값 3와 세번째 두 번째 자료인 5를 비교한다. 키 값보다 크므로 5를 2가 있던 자리에 기억시킨다. -> 키 값 3와 첫번째 자료인 1을 비교한다. 키 값보다 작으므로 두 번째 자리에 기억시킨다... 2023. 3. 17.
버블 정렬 - 알고리즘 버블 정렬 - Bubble Sort 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 정렬 과정 5,3,7,9,1 원소들을 배열에 추가하고 버블 정렬 해보겠습니다 1회전 5,3,7,9,1 2회전 3,5,1,7,9 3회전 3,1,5,7,9 4회전 1,3,5,7,9 알고리즘 분석 비교 횟수 -> 버블 정렬은 한번의 순화를 마칠 때 마다 비교 대상이 하나씩 줄어들기 때문에, 전체 원소의 개수가 n개 라고 할 때, 총 n-1 번 순회하면 정렬이 끝납니다. 위의 예제에서는 총 원소 개수가 5개 이므로, 4+3+2+1 = 10번 비교하게 됩니다. 이를 수식으로 일반화 시키면 다음과 같습니다. 따라서 평균적으로 O(n^2)의 시간복잡도를 가지게 됩니다 슈도코드 자바 소스코드: public class BubbleSor.. 2022. 9. 6.