코딩테스트/알고리즘&자료구조
[알고리즘][정렬] 버블 정렬 - Bubble Sort
내만
2022. 7. 16. 11:24
728x90
반응형
728x90
🙆♂️버블 정렬
서로 인접한 두 원소의 대소를 비교해서 조건에 따라 교환을 수행하여 정렬하는 방법입니다.
직관적인 정렬 방식입니다.
🙋♂️방식
a=[7,3,1,6,2]
이렇게 배열이 있을 때 버블 정렬을 사용해서 오름차순 정렬을 한다고 했을 때
a[0]과 a[1]을 비교해서 a[0]의 크기가 작다면 가만히 있고 크다면 a[1]과 자리를 바꿔줍니다.
#1단계의 첫 번째 스위칭
a=[3,7,1,6,2]
#1단계의 두 번째 스위칭
a=[3,1,7,6,2]
#1단계의 세 번째 스위칭
a=[3,1,6,7,2]
#1단계의 네 번째 스위칭
a=[3,1,6,2,7]
첫 번째 단계를 수행하면 이런식으로 수행되어 가장 큰 수인 7이 뒤로 옮겨지고
그 다음 계속적으로 수행하면 큰 수 부터 우측에 쌓이게 됩니다.
버블 정렬은 이러한 무지성 교환 특성으로 인해서 시간복잡도가 O(n^2)으로 큽니다.
그러나 안정적인 정렬인 특징이 있어서 2가지 값을 (이름, 나이) 정렬하고자 할 때 잘 수행할 수 있습니다.
def bubble(arr):
for i in range(len(arr)-1):
for j in range(i+1,len(arr)):
if arr[i]>arr[j]:
tmp = arr[i]
arr[i]=arr[j]
arr[j]=tmp
return arr
위의 코드로 버블정렬을 사용할 수 있습니다.
728x90
반응형