전체 글
-
08 해시테이블로 매우 빠른 룩업코딩/자료구조 2023. 9. 18. 16:24
해시테이블 해시테이블은 다양한 프로그래밍 언어에서 서로 다른 이름으로 불린다 (해시, 맵, 해시맵, 딕셔녀리) 해시테이블은 키와 값의 쌍으로 이뤄진 값들의 리스트다. 각 값의 위치는 키로 결정되기 때문에 키 자체를 해싱해 인덱스를 계산할 수 있다. 해시테이블의 값 룩업은 딱 한단계만 걸리므로 평균적으로 효율성이 O(1)이다 해싱 문자를 가져와 숫자로 변환하는 과정 해시함수 글자를 특정숫자로 변환하는데 사용한 코드 동일한 문자열을 해시함수에 적용할 때 마다 동일한 숫자로 변환 해야한다. 단방향 룩업 키를 모른채 값을 찾으려면 효율성이 O(N) 키를 사용해 값을 찾을 때 효율성은 O(1) 값으로 키를 찾을 때는 룩업 기능 활용 x 충돌 이미 채워진 셀에 데이터를 추가하는 것 분리연결법 춛올을 해결하는 고전적..
-
05-06 빅오, 긍정적 시나리오 최적화코딩/자료구조 2023. 9. 15. 16:24
선택정렬 비교, 교환 두종류의 단계를 포함한다. 패스스루의 최솟값이 이미 올바른 위치에 있으면 아무것도 하지 않아도 되지만 최솟값이 올바른 위치에 있지 않으면 교환해야한다. . 배열의 각셀을 왼쪽부터 오른쪽방향으로 확인하면서 어떤값이 최솟값인지 결정한다. 한 셀씩 이동하면서 현재까지 가장 작은 값을 기록한다 그 인덱스의 값과 패스스루를 처음 시작했을 때의 값을 교환한다. 배열 끝에서 시작하는 패스스루에 도달할 때까지 패스스루를 반복한다. 마지막 패스스루에서는 배열이 완벽히정렬된다. 교환: 패스스루당 최대 한 번 필요 선택정렬은 버블정렬보다 두배 더 빠르다. 상수무시하기 빅오표기법은 상수를 무시한다. 빅오로는 똑같이표현되는 두 알고리즘은 100배 차이 날 수 있다. 빅오표기법은 일반적인 카테고리의 알고리즘..
-
04 빅오로 코드 속도 올리기코딩/자료구조 2023. 9. 13. 16:15
빅오를 사용하면 세상에 존재하는 범용 알고리즘을 비교할 기회가 생긴다 4-1 버블정렬 버블정렬은 첫 항목과 두 번째 항목을 비교하고(왼 값이 오른 값보다 크면)두 항목을 교환한다. 이를 배열의 끝까지 반복한다. 정렬되지 않은 값 중 가장 큰 값,버블이 올바른 위치로 가게 되기때문에 버블 정렬이라고 부른다. 버블 정렬 알고리즘은 두가지 중요한 단계가 있다. 비교 어느 쪽이 더 큰 수인지 비교한다 ex)배열의 원소가5개다.첫 번째에서 두수의 비교를4번,두 번째에서3번,세 번째에서2번,네 번째에서1번 4+3+2+1=10의 비교다. (n-1)+(n-2)+(n-3)....+1번 비교 교환 정렬하기 위해 두 수를 교환한다 ex) 배열이 내림차순으로 정렬된 최악의 시나리오라면 비교마다 교환을 해야한다. 즉 비교 10..
-
03 빅 오 표기법코딩/자료구조 2023. 9. 12. 16:12
빅오의 본질 데이터가 늘어날 때 알고리즘의 성능이 어떻게 바뀌는지 서로 간에 시간 복잡도를 쉽게 소통할 목적으로 자료구조와 알고리즘의 효율성을 간결하고 일관된 언어로 설명하기 위해서 수학적 개념을 차용하였다 100보다 큰 모든 배열에서는 O(N) 알고리즘에 더 많은 단계가 걸린다. 일정량의 데이터 향상이 있을 것이고, 그 순간 무한대까지 더 많은 단계가 걸르므로 O(1)에 실제로 몇 단계가 걸리든 덜 효율적이다. 선형 검색이 항상 O(N)은 아니다 최선의 시나리오는 O(1)이고 최악이 O(N)이다. 일반적으로 빅 오 표기법은 최악의 시나리오를 의미한다 3-1 빅 오 표기법은 O(N)이다. 이 표기는 '데이터 원소가 N개일 때 알고리즘에 몇 단계가 필요할까?'이다. 즉 선형 검색에는 N단계 O(N)이라 표..
-
02 알고리즘의 중요성코딩/자료구조 2023. 9. 11. 16:11
알고리즘 어떤과제를 완수하는 명령어집합이다. 정렬된 배열 정렬된 배열은 전형적인 배열과 거의 유사하다. 차이는 정열된 배열이라는 이름에서 추측할 수 있듯이 값이 항상 순서대로 있어야 한다는 점이다. 삽입 원소 N개이면 삽입에 총 N+2단계 새 값이 배열 맨끝에 놓이면 총 N+1 단계 “전형적인”배열과 거의 같다. 값이 항상 순서대로 있어야 하기 때문에 값을 추가할 때 마다 배열의 값을 정렬된 상태로 유지한다. 삽입전에 검색을 먼저 수행해서 올바른 위치를 정해야한다. 삽입에 있어서는 전형적인 배열보다 덜 효율적이다. Ex)4개의 원소에서 삽입에 6단계가 걸렸다. 이 N에 대하여 원소가 N개이면 삽입에 총 N + 2단계가 걸린다. 만약 새값이 배열 맨 끝에 놓이면 새값을 기존 N값과 모두 비교하는데 N단계가..
-
01 자료구조란?코딩/자료구조 2023. 9. 10. 15:10
자료구조란? 데이터를 조작하는 방법 배열이란 단순히 데이터 원소들의 리스트 배열의 크기 : 배열에 데이이터 원소가 얼마나 들어있는지 알려준다. 배열의 인덱스 : 특정 데이터가 배열의 어디에 있는지 알려준다, 0부터 시작 자료구조 연산 읽기 자료구조: 특정위치를 찾아보는것 배열: 특정 인덱스의 값을 찾아보는 것 검색 자료구조: 특정 값을 찾는 것 배열: 특정값이 배열에 들어있는지 어떤 인덱스에 있는지 알아보는것 삽입 자료구조: 새로운 값을 추가하는것 배열: 배열내에 슬롯을 더 만들어 새 값을 추가하는것 삭제 자료구조: 값을 제거하는 것 배열 : 값 중 하나를 제거하는 것 속도측정 연산이 얼마나 빠른가를 측정하는 기준? = 얼마나 많은 단계가 필요한가 시간은 연산을 실행하는 하드웨어에 따라 매번 바뀐다. 그..
-
생활영어회화 | 장소에 따른 전치사 사용영어공부/영어회화 2023. 7. 19. 18:08
Prepositions of Movement place walk to the door / the building drive through the tunnel / the village go across the street / the bridge get on the bus / the subway go in the hotel / the car get off the bus / the train go around the corner / the park go past the bank / the museum go over the overpass / the hill go out the exit