블 루 브리지 컵 - 빠 른 정렬

1113 단어 알고리즘 학습
정렬 은 여러 장소 에서 자주 사용 된다.
빠 른 정렬 은 매우 자주 사용 하 는 고 효율 알고리즘 이다.
그 사상 은 먼저 '자' 를 고 르 는 것 이다.
그것 으로 전체 대열 을 체 로 한 번 훑 어보 고,
보증: 왼쪽 에 있 는 요 소 는 모두 그것 보다 크 지 않 고 오른쪽 에 있 는 요 소 는 모두 그것 보다 작 지 않다.
이렇게 해서 정렬 문 제 는 두 개의 하위 구간 으로 나 뉜 다.
다시 하위 구간 을 나 누 어 정렬 하면 된다.
아래 의 코드 는 일종 의 실현 입 니 다. 밑줄 친 부분 에 부족 한 코드 를 분석 하고 작성 하 십시오.
#include
using namespace std;
#include 

void swap(int a[], int i, int j)
{
	int t = a[i];
	a[i] = a[j];
	a[j] = t;
}

int partition(int a[], int p, int r)
{
    int i = p;
    int j = r + 1;
    int x = a[p];
    while(1){
        while(i=x 
        while(a[--j]>x);//j    a[j]<=x 
        if(i>=j) break;
        swap(a,i,j);
    }
	//______________________; 
    swap(a,p,j);//       。   ,    ,     
    return j;//j          a[0]     。j           a[j],       a[j]  
}

void quicksort(int a[], int p, int r)
{
    if(p

주의: 부족 한 내용 만 작성 하고 코드 나 설명 문 자 를 쓰 지 마 십시오.

좋은 웹페이지 즐겨찾기