본문 바로가기

취업준비 - 코테 , 면접/알고리즘(코테) 공부

정렬


/*선택정렬 
    idx 값을 통해 가장 작은 수를 앞쪽에 갖다 놓는 방식으로 for문을 돌린다
    
    public int[] solution(int n, int[] arr){
        for(int i=0; i<n-1; i++){
            int idx=i;
            for(int j=i+1; j<n; j++){
                if(arr[j]<arr[idx]) idx=j;
            }
            int tmp=arr[i];
            arr[i]=arr[idx];
            arr[idx]=tmp;
        }
        return arr;
    }
    
*/



/*버블정렬
    한 번 for문이 돌 때 가장 큰 수를 가장 뒤에 갖다 놓는 방식으로 n-1번 돈다.
    
    public int[] solution(int n, int[] arr){
        for(int i=0; i<n-1; i++){
            for(int j=0; j<n-i-1; j++){
                if(arr[j]>arr[j+1]){
                    int tmp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp; 
                }
            }
        }
        return arr;
    }

*/



/* 삽입정렬 
    tmp 값에 넣어놓고 for문이 돌면서 알맞은 자리에 tmp 값을 삽입 

    public int[] solution(int n, int[] arr){
        for(int i=1; i<n; i++);
            int tmp=arr[i], j;
            for(j=i-1; j>=0; j--){
                if(arr[j]>tmp) arr[j+1]=arr[j];
                else break;
            }
            arr[j+1]=tmp; 
    }



*/