일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 리액트 예제
- 비동기
- 스벨트
- 계명대
- hokidoki
- 자바스크립트 자료구조
- jest
- SWIFT
- queue
- 호키도키
- 호키스
- HTML
- IOS
- 계명대 이종호
- 개발
- 개발자
- 스위프트
- javascript
- 자스민
- 힛잇
- 자바스크립트
- 리액트
- react
- Svelte
- 자료구조
- 이종호
- TDD
- data structure
- hokeys
- Hitit
Archives
- Today
- Total
Dog foot print
[javascript] 선택정렬 본문
공부하기 싫어서 그런가 갑작스럽게 선택정렬 포스팅을 하고 싶어졌다.
분석
선택정렬은 만들기는 쉬우나, 이동과 비교가 많아 O(ne2)의 복잡도를 가지는 정렬이다. 단순한 정렬 방법으로, 정렬되지 않은 배열에서 처음 부터 끝까지 돌며 가장 작은 수를 골라 정렬된 배열의 끝에 삽입한다.
타언어는 배열의 중간에 있는 것을 삭제하는 작업이 매우 귀찮은데, 자바스크립트는 splice 메서드를 제공해주어 비교적 쉽게 삭제가 가능합니다.
코드
//임의의 길이의 랜덤한 값이 들어있는 배열을 반환하는 함수
function makeArray(){
let randomIndex = Math.floor(Math.random() * 100);
const array = [];
for(let i = 0; i<randomIndex; i++){
let randomValue = Math.floor(Math.random() * 100);
array[i] = randomValue;
}
return array;
}
function selectionSort(array){
let tempLength = array.length;
const sortedArray = [];
for(let i = 0; i < tempLength; tempLength--){
let minimum = array[0];
let cutLocation = 0;
for(let u = 0; u < tempLength; u++){
if(minimum > array[u]){
minimum = array[u]
cutLocation = u;
}
}
//정렬되지 않은 배열에서 가장 작은 수가 있는 버킷 삭제
array.splice(cutLocation,1);
sortedArray.push(minimum);
}
console.log(sortedArray);
}
const array = makeArray();
selectionSort(array);
반응형
'Javascript' 카테고리의 다른 글
[javascript] 이미지 불러오기 (1) | 2020.01.22 |
---|---|
[javascript] 클로저와 스코프 정리 (0) | 2020.01.11 |
[javascript]quick-sort - ver2 (median, left, right)pivot (0) | 2019.11.29 |
[javascript] 우선순위 큐, heap (2) (0) | 2019.08.09 |
[javascript] 우선순위 큐 (1) (0) | 2019.08.08 |
Comments