프로그래밍/알고리즘(2)
-
Linked List(연결 리스트)
#Single Linked List class Node(object): def __init__(self, data, next = None): self.data = data self.next = next class SList(object): def __init__(self): self.head = Node(None) self.size = 0 def listSize(self): return self.size def is_empty(self): if self.size != 0: return False else: return True def selectNode(self, idx): if idx >= self.size: print("Index Error") return None if idx == 0: return..
2020.12.29 -
Big O
Big O = 입력값이 커질 때 알고리즘 실행시간 + 공간요구사항 = 시간복잡도(계산복잡도) + 공간복잡도 입력값이 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기 방법입니다. 참고로 하한은 빅오메가, 평균은 빅세타로 표현 보통 시간복잡도와 공간복잡도는 trade-off관계입니다. O는 상한이지 최악이 아니라는 점을 주의해야합니다. 그저 길고 복잡한 함수를 적당히 정확하게 표현하는 방법일 뿐입니다. Big O 표기 시에는 최고차항만을 표기하고 상수항은 무시합니다. ex) Big O의 종류를 빠른순으로 정리해 보았습니다 O(1) 실행시간 일정 = 최고의 알고리즘 ex) 해시테이블 조회 및 검색 O(log n) 로그는 매우 큰 입력값에도 큰 영향을 받지 않음. 웬만한 n 크기 대해 매우 견고 ex) 이..
2020.12.19