본문 바로가기

자바스크립트34

Udemy - Javascript - Radix Sort Udemy - Javascript - Radix Sort 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 버블, 선택, 삽입 정렬들은 숫자가 계속 늘어날 수록, 속도가 느려진다 반대로 합병 정렬, 퀵 정렬, 지수 정렬은 위의 3개보다 더 빠르다 기수 정렬 버블, 선택, 삽입, 합병, 퀵 정렬들은 모두 숫자들끼리 비교를 하면서, 정렬을 하는 것이다 정수만 정렬이 가는하다 자릿수가 더 많은 숫자가, 더 크다 라는 로직을 사용해서 정렬을 한다 4자리 수는 두 자리 수보다 크다 1 2 - 1의 자리 숫자들은 앞에 숫자가 없음으로 0에다가 넣으면 된다 3 - 0을 보면, 0에 들어오는 .. 2023. 2. 4.
Udemy - Javascript - Quick Sort Udemy - Javascript - Quick Sort 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 버블, 선택, 삽입 정렬들은 숫자가 계속 늘어날 수록, 속도가 느려진다 반대로 합병 정렬, 퀵 정렬, 지수 정렬은 위의 3개보다 더 빠르다 퀵 정렬 아무 숫자를 사용해도 된다 정한 숫자를 기준으로 그 숫자보다 작은 숫자들의 수를 샌다 그리고 그 새었던 수의 인덱스 값에 정한 숫자를 집어 넣으면, 그 index가 정한 숫자의 정렬된 위치라고 볼 수 있다 그리고 그 숫자 기준으로 왼쪽은, 그 숫자보다 작은 숫자들, 오른쪽은 그 숫자보다 큰 숫자들이어야 한 퀵 정렬 코드 구현 f.. 2023. 2. 1.
Udemy - Javascript - Merge Sort Udemy - Javascript - Merge Sort 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 버블, 선택, 삽입 정렬들은 숫자가 계속 늘어날 수록, 속도가 느려진다 반대로 합병 정렬, 퀵 정렬, 지수 정렬은 위의 3개보다 더 빠르다 합병 정렬 두 배열 합병하기 function mergeSort(array1, array2) { let i = 0 let j = 0 let newArray = [] while (i < array1.length && j < array2.length) { if (array1[i] < array2[j]) { newArray.push(array1.. 2023. 1. 27.
Udemy - Javascript - 삽입 정렬 Udemy - Javascript - 삽입 정렬 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 삽입 정렬 앞에 숫자보다 작으면 앞에 숫자가 더 크거나 같을 때까지 바꿔준다 실시간으로 숫자가 입력될 때 좋다 내가 짠 삽입 정렬 코드 function insertionSort(array) { for (let i = 1; i < array.length; i ++) { while (array[i] < array[i - 1]) { temp = array[i] array[i] = array[i - 1] array[i - 1] = temp i -- } } return array } whil.. 2023. 1. 25.
Udemy - Javascript - 선택 정렬 Udemy - Javascript - 선택 정렬 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 선택 정렬 버블 정렬과 비슷하다 버블 정렬은 뒤에서 부터 큰 숫자를 나열했으면, 선택 정렬을 작은 숫자를 앞에 나열한다 function selectionSort(array) { for (let i = 0 ; i array[j]) { small = j } } // i가 제일 작은 숫자일 경우.. 2023. 1. 24.
Udemy - Javascript - 정렬 Udemy - Javascript - 정렬 정렬이란? 데이터가 있으면, 데이터를 숫자 또는 단어별로 오름차순 또는 내림차순으로 나열하는 것이다 정렬을 하는 방법은 다양하다. 정렬하는 방법마다, 정렬을 하는 시간은 다르다 자바스크립트 기본 내장 정렬 .sort()는 기본적으로 string 기준으로 정렬을 한다 function numberCompare(num1, num2) { return num1 - num2; } array.sort(numberCompare) num1 - num2를 해서 값이 음수가 나오면 num1은 num2보다 앞에 와야 한다 (더 숫자가 작다는 것) 양수가 나오면 num1은 num2 보다 커서 뒤에 나와야 한다 num2 - num1 을 하게 되면 내림차순으로 계산이 된다 버블 정렬 연속.. 2023. 1. 23.
Udemy - Javascript - 탐색 Udemy - Javascript - 탐색 선형 탐색 (Linear Search) 배열이 있으면, 원소 하나하나를 비교해서 탐색하는것 자바스크립트에서 선형 탐색을 하는 메서드들 indexOf includes find findIndex indexOf 를 코드로 표현 function linearSearch(array, number){ for (let i = 0; i < array.length ; i ++) { if (array[i] === number) return i; } return -1 } Big O Best case : O(1) 나오기 굉장히 어렵다 Worst case : O(n) Average : O(n) 이진 탐색 (Binary Search) 선형 탐색보다 탐색이 훨씬 빠르다 하지만 이진 탐색은 .. 2023. 1. 19.
Udemy - Javascript - 재귀 문제풀이 Udemy - Javascript - 재귀 문제풀이 Power() 거듭제곱을 재귀로 만든다 function power(num1, num2) { if (num2 === 0) return 1; return num1 * power(num1, num2 - 1) } num2 가 0이면 1을 반환한다 예) 2 ^ 0 = 1 / 4 ^ 0 = 1 num2가 0이 될때까지 return num1 * power(num1, num2 - 1)를 call stack에 넣어준다 num2가 0이 되면 if (num2 === 0) return 1;을 통해 1을 반환한다 call stack에 넣어둔 만큼 num1을 power(num1, num2 - 1)과 곱하면 결과값이 나온다 Factorial() 팩토리얼을 계산 하는 것이다 주어진.. 2023. 1. 11.
Udemy - Javascript - 재귀 Udemy - Javascript - 재귀 재귀 (Recursion) 재귀는 자기 자신을 부르는 과정, (Javascript 같은 경우 함수) 이다 함수가 함수를 부르는 것이다 재귀 함수는 많은 곳에서 쓰인다 JSON.parse / JSON.stringify document.getElementById 그리고 DOM 등 많은 div가 있는데, 그것을 찾기 위해 재귀 함수를 사용할 수도 있다 더 복잡한 자료구조를 해결할 때 유용할 수 있다 iteration보다 더 깔끔할 대체자가 될 수 있다 스택 호출하기 Call Stack 스택 자료 구조다 (스택은 LIFO - Last In First Out) 함수가 적용될 때마다 Call Stack 위에 쌓이게 된다 (PUSH) 그리고 JavaScript가 return.. 2023. 1. 10.