선택정렬

박은빈·2022년 9월 27일

코딩

목록 보기
3/19

위의 그림을 코드로 구현해서 오름차순으로 정렬하자

  1. 배열 입력받기
  2. 기준이 되는 수와 그 뒤에 최소값을 찾는 수 구분
  3. for문으로 기준이 되는 수를 제외하고 최소값 찾기
  4. 최소값과 기준이 되는 수와 비교
  5. 최소값이 클 경우 넘기기
  6. 최소값이 작을경우 기준이 되는 배열에 최소값을 넣고 최소값의 배열에 기준이 되는 수 넣기

코드

import java.util.Scanner;

public class SelectSort {
	
	public static int[] selectSort(int[] arr) {
		
		int temp = 0;
		int change = 0;
		int arrNum = 0;
		
		for(int i=0; i<arr.length-1; i++) {
			
			temp = arr[i+1];
			
			for(int j=i+1; j<arr.length; j++) {
				if(temp > arr[j]) {
					temp = arr[j];
					arrNum = j;
				}
			}
			
			if(arr[i] > arr[arrNum]) {
				change = arr[i];
				arr[i] = arr[arrNum];
				arr[arrNum] = change;
			}
		}
		
		return arr;
	}

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("배열의 길이 : ");
		int arrLength = sc.nextInt();
		
		int[] arr = new int[arrLength];
		
		for(int i=0; i<arr.length; i++) {
			arr[i] = sc.nextInt();
		}

		for(int x : selectSort(arr)) {
			System.out.print(x + " ");
		}
	}

}
  • 바깥for문에서 lenght-1까지 한 이유 : 마지막 배열은 굳이 확인안해도 최대값이기때문에
  • temp안에 최소값을 계속 넣으며 최소값 확인
  • 그러면서 최소값에대한 배열번호도 같이 확인
profile
안녕하세요

0개의 댓글