2) 버블정렬 알고리즘


  버블 정렬은 정렬이 필요한 자료 리스트에서 인접한 요소를 비교, 교환을 반복해서 최대값을 가장 뒷부분 위치하게 하여 정렬을 한다. 
많은 비교와 교환이 일어나기 때문에 정렬 알고리즘 중에서 가장 느린 알고리즘 이다.

01   def bubble_sort(a):
02       pass_count = 0
03       swap_count = 0
04       while True:
05           swap = 0
06           for i in range(len(a)-1):
07               if a[i] > a[i+1]:
08                   a[i], a[i+1] = a[i+1], a[i]
09                   swap+=1
10           pass_count += 1
11           if swap:
12               swap_count += swap
13           else:
14               break
15       return pass_count, swap_count, a
16
17
18   print bubble_sort([3, 1, 4, 1, 5, 9, 2, 6])

 

예제를 연습해 봅시다