정렬 알고리즘 중 기본 정렬 알고리즘에 해당하는 선택정렬(Selection sort), 버블정렬(Bubble Sort), 삽입정렬(Insertion sort)를 파이썬 언어로 구현해 보겠습니다.

 

선택 정렬

알고리즘

배열 A[1~n] 에서  가장 큰 원소 를 찾고 그 원소와 이 배열의 마지막 인덱스 원소 의 자리를 바꿉니다.

자리가 바뀌게 되면 마지막 인덱스는 이미 정렬이 완료되었기 때문에 더 이상 신경쓰지 않고, 남은 배열 A[1~n-1]로 같은 과정을 반복합니다.

 

파이썬 코드

결과

버블 정렬

알고리즘

버블정렬도 선택정렬과 마찬가지로, 가장 큰 원소를 궁극적으로 배열의 마지막 인덱스로 보내는 것이 목적입니다. 그러나 다른점은, 선택정렬은 모든 원소 비교 후 가장 큰 원소 마지막 인덱스 원소와 자리를 바꾸지만, 버블 정렬은 이웃한 원소를 비교할 때마다, 정렬이 되어 있지 않으면 바꾸기를 반복합니다.

파이썬 코드

 

결과

삽입 정렬

알고리즘

삽입 정렬은 이미 정렬이 되어 있는 배열에 다음 인덱스의 원소를 추가하여 정렬하는 과정을 반복하는 정렬 방법이다.

선택 정렬과 버블 정렬은  배열의 크기를 하나씩 줄여가며 정렬을 했지만, 삽입 정렬은 그 반대로 하나씩 늘리는 정렬이다.

파이썬 코드

 

결과

 

마무리

다음 알고리즘 관련 포스팅은 고급 정렬 알고리즘을 다룰 예정입니다.

 

댓글 남기기

Close Menu