빠 른 정렬 c 언어 구현 코드

빠 른 정렬 의 기본 사상 은 하나의 기준 요 소 를 선택 하 는 것 이다. 보통 첫 번 째 요소 나 마지막 요 소 를 선택한다. 한 번 의 스 캔 을 통 해 대기 서열 을 두 부분 으로 나 누고 일 부 는 기준 요소 보다 작고 일 부 는 기준 요소 보다 크다. 이때 기준 요 소 는 순 서 를 배열 한 후의 정확 한 위치 에 있 고 똑 같은 방법 으로 정렬 하여 구분 하 는 두 부분 을 재 귀적 으로 배열 하 는 것 이다.
구체 적 인 코드 는 다음 과 같다.
//      
#include<stdio.h>

int partion(int data[],int low,int high)
{  
   int t=data[low];
   while(low<high)
   {
    while(low<high&&data[high]>=t)
    {
      high--;
    }
    data[low]=data[high];
    while(low<high&&data[low]<=t)
    {
      low++;
    }
    data[high]=data[low];
   }
   data[low]=t;
   return low;
}


void quicksort(int data[],int low,int high)
{
   int part;
  if(low<high)
  {
	 
	  part=partion(data,low,high);
	 // printf("%d
",part); quicksort(data,low,part-1); quicksort(data,part+1,high); } } int main() { int data[]={2,6,1,8,4,3,9}; int length=0,i; length=sizeof(data)/sizeof(data[0]); //printf("%d
",length); quicksort(data,0,length-1); for(i=0;i<length;i++) { printf("%4d",data[i]); } printf("
"); return 0; }

좋은 웹페이지 즐겨찾기