반응형
1. 버블정렬이란
인접한 두 원소를 비교하여 정렬하는 알고리즘
2. 버블정렬 특징
코드가 단순하여 구현이 간단하다
하나의 요소가 끝까지 이동하기 위해 모든 요소와 교환되어야 하기 때문에 속도가 느리다
3. 버블 정렬 파이썬 코드
for i in range(len(a)-1, 0, -1):
for j in range(0, i):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
뒤에서 부터 탐색하는 이유는 안정정렬을 위해서라고 한다.
def BubbleSort(a):
for i in range(len(a)):
for j in range(i , len(a)):
if a[i] > a[j]:
a[i],a[j] = a[j],a[i]
return a
버블정렬을 접하고 스스로 다음과 같은 코드를 구현해보았다
하지만 해당 코드는 가장 인접한 요소 끼리의 교환이 아닌 인덱스i 를 가진 값과 j 를 가진 값을 교환하는 것이기 때문에 선택정렬과 버블정렬이 섞인 코드라고 볼 수 있다고 한다...
오름/내림차순 정렬을 하기 위해 스스로 처음 만들었던 코드 형태라 그런지 이 코드가 익숙해서 계속 사용하게 된다...
반응형