#include <stdio.h>

void quicksort( int list[], int left, int right );

int main()
{
  int i;
  int array[10] = { 26, 5, 37, 1, 61, 11, 59, 15, 48, 19 };
 
  quicksort( array, 0, 9 );
 
  for( i = 0; i < 10; i++ )
  {
    printf( "%2d\t", array[i] );
  }
 
  printf("\n");
}

void quicksort( int list[], int left, int right )
{
  int pivot, i, j, temp;
 
  if( left < right )
  {
    i = left;
    j = right +1;
    pivot = list[left];
   
    do
    {
      do i++;
      while( list[i] < pivot );
     
      do j--;
      while( list[j] > pivot );
     
      if(i < j)
      {
        temp = list[i];
        list[i] = list[j];
        list[j] = temp;
      }
     
    } while(i < j);
   
    list[left] = list[j];
    list[j] = pivot;
   
    quicksort( list, left, j-1 );
    quicksort( list, j+1, right );
   
  } // if(left < right) end.
}

 
2006/05/13 22:26 2006/05/13 22:26

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요