최솟값을 찾아서 가장 맨앞자리에 고정시킨다 -이 행위 반복
import java.util.Scanner;
public class Main {
private static int cnt=0;//비교횟수
private static int swapcnt=0;
private static int tmp;
static void swap(int[]arr,int a1,int a2) {
int t =arr[a1];
arr[a1]=arr[a2];
arr[a2]=t;
}
static void selectionSort(int []arr) {
for(int i=0; i<arr.length-1;i++) {
int min=i;
for(int j=i+1;j<arr.length;j++) {
if(arr[j]<arr[min]) {
min=j;
} cnt++;
}swap(arr,i,min);swapcnt++;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int []arr = new int[] {6,4,3,7,1,9,8} ;
for(int i=0;i<arr.length;i++) {
System.out.println("정렬전:"+arr[i]);
}
System.out.println("-------------------");
selectionSort(arr);
for(int i=0;i<arr.length;i++) {
System.out.println("정렬후:"+arr[i]);
}
System.out.println(swapcnt+", "+cnt);
}
}
'Java' 카테고리의 다른 글
정렬 알고리즘 : 셸 정렬 (0) | 2022.07.18 |
---|---|
정렬 알고리즘 : 단순 삽입 정렬 (0) | 2022.07.18 |
정렬 알고리즘 : 버블정렬 (0) | 2022.07.18 |
급여관리프로그램 (0) | 2022.07.15 |
BinarySearch (0) | 2022.07.14 |