삽입 정렬 (Insertion Sort)
·
Algorithm/Theory
삽입 정렬(Insertion Sort) 소개삽입 정렬은 비교적 간단하고 직관적인 정렬 알고리즘입니다. 작은 데이터를 정렬할 때는 매우 효율적이지만, 데이터의 양이 많아지면 비효율적이 될 수 있습니다. 삽입 정렬의 기본 아이디어는 이미 정렬된 부분 배열을 확장해 나가면서 새로운 요소를 올바른 위치에 삽입하는 것입니다. 삽입 정렬의 의사 코드배열에서 두 번째 요소를 선택하여 시작합니다.두 번째 요소를 이전 요소와 비교하고 필요한 경우 스왑합니다.다음 요소로 계속 진행하고, 잘못된 순서일 경우 정렬된 부분(즉, 왼쪽)을 반복하여 요소를 올바른 위치에 배치합니다.배열이 정렬될 때까지 이 과정을 반복합니다. 삽입 정렬 구현다음은 삽입 정렬을 JavaScript의 ES6 문법으로 구현한 예제입니다:const ins..
Javascript에서 배열과 오브젝트의 빅오 (Big - O)
·
Algorithm/Theory
Javascript에서 배열과 객체는 자주 사용되는 데이터 구조입니다. 이 글에서는 배열과 객체의 성능을 빅오 표기법(Big O Notation)을 통해 비교하고, 배열의 시작 부분에 요소를 추가하는데 비용이 많이 드는 이유와 내장 메서드의 런타임 성능을 분석합니다. 객체의 빅오 표기법객체는 정렬되지 않은 데이터 구조로, key-value 쌍으로 저장됩니다. 객체는 정렬이 필요 없을 때, 빠른 접근, 입력, 제거를 원할 때 유용합니다.객체의 빅오삽입: O(1)삭제: O(1)탐색: O(N)접근: O(1)내장 메서드의 빅오Object.keys: O(N)Object.values: O(N)Object.entries: O(N)hasOwnProperty: O(1)배열의 빅오 표기법배열은 정렬된 데이터 구조로, 특정..
빅오 표기법 (Big-O Notation)
·
Algorithm/Theory
목표빅오 표기법의 필요성빅오 표기법이 무엇인지빅오 표기법의 간단한 표현법시간복잡도와 공간복잡도의 정의빅오 표기법을 이용한 알고리즘 표기법로그(log)가 무엇인지빅오 표기법의 필요성어떤 문제를 해결하는 두 가지 방법이 있을 때, 하나는 루프를 사용하고, 다른 하나는 리스트나 문자열을 사용하는 방법일 수 있습니다. 무엇이 더 나은지 알기 위해서는 빅오 표기법이 필요합니다. 빅오 표기법을 사용하면 코드를 일반화하고 비교하며 성능을 평가할 수 있는 시스템을 제공합니다. 예시1부터 N까지 모든 숫자를 더하는 함수를 예로 들어보겠습니다. // 첫 번째 방법: 루프 사용function addUpTo(n) { let total = 0; for (let i = 0; i 어떤 방법이 더 나을까요?어떤 것이 더 빠를까요..
얼은펭귄
'빅오표기법' 태그의 글 목록