신참 질문 c 언어 빠른 순위 정보

사실 제가 가장 설명하고 싶은 것은 교환된 코드입니다.

R [j] = r [I];

R [I] = r [j];

R [j] = r [I];

I==j 를 제외해야 합니다. 자신과 자신을 교환하는 것입니다.

예를 들면 다음과 같습니다.

A = 9;;

A = a; /*a=0*/

A = a; /*a=0*/

A = a; /*a=0*/

A 는 더 이상 10 이 아닙니다.

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

Void quicksort(int R[], int s, int t)

{

Int I, j;

내부 온도

If(s & lt;; T)

{

Temp = r [s]; /* 첫 번째 숫자를 참조로 선택 */

/* 화이트 (나! =j) i==j- 1, i++, j- I > j 이후! = 이 상황은 너를 구할 수 없다 */

For(i=s+ 1, j = t;; 나<= j;; I++, j-)/* 참조 번호 제외, 좌우 진영역 */

{

While(j & gt;; 나& & ampr [j] > = temp)/* r [j] > =temp 가 아니라 추가하는 것이 좋습니다. 결국, 왼쪽과 오른쪽에 서 있는 것은 중요하지 않다.

J-;

While (나< 존슨. & ampr [I] < = 온도)

I++;+;

만약! =j){/*i 는 j*/

R [j] = r [I];

R [I] = r [j];

R [j] = r [I];

}

}

I-;

If (r [s] < R [I]) I-; /* I 가 참조 수보다 작거나 같은 마지막 위치를 가리키도록 I 값을 조정합니다 */

/* 참조 번호보다 작거나 같은 마지막 숫자로 참조 번호를 교환하여 왼쪽 및 오른쪽 진영을 실제로 분리합니다 */

R [s] = r [I];

R [I] = temp;

빠른 정렬 (r, s, I-1);

Quicksort(R, i+ 1, t);

}

}

인트메인 (void)

{

Int I;;

Inta [] = {5,3,2, 1, 9,8,7,4,5};

Quicksort(a, 0, sizeof (a)/sizeof (int)-1);

For(I = 0;; 나< sizeof (a)/sizeof (int); I++)

Printf ("%d", * (a+I));

0 을 반환합니다

}