반응형
버블 정렬>
두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 잇는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘
참조 사이트>
https://visualgo.net/bn/sorting
참조 동영상>
정렬 그리기>
데이터 구조가 이렇게 이렇게 되어있다고 생각하면
이를 버블 정렬을 한다고 하면
앞에서 부터 차근 차근 하나씩 비교 해가면서 데이터를 정렬한다.
17 6을 비교해서 17이 크므로 뒤로 보내고 6을 앞으로 보낸다.
이를 반복하여 가장 큰 수가 뒤에 가게 정렬을 한다.
이렇게 정렬을 하면 최종적으로 정렬된것은
위와 같은 데이터 구조가 될것이다.
참고 Code>
for index in range(데이터 길이 - 1):
for index2 in range(데이터길이 - 1):
if 앞데이터 > 뒤데이터:
swap(앞데이터, 뒤데이터)
Python Code>
def bubbiesort(data):
for index in range(len(data) - 1):
swap = False
for index2 in range(len(data) - index - 1):
if data[index2] > data[index2 + 1]:
data[index2], data[index2 + 1] = data[index2 + 1], data[index2]
swap = True
if swap == False:
break
return data
data_list = [17, 6, 8, 11, 2, 3]
print(bubbiesort(data_list))
결과값>
[2, 3, 6, 8, 11, 17]
반응형
'Python_Intermediate > Algorithmus' 카테고리의 다른 글
[알고리즘]선택 정렬(Select Sort) (0) | 2020.02.23 |
---|---|
Python - 피보나치 수열(for문 / 재귀함수) (0) | 2019.07.02 |
Python - 최대 k-구간 합 알고리즘 (0) | 2019.06.07 |
Palindrome Discrimination(회문 판별) (0) | 2019.05.02 |
Python - 사용자에게 입력 받아 * 산 모양 알고리즘 (0) | 2019.03.20 |