일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- DDL
- js
- 파이썬 파일생성
- spring
- java
- Spring Boot
- 파이썬 파일 수정
- Python
- 스프링
- nodejs
- git
- DML
- pull
- Push
- commit
- java 상속
- python pwd
- 파이썬 파일편집
- Javascript
- HTML
- github
- 깃
- 깃허브
- Algorithm
- 정렬
- 자바
- SQL
- sort
- JAVA ERROR
- 파이썬
Archives
- Today
- Total
춘식이를 좋아하는 개발자
[Algorithm] Insertion Sorting (삽입 정렬) 본문
삽입 정렬 (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+" ");
}
}
'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 |