버블 정렬(Bubble Sort, 대만어로 번역: Bubble Sort 또는 Bubble Sort)은 간단한 정렬 알고리즘입니다. 정렬할 시퀀스를 반복적으로 살펴보며 한 번에 두 요소를 비교하고 순서가 잘못된 경우 교체합니다. 더 이상 교환이 필요하지 않을 때까지 어레이 방문 작업이 반복됩니다. 이는 어레이가 정렬되었음을 의미합니다. 이 알고리즘의 이름은 더 작은 요소가 교환을 통해 배열의 맨 위로 천천히 "부동"된다는 사실에서 유래되었습니다. 버블 정렬 알고리즘의 동작은 다음과 같습니다.
1. 인접한 요소를 비교합니다. 첫 번째 것이 두 번째 것보다 크면 둘 다 교환하세요.
2. 처음의 첫 번째 쌍부터 끝의 마지막 쌍까지 인접한 요소의 각 쌍에 대해 동일한 작업을 수행합니다. 이때 마지막 요소가 가장 큰 숫자가 되어야 합니다.
3. 마지막 요소를 제외한 모든 요소에 대해 위 단계를 반복합니다.
4. 비교할 숫자 쌍이 더 이상 없을 때까지 매번 요소 수를 줄여 위 단계를 계속 반복합니다.
코드:
#!/usr/bin/env python #-*-encoding:utf-8 #BubbleSort def bubble_sort(param): p_len = len(param) for i in range(p_len): for j in range(i+1,p_len)[::-1]: if param[j] < param[j-1]: param[j],param[j-1]=param[j-1],param[j] return param def main(): param = [1,2,3,5,7,6,4] print bubble_sort(param) if __name__=="__main__": main()