티스토리 뷰
프로그래밍 언어/Node.js
[Node.js] javascript: 계수 정렬(counting sort)을 이용한 중간값(median) 구하는 함수 구현
miiingo 2021. 6. 17. 00:05반응형
function getMedian(arr) {
// arr.sort((a, b) => { return a - b; });
console.log('arr=', arr);
const max = arr.reduce((acc, cur, idx) => {
if(arr[idx] > acc){
acc = arr[idx];
}
return acc;
}, 0);
let counts = [];
for(let i=0; i<=max; i++){
counts[i] = 0;
}
for(let i=0; i<arr.length; i++){
counts[arr[i]]++;
}
for(let i=1; i<counts.length; i++){
counts[i] += counts[i-1];
}
let sorted = [];
let index = 0;
while(index <= max){
if(sorted.length < counts[index]){
sorted.push(index);
}
else{
index++;
}
}
if(sorted.length%2 == 1){
return sorted[parseInt(sorted.length/2)];
}
else{
return (sorted[(sorted.length/2)-1] + sorted[sorted.length/2])/2
}
}
반응형
'프로그래밍 언어 > Node.js' 카테고리의 다른 글
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Blockchain
- 블록체인
- 빅데이터 기초
- 어서와 데이터는 처음이지
- Hyperledger Fabric
- 하이퍼레저 인디
- ubuntu
- docker
- 직딩잇템
- 빅데이터
- ambrosus
- 코딜리티
- javascript
- Hyperledger Fabric v1.2
- 빅데이터 교육
- Hyperledger Indy
- codility
- 코테
- 블록 체인
- 암브로셔스
- 하이퍼레저 페브릭
- Hyperledger Fabric v1.1
- 문제풀이
- 하이퍼레저 패브릭
- 기초 of 기초 데이터 개념
- 알고리즘
- DOCs
- 빅데이터 강의
- Private Data
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함