Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프론트엔드 과제
- 모던 자바스크립트
- invalid_grant
- Deep Dive
- concurrency limit
- bucket4j
- 딥다이브
- 유효시간 설정 url
- Dev-Matching
- NestJS
- AWS
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- 우아한테크코스
- 스프링부트
- 우아한 테크코스
- TypeORM
- 타입스크립트
- api 비동기처리
- 자바스크립트
- api 요청 수 제한
- oauth
- 프리코스
- 프론트엔드
- 음악 url 파일 다운로드
- compateto
- redis
- 파일 url
- 검색
- this
- 프로그래머스
Archives
- Today
- Total
개발 알다가도 모르겠네요
삽입정렬 (insertion sort) 을 간단하게 알아보자. 본문
728x90
삽입 정렬을 간단하게 설명하면?
손에 든 카드를 정렬하는 것처럼 새로운 값을 정렬된 배열에 올바르게 삽입하는 정렬!
- 선택 정렬처럼 정렬된 배열과 정렬되지 않은 배열로 구별해서 정렬한다는 점에서 유사합니다.
- 그러나 선택정렬과는 달리 삽입 정렬은 값이 삽입되면 정렬된 배열 사이에서 자신의 자리를 찾아가며 정렬합니다.
구현 과정
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] A= {70, 20, 10, 80, 60, 90, 30, 40, 100, 50};
for(int i=0; i<A.length; i++) { //정렬 전 배열 출력
System.out.print(A[i]+" ");
}
System.out.println();
for(int i=1; i<A.length; i++) {
int j=i; //배열은 i번째부터 시작.
while(j>0 && A[j-1]>A[j]) { //j는 0보다 크고(어차피 j가 1일 때 자동으로 비교되니까) j-1이 j보다 클 경우.
int temp=A[j]; //스왑한다.
A[j]=A[j-1];
A[j-1]=temp;
j--;
}
}
for(int i=0; i<A.length; i++) {
System.out.print(A[i]+" ");
}
}
}
시간 복잡도
- Worst : O(n^2)
- Average : O(n^2)
- Best : O(n^2)
'자료구조 > 정렬' 카테고리의 다른 글
합병정렬 (merge sort) 을 간단하게 알아보자 . (0) | 2021.01.04 |
---|---|
퀵정렬 (quick sort) 을 간단하게 알아보자. (0) | 2021.01.01 |
버블정렬 (bubble sort) 을 간단하게 알아보자. (0) | 2021.01.01 |
선택정렬 (selection sort) 을 간단하게 알아보자. (0) | 2021.01.01 |