본문 바로가기
🧮알고리즘

[20211006] 선택 정렬

by 캔 2021. 10. 6.
import java.util.Scanner;

//단순 선택정렬
public class SelectionSort {
	//배열 요소 a[idx1]과 a[idx2]의 값을 바꾸는 메서드
	static void swap(int a[], int idx1, int idx2) {
		int t = a[idx1];
		a[idx1] = a[idx2];
		a[idx2] = t;
	}
	
	static void selectionSort(int a[], int n) {
		for (int i=0;i<n-1;i++) {
			int min = i; //아직 정렬되지 않는 가장 작은 요소의 index를 기록
			for (int j=i+1;j<n; j++) {
				if (a[j] < a [min]) {
					min = j;
				}
			}
			swap(a, i, min); // 아직 정렬되지 않은 부분의 첫 요소와 가장 작은 요소를 교환
		}
	}
	
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		System.out.println("단순 선택 정렬");
		System.out.println("요소의 개수:");
		int nx = stdIn.nextInt();
		int x[] = new int[nx];
		for(int i=0; i<x.length; i++) {
			System.out.println("x["+i+"]:");
			x[i] = stdIn.nextInt();
		}
		selectionSort(x, nx);
		System.out.println("오름차순으로 정렬했습니다.");
		for(int i=0;i<nx;i++) {
			System.out.println("x["+i+"]: "+x[i]);
		}
	}
}

'🧮알고리즘' 카테고리의 다른 글

[20211008] 삽입 정렬  (0) 2021.10.08
[20211007] 버블 정렬  (0) 2021.10.07
[20211005] 해시 검색  (0) 2021.10.06
[20211001] 이진 트리 검색  (0) 2021.10.01
[20210930] 점프(블록) 검색 알고리즘  (0) 2021.09.30