힙정렬(2)
-
[백준] 2751. 수 정렬하기 2 (node.js/javascript/자바스크립트/정렬/힙정렬/알고리즘/코딩테스트)
내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); const size = Number(input[0]); class Heap { constructor() { this.items = []; } //swap swap(index1, index2) { let temp = this.items[index1]; this.items[index1] = this.items[index2]; this.items[index2] = temp; } //parentIndex parentIndex(index) { return Math.floor((index - 1) / 2); } //left..
2021.04.29 -
[자바스크립트 자료구조] 힙(heap) - 연습문제
일련의 숫자에서 중앙값 찾기 중앙값이란 어떤 배열을 정렬했을 때 정 가운데에 위치하는 값 원소의 개수가 홀수인 경우: 가장 중앙에 위치한 원소가 중앙 값((전체 개수 + 1) / 2 번째 원소) [1, 2, 3]의 배열에서는 2가 중앙값 원소의 개수가 짝수인 경우: 가운데 두 원소의 평균이 중앙값 [1, 2, 3, 4]에서는 2와 3의 평균인 2.5가 중앙값 중앙값을 찾을 때 그냥 최소힙이나 최대힙 둘중 하나로 만들고 중앙에 해당하는 인덱스에 있는 값을 반환하면 되겠지만 데이터가 지속적으로 추가/삭제되고 있는 상황에서 중앙값을 찾으려면 중앙값을 찾을때마다 배열 전체에 대한 정렬을 시도하므로 시간 낭비임 🌟🌟🌟하나의 최소 힙과 최대 힙을 만들면 중간 값을 얻는 것은 단지 O(1) 시간 밖에 걸리지 않음 그..
2021.03.25