삽입 정렬(Insert Sort)
알고리즘 중에서도 가장 기초가 되는 것이 바로 sorting입니다.
sorting은 정말 다양한 종류가 있습니다. 그 중에서도 가장 기초가 되는것이 Insertion Sorting 과 Bubble Sorting입니다.
Insertion Sorting (삽입정렬)의 가장 큰 특징은 KEY 값이라고 생각한다.
KEY값을 기준으로해서 그 전값과 비교를 해서 삽입을 해주는 식으로 정렬을 한다.
[자바 소스 코드]
- public class Main {
- int data[] = { 74, 45, 25, 90, 12, 65, 24, 40, 9, 80 }; // 원본값을 배열로 설정
- printArray original_data = new printArray(data);
- InsertSort i = new InsertSort(data);
- printArray sorted_data = new printArray(data);
- }
- }
- class printArray {
- public printArray(int arrayData[]){
- for(int i=0; i<arrayData.length; i++){
- }
- }
- }
- class InsertSort {
- public InsertSort (int[] arrayData) {
- int data_position;
- int temp;
- for (int i=1; i<arrayData.length; i++) {
- data_position = i;
- temp = arrayData[i];
- while (data_position > 0) {
- arrayData[data_position] = arrayData[data_position-1];
- if (arrayData[data_position-1] < temp) {
- break;
- }
- data_position--;
- }
- arrayData[data_position]=temp;
- printArray sorting_data = new printArray(arrayData);
- }
- }
- }
[실행 결과]
- 정렬 이전 원 데이타 :
- ----------------------------------------------------
- 74 45 25 90 12 65 24 40 9 80
- 1번째 선택 정렬 중 데이타 : 45 74 25 90 12 65 24 40 9 80
- 2번째 선택 정렬 중 데이타 : 25 45 74 90 12 65 24 40 9 80
- 3번째 선택 정렬 중 데이타 : 25 45 74 90 12 65 24 40 9 80
- 4번째 선택 정렬 중 데이타 : 12 25 45 74 90 65 24 40 9 80
- 5번째 선택 정렬 중 데이타 : 12 25 45 65 74 90 24 40 9 80
- 6번째 선택 정렬 중 데이타 : 12 24 25 45 65 74 90 40 9 80
- 7번째 선택 정렬 중 데이타 : 12 24 25 40 45 65 74 90 9 80
- 8번째 선택 정렬 중 데이타 : 9 12 24 25 40 45 65 74 90 80
- 9번째 선택 정렬 중 데이타 : 9 12 24 25 40 45 65 74 80 90
- -----------------------------------------------------
- 선택 정렬 후 데이타 : 9 12 24 25 40 45 65 74 80 90
'재미있는 프로그래밍 > 알고리즘 소스 코드' 카테고리의 다른 글
버블정렬(Bubble Sort) - 오름차순 정렬 (0) | 2017.03.05 |
---|---|
선택 정렬 - 오름 차순 정렬 (0) | 2017.03.04 |