1 건의
퀵소트 검색결과



평균적으로 가장 좋은 성능을 내는 정렬 방식인 퀵소트입니다.


public void quickSort(Integer[] list, int l, int r) {


      int pivot = list[l];

      int left = l;

      int right = r;

      

      if(l >= r)

         return;

      

      OuterLoop : while (true) {

         while (true) {

            if ( list[right] < pivot ) {

               list[left] = list[right];

               left++;

               if(left == right) {

                list[left] = pivot;

                break OuterLoop;

               }

               break;

            }

            right--;

            if ( left == right ) {

                list[left] = pivot;

                break OuterLoop;

             }

         }//WhileRight

         

         while (true) {

            if ( list[left] > pivot ) {

               list[right] = list[left];

               right--;

               if(left == right) {

                list[left] = pivot;

                break OuterLoop;

               }

               break;

            }

            left++;

            if ( left == right ) {

               list[left] = pivot;

               break OuterLoop;

            }

         }//WhileLeft

         

      }//OuterLoop

      

      quickSort(list, l, left-1);

      quickSort(list, left+1, r); 

      

   }