본문 바로가기

플밍 is 뭔들/자료구조

07-1 선택 정렬

※ 선택 정렬(Selection Sort)
 - 원소중 가장 작은 원소를 찾아 선택하여 첫번 째 원소와 교환한다. 그리고 두번째 작은 원소를 찾아 두번 째 자리의 원소와 교환한다.
   이런식으로 길이 n인 배열의 n-1자리의 원소와 n번째 원소의 값을 비교하여 정렬하기를 반복한다.
 


※ 구현

Main
public class Main {
       
       public static void main(String[] args) {
              int a[] = {69,10,30,2,16,8,31,22};
              SelectionSrot ss = new SelectionSrot();
              System.out.println("\n정렬할 원소 : ");
              for(int i =0; i<a.length; i++){
                     System.out.printf(" %d ", a[i]);
              }
              System.out.println();
              ss.Sorting(a);
              
              
       }
}

SelectSort
public class SelectionSrot {
       
       private int[] a;
       
       public void Sorting(int[] a){
              
              this.a=a;
              int minIdx;
              int minValue;
              
              for(int i =0; i < this.a.length-1;i++){
                     
                     minIdx =0;
                     minValue=a[i];
                     
                     for(int j =i+1; j< this.a.length;j++){
                           if(minValue>a[j]){
                                  minIdx =j;
                                  minValue = a[j];
                           }
                     }
                     if(minIdx != 0){
                           swap(i, minIdx);
                     }
              }
              printSortResult();
       }
       
       private void swap(int idx, int minIdx){
              int temp = a[idx];
              a[idx] = a[minIdx];
              a[minIdx] = temp;
       }
       
       private void printSortResult(){
              for(int i =0; i<a.length; i++){
                     System.out.printf(" %d ", a[i]);
              }
       }
}



'플밍 is 뭔들 > 자료구조' 카테고리의 다른 글

07-3 퀵 정렬  (0) 2016.11.30
07-2 버블 정렬  (0) 2016.11.30
06-4 신장 트리와 최소 비용 신장 트리  (0) 2016.11.26
06-3 그래프의 순회  (0) 2016.11.26
06-2 그래프의 구현  (0) 2016.11.26