기본 시작 틀 링크드 리스트와 흡사 안 보더라도 이것만은 기억하자 각 노드의 좌측에는 작은 숫자, 우측에는 큰 숫자가 저장된다. class Node: def __init__(self, value): self.value = value self.left = None self.right = Non...
힙(Heap)구조에서 삽입과 삭제!
힙(heap) 힙 : 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리는 왼쪽부터 차례로 채운다 생각해면 됨 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n)이 걸림 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으려면, O(lo...
numpy axis 쉽게 이해하기!
numpy axis 축 쉽게 이해하기 이것만 기억하면 끝! 괄호 바깥에서 안으로! 또는 열(col)은 결국 맨 뒤다 2차원 배열 예시 ------여기부터 꼭 보세요------- 2차원 배열을 예로 들겠다. [ [1,2,3], [4,5,6], [7,8,9] ] 껍데기를 바깥에서부터 빼면 [1,2,3] [4,5,6] [7,8,...
numpy 기초! (astype(),shape,ndim,dtype)
[Python/numpy] 기초_attr_1 (astype, shape, ndim, dtype) astype() 타입 변환 하기 타입을 변환하는 메서드 리스트로 반환하기에 변수에 할당해 줘야한다. import numpy as np ary_1 = np.array([0,1,2,3,4,5,6,7,8,9]) ary_1_as_float = ...
병합 정렬 알고리즘!
병합 정렬 정렬되지 않은 리스트를 절반으로 잘라 비슷한 두 리스트로 나눈다. 각 부분의 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다 두 리스트를 다시 하나의 리스트로 합병한다. 시간 복잡도는 O(n log n) 출처: [위키피디아] 나의 정의 리스트를 0또는 1이 될 때까지 반으로 나누고, 그것들을 두 리스트씩 포인터...
기본 정렬 알고리즘!
기본 정렬 알고리즘(버블, 삽입, 선택) 1. 버블 정렬 for문을 한 번 돌면 마지막에는 무조건 큰 숫자가 담긴다 기준 인덱스와 바로 뒤 인덱스를 비교하여 앞에가 크면 자리를 바꾼다 이중 for문을 돈다 ( 처음 for은 처음 부터 끝까지 -1, 두번째 for은 총 길이 - 처음for문의 인덱스 -1) 시간 복잡도는 O($n^2$)...