일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 계명대
- SWIFT
- react
- 자스민
- 호키스
- 리액트
- IOS
- 비동기
- 개발
- 힛잇
- queue
- 자료구조
- hokeys
- 이종호
- 스벨트
- 개발자
- Hitit
- data structure
- javascript
- 호키도키
- TDD
- hokidoki
- jest
- 스위프트
- 자바스크립트
- HTML
- 계명대 이종호
- Svelte
- 리액트 예제
- 자바스크립트 자료구조
Archives
- Today
- Total
Dog foot print
[javascript] Insert Sort ! 본문
포스팅 전 주저리 : 여자친구가 어제 아이패드 프로 1세대 중고를 구입했다. 구성도 알차게 있었는데, 내가 사용하는 6세대보다 훨씬 좋아보인다 ㅜ.ㅜ 나도 열심히 공부하고 돈 벌어서 모든 애플제품을 프로로 구입하는 프로앱등이가 될거다. ! 빠샤
삽입정렬이란 ?
배열의 1번째 index부터 배열을 순회하며 자신보다 높은 데이터 앞에 해당 key의 데이터를 넣는 정렬 알고리즘이다.
시간 복잡도는 O(n2) 이며 안정 정렬 알고리즘이다.
삽입정렬이 일어날 때 내부
1. 빨간글씨 key의 아이템이 전과 key 의 전 아이템과 비교한다.
2. key의 아이템이 작다면 왼쪽 방의 아이템들과 비교해서 작을때까지 배열을 이동하여 key의 아이템을 삽입한다.
1번째 인덱스 value = 2;
[6,2,4,7,5,2] // 6과 2를 비교해 2보다 큰수가 없거나 방 번호가 -1 이 되지 않을때까지 이동한 후 삽입한다.
결과
[2,6,4,7,5,2]
2번째 인덱스 value = 4;
[2,6,4,7,5,2] // 6과 4 비교. 2전까지 이동 후 삽입
결과
[2,4,6,7,5,2]
3번째 인덱스 value = 7;
[2,4,6,7,5,2] // 6보다 크므로 생략.
4번째 인덱스 value = 5;
[2,4,6,7,5,2] // 7과 5비교 5가 더 작으므로 4전 까지 이동 후 삽입
결과
[2,4,5,6,7,2]
5번째 인덱스 value는 2;
[2,4,5,6,7,2] // 7과 2 비교 2가 더 작으므로 2 전까지 이동 후 삽입
결과
[2,2,4,5,6,7]
예제
function insertSort(array){
let key = 1;
while(key < array.length){
temp = array[key];
prevent = key - 1;
while(prevent >= 0 && array[prevent] >= temp){
array[prevent + 1] = array[prevent];
prevent--;
console.log(array);
}
array[prevent+1] = temp;
key++;
}
return array;
}
let array = [2,5,4,8,6,0,3,6,7]
console.log(insertSort(array));
반응형
'Javascript' 카테고리의 다른 글
[javascript] Hash table, 해시 테이블 (2) (0) | 2019.08.02 |
---|---|
[javascript] Hash table , 해시테이블 (1) (0) | 2019.08.01 |
[javascript] Merge Sort ! (0) | 2019.07.29 |
[javascript] Quick sort ! (0) | 2019.07.28 |
[javascript] 이중연결리스트 (0) | 2019.07.26 |
Comments