[알고리즘] 버블정렬

나고수·2021년 10월 28일
0

버블정렬

  • 처음 index부터 순서대로 바로 뒤 index 데이터와 비교해서, 앞의 데이터가 더 크면 뒤의 데이터와 순서를 바꿈
  • 모두 정렬 될 때까지 위의 알고리즘 실행
  • 시간복잡도 : data길이만큼(n만큼)의 for문을 두번 돌기 때문에 O(n^2)
 def bubbleSort(data):
    for i in range (len(data)-1):
        swap = False
        for j in range (len(data)-1-i):
            if data[j] > data[j+1]:
                data[j],data[j+1]=data[j+1],data[j]
                swap = True
        #한 턴을 다 돌았는데 바뀐 정렬이 없다면, 더이상 정렬 할 게 없다.
        if swap==False:
            break
    return data 
    
import random
test = random.sample(range(100),50)
print(bubbleSort(test))
   
profile
되고싶다

0개의 댓글