https://en.wikipedia.org/wiki/Median_of_medians

여기에 있는 수도코드를 활용하여 코드를 작성했는데요

저 사이트에 보시면

The partition5 subroutine selects the median of a group of at most five elements; an easy way to implement this is insertion sort.[1] Note that pivot callsselect; this is an instance of mutual recursion.

이렇게 나와있는데 여기서 partition5 함수에서 리턴값을 어떻게 줘야할지 잘 모르겠네요.. 조언좀 부탁드려요


public static int partition5(int[] arr, int left, int right){

  for(int i=left+1 ; i<=right; i++){


      int x=arr[i];
       int j=i-1;


      while(j>=0 && arr[j]>x){
       arr[j+1]=arr[j];
        j=j-1;
       }
        arr[j+1]=x;

    }

   return (left+right)/2;

}

휴..


int index=select(arr, 0, n-1, n-1);

여기서 0, n-1, k-1을 전달해야하는데 인자 전달을 실수 했습니다.


댓글을 작성하려면 로그인해야 합니다.