목차

  1. 목차
    1. 5.2.1 선택 정렬 알고리즘
    2. 5.2.2 알고리즘 구현
    3. 5.2.3 선택 정렬의 과정
    4. 5.2.4 안정성문제
    5. 5.2.5 선택 정렬 알고리즘의 실행 시간 분석
  2. 문서에 대하여

-가장 간단한 알고리즘
-실생활에서 가장 많이 사용하는 알고리즘
-가장 작은 수를 찾아 맨앞에 놓는다.

5.2.1 선택 정렬 알고리즘

1. i=0
2. i가 n-2가 되면 끝낸다.
3. 배열의 i항부터 n-1항까지 중 최소값을 찾아서 그항을 min에 저장한다.
4. i를 하나 증가시키고 2로 돌아간다.

5.2.2 알고리즘 구현


public class SelectArray {	
	

	public int[]  selectArray() {
	        int a[] = new int[]{12,5,1,23,44,11};


    		int temp =0 ;
    		int index =0; // 위치저장
    		for(int i=0 ; i<a.length ; i++){
    			temp = a[i];
    			index = i;
    			for(int j =i+1 ; j <a.length ; j++){

    				if(temp > a[j]){
    					temp = a[j];
    					index = j;    				}
    			}
    			a[index] = a[i];
    			a[i] = temp;

    			System.out.println("selectArray():"+ a[0]+","+ a[1]+","+ a[2]+","+ a[3]+","+ a[4]+","+ a[5]);


    		}
		return a;
	}
	

	public static void main(String[] args) {
		
		System.out.println(selectArray());
		

	}

}


결과)
selectArray():1,5,12,23,44,11
selectArray():1,5,12,23,44,11
selectArray():1,5,11,23,44,12
selectArray():1,5,11,12,44,23
selectArray():1,5,11,12,23,44
selectArray():1,5,11,12,23,44

5.2.3 선택 정렬의 과정

배열의 앞부분부터 정렬을 차례로 한다.
큰 레코드와 작은키를 직접 정렬할 때 굉장히 유용하다.(교환 횟수가 최대 N번이므로 교환의 횟구가 가장 적은 편)

5.2.4 안정성문제

5.2.5 선택 정렬 알고리즘의 실행 시간 분석

문서에 대하여