버블 정렬(bubble sort)

2019. 12. 22. 19:23·강의노트

버블 정렬이란?

  • 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘

 

구현

numList=[1,9,5,6,8]

def bubbleSort(numList):
    leng=top=len(numList)

    for i in range(leng-1):
        top-=1
        for j in range(top):
            if numList[j]>numList[j+1]:
                temp=numList[j]
                numList[j]=numList[j+1]
                numList[j+1]=temp

bubbleSort(numList)

특징

  • 장점
    • 구현이 매우 간단하다.
  • 단점
    • 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 다른 요소들과 교환되어야 한다.
    • 일반적으로 자료의 교환 작업(SWAP)이 자료의 이동 작업(MOVE)보다 더 복잡하기 때문에 버블 정렬은 단순성에도 불구하고 거의 쓰이지 않는다.

시간복잡도

  • 비교 횟수
    • n-1, n-2, … , 2, 1 번 = 등차수열의 합 = 항의 개수(첫째항+마지막항)/2 =  n(n-1)/2
  • 교환 횟수
    • 입력 자료가 역순으로 정렬되어 있는 최악의 경우, 한 번 교환하기 위하여 3번의 이동(SWAP 함수의 작업)이 필요하므로 (비교 횟수 * 3) 번 = 3n(n-1)/2
  • T(n)=O(n^2)

'강의노트' 카테고리의 다른 글

[mongoDB] mongoDB에서 관계성 정립  (0) 2020.01.03
[mongoDB] mongo db의 CRUD  (1) 2020.01.03
[SQL] 데이터베이스 조작  (0) 2020.01.02
SQL vs NoSQL  (0) 2020.01.02
[express] params를 이용한 라우팅(routing)  (0) 2019.12.24
'강의노트' 카테고리의 다른 글
  • [mongoDB] mongo db의 CRUD
  • [SQL] 데이터베이스 조작
  • SQL vs NoSQL
  • [express] params를 이용한 라우팅(routing)
권끼리마끼리
권끼리마끼리
  • 권끼리마끼리
    끼리마끼리의 개발노트
    권끼리마끼리
    • 분류 전체보기 (59)
      • 트러블슈팅 (5)
      • 프로젝트 개선 (5)
      • 강의노트 (19)
      • 웹 접근성 (27)
      • 웹개념 파보기 (3)
  • hELLO· Designed By정상우.v4.10.0
권끼리마끼리
버블 정렬(bubble sort)
상단으로

티스토리툴바