일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- spring
- 파이썬
- Push
- java 상속
- pull
- python pwd
- DDL
- 깃
- Algorithm
- Python
- DML
- nodejs
- SQL
- JAVA ERROR
- git
- sort
- 스프링
- commit
- js
- 파이썬 파일생성
- 파이썬 파일편집
- 깃허브
- 파이썬 파일 수정
- Javascript
- 자바
- HTML
- github
- java
- 정렬
- Spring Boot
Archives
- Today
- Total
춘식이를 좋아하는 개발자
[Algorithm] Insertion Sorting (삽입 정렬) 본문
728x90
삽입 정렬 (Insertion Sorting)
삽입 정렬(Insertion Sorting)은 선택 정렬(Selection Sorting)과 유사하지만 좀 더 효율적인 정렬 알고리즘이다.
매 순서마다 해당 원소를 삽입할 수 있는 위치를 찾아 해당 위치에 넣는다.
장점
1. 안정적인 정렬 방법
2. 레코드의 수가 적을 경우 알고리즘 자체가 매우 간단하므로 다른 복잡한 정렬 방법보다 유리할 수 있다.
3. 대부분의 레코드가 이미 정렬되어 있는 경우에 매우 효율적일 수 있다.
단점
1. 비교적 많은 레코드들의 이동을 포함한다.
2. 레코드 수가 많고 레코드 크기가 클 경우에 적합하지 않다.
Cording
package 삽입정렬;
public class InsertionSort {
public static void main(String[] args) {
int array[] = {8,5,6,2,4};
for(int i=0;i<array.length-1;i++) {
for(int j=i;j>=0;j--) {
int tmp = 0;
if(array[j]>array[j+1]) {
tmp = array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
else break;
}
}
for(int i : array) System.out.print(i+" ");
}
}
728x90
'Study > Java' 카테고리의 다른 글
[JAVA] 인터페이스(Interface) & 추상화 / 다중 상속 (0) | 2022.05.11 |
---|---|
[JAVA] 상속이란? (0) | 2022.05.11 |
[JAVA] Flag (플래그) Boolean형 data를 이용한 logic (0) | 2022.05.10 |
[JAVA] ++x와 x++의 차이점 (0) | 2022.05.10 |
[Spring] Exception(Error) 방지 (0) | 2022.05.09 |