package edu.exam03.selectionsort10;

import java.util.Arrays;
//선택정렬
public class SelectionSort {
	public static void selectionSort(int[] _arr, int o) {
		//마지막 값은 비교대상이 없으므로
		//'배열길이-1' 까지만 비교가 이루어진다.
		for(int i=0; i<_arr.length-1;i++) {
			int minIdx = i;
			//아래 for문이 끝나면 현재 기준공간에 들어갈 위치가 결정됨
			for(int j=i+1;j<_arr.length;j++) {
				if(o*_arr[j] < o*_arr[minIdx]) //부호를 반대로 두면 내림차순 정렬됨
					minIdx = j;			
			}
			//_arr 배열의 i의 값과 minIdx값을 교체한다.
			swap(_arr,i,minIdx);			
		}
	}
	public static void swap(int[] _a, int base, int mIdx) {
		int temp = _a[base];
		_a[base] = _a[mIdx];
		_a[mIdx] = temp;
	}	
	public static void main(String[] args) {
		int[] arr = {77, 99, 25, 2, 10 };
		System.out.println(Arrays.toString(arr));
		selectionSort(arr, -1);	//내림차순
		System.out.println(Arrays.toString(arr));
		selectionSort(arr,  1); //오름차순
		System.out.println(Arrays.toString(arr));
	}
}

'etc.. > 1' 카테고리의 다른 글

200109 선택정렬, 최대값/최소값  (0) 2020.01.10
최대값, 최소값 예제  (0) 2020.01.10
200110 배열 advance  (0) 2020.01.10
200110 배열 middle  (0) 2020.01.10
200110 배열 basic  (0) 2020.01.10

+ Recent posts