Typescript Omit과 Partial 의 차이점
·
Programming/Typescript
TypeScript는 정적 타입을 지원하여 코드의 안정성과 유지보수성을 높이는 데 도움을 줍니다. 이 중에서도 Omit과 Partial은 매우 유용한 유틸리티 타입으로, 각각 객체 타입을 변형하는 데 사용됩니다. 이번 글에서는 Omit과 Partial의 차이점을 자세히 설명하겠습니다.PartialPartial 유틸리티 타입은 주어진 타입 T의 모든 프로퍼티를 선택적으로 만듭니다. 즉, 모든 프로퍼티가 있어도 되고 없어도 되는 상태가 됩니다.사용 예시interface User { id: number; name: string; email: string;}type PartialUser = Partial;const user1: PartialUser = {};const user2: PartialU..
버블 정렬, 선택 정렬, 삽입 정렬 비교
·
Algorithm/Theory
정렬 알고리즘의 Big O알고리즘시간 복잡도 (Best)시간 복잡도 (Average)시간 복잡도 (Worst)공간 복잡도버블 정렬O(n)O(n^2)O(n^2)O(1)삽입 정렬O(n)O(n^2)O(n^2)O(1)선택 정렬O(n^2)O(n^2)O(n^2)O(1) 보통 이 세 가지 정렬 알고리즘은 2차 정렬 알고리즘이라고 불립니다. 이는 시간 복잡도가 O(n^2) 이기 때문입니다. 버블 정렬, 삽입 정렬의 경우 정렬이 거의 다 되어있으면 시간 복잡도가 O(N) 입니다. (Best)하지만 선택 정렬의 경우 최솟값을 찾기위해 끝까지 다 보기 때문에 모든 경우에서 O(n^2) 입니다. (Best) 요약정렬은 기본입니다.버블 정렬, 선택 정렬, 삽입 정렬은 모두 대략 비슷합니다.모두 평균 시간 복잡도가 이차적입니다...
삽입 정렬 (Insertion Sort)
·
Algorithm/Theory
삽입 정렬(Insertion Sort) 소개삽입 정렬은 비교적 간단하고 직관적인 정렬 알고리즘입니다. 작은 데이터를 정렬할 때는 매우 효율적이지만, 데이터의 양이 많아지면 비효율적이 될 수 있습니다. 삽입 정렬의 기본 아이디어는 이미 정렬된 부분 배열을 확장해 나가면서 새로운 요소를 올바른 위치에 삽입하는 것입니다. 삽입 정렬의 의사 코드배열에서 두 번째 요소를 선택하여 시작합니다.두 번째 요소를 이전 요소와 비교하고 필요한 경우 스왑합니다.다음 요소로 계속 진행하고, 잘못된 순서일 경우 정렬된 부분(즉, 왼쪽)을 반복하여 요소를 올바른 위치에 배치합니다.배열이 정렬될 때까지 이 과정을 반복합니다. 삽입 정렬 구현다음은 삽입 정렬을 JavaScript의 ES6 문법으로 구현한 예제입니다:const ins..
선택 정렬 (Selection Sort)
·
Algorithm/Theory
선택 정렬 소개선택 정렬은 정렬 알고리즘 중 하나로, 버블 정렬과 비슷하지만 큰 값을 배열 끝에 위치시키는 대신 작은 값을 한 번에 하나씩 위치에 배열하는 방식입니다. 선택 정렬 동작 방식첫 번째 요소를 가장 작은 값으로 저장합니다.이 요소를 배열의 다음 요소와 비교하여 더 작은 수를 찾을 때까지 계속합니다.더 작은 수를 찾으면, 그 작은 수를 새로운 "최소값"으로 지정하고 배열의 끝까지 계속합니다."최소값"이 처음 시작한 값(인덱스)이 아닌 경우, 두 값을 교환합니다.배열이 정렬될 때까지 다음 요소로 이 과정을 반복합니다. 선택 정렬 의사 코드{for i from 0 to n-1: minIndex = i for j from i+1 to n: if array[j]  선택 정렬 구현..
얼은펭귄
'프로그래밍' 태그의 글 목록