본문 바로가기

Skill Stacks/Javascript27

Udemy - Javascript - Data Structure Udemy - Javascript - Data Structure Singly Linked Lists (단일 연결 리스트) 자료구조 자료 구조는 데이터에 적용될 수 있는 값들 및 기능 혹은 작업들 사이의 관계를 포함한다 예를 들어 배열을 생각한다 배열 안에는 값들 사이에 관계가 있다 (정렬을 하거나, 값을 추가할 수 있거나 없앨 수 있다) 자료 구조에는 많은 종류가 있고, 각자 쓰임세가 다르다 연결 리스트 제일 앞과 뒤, 그리고 리스트의 길이 속성만 존재한다 즉 리스트 안에 index가 없다 노드로 존재한다 (노드끼리 연결되어 있음) 리스트 vs 배열 리스트 인덱스가 없다 노드들끼리 연결되어 있다. 그리고 노드들은 다음 노드를 POINT한다 랜덤으로 노드를 사용할 수 없다 배열 인덱스에 따라 나열되어 있다.. 2023. 2. 9.
Udemy - Javascript - Data Structure Udemy - Javascript - Data Structure 자료구조 자료 구조는 데이터에 적용될 수 있는 값들 및 기능 혹은 작업들 사이의 관계를 포함한다 예를 들어 배열을 생각한다 배열 안에는 값들 사이에 관계가 있다 (정렬을 하거나, 값을 추가할 수 있거나 없앨 수 있다) 자료 구조에는 많은 종류가 있고, 각자 쓰임세가 다르다 ES2015 자료 구조를 클래스로 만들 예정 What is Class? 클래스는 객체를 생성하기 위해 미리 속성 및 메소드를 정의한 블루프린트이다 class Student { constructor(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } } let firstStudent =.. 2023. 2. 7.
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.