일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정보보안
- 카카오페이면접후기
- 우선순위큐
- 분산시스템
- 코딩테스트
- synflooding
- 레디스
- 프로그래머스
- 다이나믹프로그래밍
- t검정
- 카카오페이
- 딥러닝
- linux
- 리눅스
- 정보보안기사
- lightsail
- 시간초과
- 보안
- 보안기사
- 자료구조
- 백준
- springboot
- LangChain
- FastAPI
- 데이터사이언스
- 그리디
- java
- t-test
- Python
- 파이썬
Archives
Techbrad
[알고리즘] 버블 정렬이란 (Java, Python) 본문
반응형
버블 정렬이란?
차례대로 인접한 두개의 숫자를 비교하여 앞의 숫자가 뒤의 숫자보다 크면 두 숫자의 자리를 바꿔주는 정렬
버블 정렬 코드 (Python)
def bubblesort(data):
for turn in range(len(data) - 1): #전체 데이터 길이의 -1 만큼의 턴을 돈다
swap = False # swap이 발생하는지 확인한다. 발생하지 않으면 정렬리 됐다고 가정하고 break를 한다.
for index2 in range(len(data) - turn -1): #1번째 턴 후 맨 마지막에 가장 큰 수가 위치하고 2번째 턴 후 마지막 두개의 숫자가 정렬되기 때문에 turn 수를 비교 횟수에서 빼서 최종 비교 횟수를 줄인다.
if data[index2] > data[index2 +1]: # 2개의 숫자를 비교
data[index2], data[index2 + 1] = data[index2 + 1], data[index2] # 앞의 숫자가 작다면 SWAP 진행
swap =True
if swap == False:
break
return data
버블 정렬 시간 복잡도
버블 정렬은 반목문이 2개가 들어가므로 n^2 만큼의 시간 복잡도가 나온다.
버블 정렬 사용 팁
버블 정렬의 가장 큰 장점은 구현이 간단하다는 것이다. 하지만 큰 데이터를 정렬할 때 비효율적이기 때문에 작은 데이터를 정렬할 때 주로 사용해야만 한다.
반응형
'Programming > 자료구조 및 알고리즘' 카테고리의 다른 글
[자료구조] list 와 set의 탐색 속도 차이 (Python) (1) | 2024.09.29 |
---|---|
[자료구조] 접두사에 강한 트라이(Trie) (0) | 2024.08.23 |
[자료구조] 해시테이블 클로즈 기법 개념 및 구현 with 파이썬(Python) (0) | 2022.08.28 |
[자료구조] 해시테이블 체이닝 기법 개념 및 구현 with 파이썬(Python) (0) | 2022.08.27 |
[자료구조] 링크드리스트 파이썬으로 구현 (0) | 2022.08.24 |