1. 버블 정렬
- 인접한 두 원소를 비교하여 서로 바꾸면서 정렬하는 방법
- 시간 복잡도는 O(n^2)
-예제
위와 같이 인접한 원소를 비교하여 큰 값을 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름입니다.
-코드
def bubleSort(a):
Sorted = False
while not Sorted:
Sorted = True
for i in range(1, len(a)):
if a[i - 1] > a[i]:
a[i - 1], a[i] = a[i], a[i - 1]
Sorted = False
2. 에라토스테네스의 체
- 소수를 찾는 방법의 하나로 에라토스테네스가 발견한 방법
- 시간 복잡도는 O(Nlog(log(N)))
-예시
위 이미지와 같이 2부터 n까지 자기 자신으로 나누어서 나머지가 0이 되는 수를 모두 제외하여 소수를 찾습니다.
-코드
def sieve(n):
candidates = list(range(2, n)) # 소수일 수 있는 수
i = 0
while i < len(candidates):
prime = candidates[i]
j = i + 1
while j < len(candidates):
if candidates[j] % prime == 0: # 나누어서 나머지가 0이면 숫자 제외
candidates.pop(j)
else:
j += 1
i += 1
return candidates
'코딩 공부 > Python' 카테고리의 다른 글
[Pyside6] PyQt (0) | 2023.07.10 |
---|---|
[Selenium/Docker] AttributeError: 'NoneType' object has no attribute 'to_capabilities' (0) | 2023.07.03 |
크롤링 (0) | 2023.06.21 |
Django (1) | 2023.05.11 |
N-Queen 알고리즘 (0) | 2022.05.19 |