1. 단순 선택 정렬
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | package myTest4; import java.util.Scanner; public class SimpleSelectionSort { static void selectionSort(int[] a, int n){ for(int i=0; i<n-1; i++){ int min = i ; // 아직 정렬되지 않은 부분에서 가장 작은 요소의 인덱스를 기록 min = 0 for(int j = i+1; j < n; j++){ if(a[j] < a[min]){ min = j ; } } swap(a, i, min); } } static void swap(int[] array, int idx1, int idx2){ for(int i=0; i<array.length; i++){ System.out.print(array[i]); } System.out.println(); int t = array[idx1]; array[idx1] = array[idx2]; array[idx2] = t; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("배열의 길이: "); int arrayLength = scanner.nextInt(); int[] array = new int[arrayLength]; for(int i=0; i<arrayLength; i++){ System.out.print("array[" + i + "] :"); array[i] = scanner.nextInt(); } selectionSort(array, arrayLength); System.out.println("오름차순 정렬완료"); for(int i=0; i<arrayLength; i++){ System.out.print(array[i]); } System.out.println(); } } | cs |
단순 선택 정렬결과
1 2 3 4 5 6 7 8 9 10 11 12 | 배열의 길이: 5 array[0] :5 array[1] :4 array[2] :3 array[3] :2 array[4] :1 54321 14325 12345 12345 오름차순 정렬완료 12345 | cs |
2. 단순 삽입 정렬
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 32 33 34 35 36 37 38 39 40 | package myTest4; import java.util.Scanner; public class SimpleInsertSort { static void insertionsort(int[] a, int n){ for(int i=1; i<n; i++){ int j; int tmp = a[i]; for(j=i; j>0 && a[j-1] > tmp; j--){ a[j] = a[j-1]; } a[j] = tmp; for(int k=0; k<n; k++){ System.out.print(a[k]); } System.out.println(); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("배열의 길이: "); int arrayLength = scanner.nextInt(); int[] array = new int[arrayLength]; for(int i=0; i<arrayLength; i++){ System.out.print("array[" + i + "] :"); array[i] = scanner.nextInt(); } insertionsort(array, arrayLength); // 배열 x를 버블 정렬 한다. System.out.println("오름차순 정렬완료"); for(int i=0; i<arrayLength; i++){ System.out.print(array[i]); } System.out.println(); } } | cs |
단순 삽입 정렬결과
1 2 3 4 5 6 7 8 9 10 11 12 | 배열의 길이: 5 array[0] :5 array[1] :4 array[2] :3 array[3] :2 array[4] :1 45321 34521 23451 12345 오름차순 정렬완료 12345 | cs |
'전체 > 알고리즘' 카테고리의 다른 글
퀵정렬 (0) | 2018.11.03 |
---|---|
쉘 정렬 (0) | 2018.10.27 |
버블정렬 여러가지 방법 구현 (0) | 2018.10.09 |
8퀸 문제, 가지뻗기, 분기한정법 사용 구현 (2) | 2018.10.07 |
재귀를 사용한 팩토리얼, 최대공약수, 하노이탑 구현 (0) | 2018.10.07 |