본문 바로가기

반응형

알고리즘과 자료구조

(20)
[알고리즘] 선택 정렬 with JS 선택정렬(Selection sort) 배열에서 가장 작은 값을 찾아서 배열의 맨 앞에 위치시키고, 그 다음 작은 값을 찾아서 두 번째 위치에 위치시키는 방식으로 정렬하는 알고리즘 입니다. 선택정렬 실행 과정 배열의 첫 번째 원소를 제외한 나머지 원소들 중 가장 작은 값을 찾습니다. 가장 작은 값과 배열의 첫 번째 원소를 교환합니다. 배열의 두 번째 원소를 제외한 나머지 원소들 중 가장 작은 값을 찾습니다. 가장 작은 값과 배열의 두 번째 원소를 교환합니다. 위의 과정을 반복해서 전체 배열이 정렬될 때까지 반복합니다. 선택정렬 코드 function selectionSort(arr) { for (let i = 0; i < arr.length - 1; i++) { let minIndex = i; for (le..
[알고리즘] 선형탐색(linearSearch) with JS 선형탐색(linearSearch) 배열에서 특정 값을 찾기 위해 순차적으로 배열의 각 요소를 검색하는 방법입니다. 자바스크립트에서 대표적인 선형탐색 중 하나는 indexOf() 가 있습니다. 선형 탐색은 배열의 첫 번째 요소부터 마지막 요소까지 차례대로 검색하면서 원하는 값을 찾습니다. 만약 원하는 값이 있다면 해당 값의 인덱스를 반환하고, 찾지 못했다면 -1을 반환합니다. 코드 아래 예시에서는 linearSearch() 함수가 배열과 찾을 값을 인자로 받습니다. 함수는 배열을 처음부터 끝까지 순회하면서 원하는 값을 찾습니다. 만약 찾고자 하는 값이 있다면 해당 값의 인덱스를 반환하고, 찾지 못했다면 -1을 반환합니다. function linearSearch(arr, value) { for (let i ..
[정렬 알고리즘] 버블정렬 with JS 버블정렬 버블 정렬(Bubble Sort)은 서로 인접한 두 원소를 비교하며 정렬하는 알고리즘입니다. 구현이 간단하나 시간복잡도가 높기 때문에 큰 데이터셋에는 적합하지 않습니다. 코드 // 배열의 비교인덱스의 요소를 배열 길이 만큼 반복하여 서로 비교 후 자리를 바꾸는 알고리즘 function bubbleSort(array) { const length = array.length; // 시작인덱스: i -> 배열 길이 만큼 반복을 실행하는 용도이지 비교를 위해 사용하지 않습니다. for (let i = 0; i 실질적으로 배열의 원소를 비교할 때 쓰입니다. for (let j = 0; j < length - 1; j++) { if (array..
[알고리즘/자료구조] 시간복잡도/공간복잡도/알고리즘/자료구조 시간복잡도 시간 복잡도(Time Complexity)란 알고리즘이 입력 데이터의 크기에 따라 얼마나 많은 시간(혹은 연산)이 소요되는지를 나타내는 것입니다. 자바스크립트에서도 이러한 시간복잡도를 계산하는 방법이 있습니다. 자바스크립트에서 시간 복잡도는 주로 Big O 표기법을 사용하여 표현합니다. Big O 표기법은 입력 크기에 따른 알고리즘 실행 시간 증가율을 나타내며, 가장 큰 항을 기준으로 표기합니다. 여기서 입력 크기란 일반적인 for 반복문 에서 배열의 길이를 의미하며, 검색 알고리즘에서는 검색해야 하는 데이터의 개수가 이에 해당합니다. 다음은 자바스크립트에서 자주 사용되는 시간 복잡도와 그에 해당하는 Big O 표기법입니다. O(1) : 입력 크기에 관계 없이 일정한 실행 시간을 가지는 알고리..

반응형