ABOUT ME

My Log

Today
Yesterday
Total
  • 선택정렬 (Selection Sort)
    Computer Science/Algorithm 2020. 4. 7. 08:48

     

    [ 선택정렬 ]

     - 맨 앞부터 차례대로 데이터 수만큼 비교하여 작은값을 앞으로 보내면서 정렬하는 방법.

     - 시간복잡도 : O(n^2)

    - sample code

    /**
     *  선택정렬 알고리즘: 배열중 가장 작은수를 앞으로 보내면서 정렬
     *  시간복잡도 : O(n^2)
     *  비효율적인 정렬 알고리즘.
     */
    public class SelectionSort {
    
        public static int[] selectSort(int[] inputArrays) {
    
            int min, index = 0, temp;
    
            for(int i=0; i<inputArrays.length; i++) {
                min = 99999;
                for(int j=i; j<inputArrays.length; j++) {
                    if(min > inputArrays[j]) {
                        min = inputArrays[j];
                        index = j;
                    }
                }
                temp = inputArrays[i];
                inputArrays[i] = inputArrays[index];
                inputArrays[index] = temp;
            }
    
            return inputArrays;
        }
    
        public static void main(String[] args) {
    
            int[] inputArray = {3, 5, 1, 6, 7, 10, 9, 2, 4, 8};
            int[] results = selectSort(inputArray);
    
            for(int result: results) {
                System.out.println(result);
            }
        }
    
    }

     

    댓글

Designed by Tistory.