C 언어 알고리즘 - 보간 코드 검색 방법

내용 보간 검색 방법 - 일부 엔지니어링 프로세스 자주 사용 보물을 할 내용, 다음과 같은 내용은 C 언어 알고리즘에 관한 것입니다.

#INCLUDE <STDIO.H>
#INCLUDE <stdlib.h>
#INCLUDE <time.h>
#DEFINE MAX 10
#DEFINE 스왑 (X, Y) {INT의 t; t에서의 X =; X = Y; Y = t}
공극 퀵 (INT [], INT, INT);
INT intsrch (INT [], INT);
메인 INT (무효)
{
INT 번호 [MAX] =
{
0
};
내가 찾을 int로;
부터 srand (시간 (NULL));
대 (I = 0; i가 MAX를 <; 내가 ++)
{
번호 [I] = 랜드 () % 100;
}
퀵 (번호, 0, MAX - 1);
의 printf ( "数列:");
대 (I = 0; i가 MAX를 <; 내가 ++)
의 printf ( "%의 D"번호 [I]);
의 printf ( "N输入寻找对象");
scanf와 ( "%의 D", 발견);
경우 ((I = intsrch (수)) 찾을>

다른
하며의 printf는 ( "지정된 N-번호를 찾을 수 없습니다")
의 printf ( "N-을");
0을 반환;
}

INT intsrch (INT 번호 [], INT 찾기)
{
INT 낮은, 중간, 상부;
낮은 = 0;
상부 MAX = - 1;
(저 <= 위) 동안
{
저;
경우 (미드 <저 || 중앙> 위)
반환 - 1;
경우 (찾을 <번호 [미드])
상부 중앙 = - 1;
(검색> 번호 [미드]) 다른 경우
낮은 중간 + = 1;
다른
중반를 반환;
}
반환 - 1;
}

퀵 공극 (INT 번호 [], 좌측 INT, 오른쪽 INT)
{
int로는 I, J, K, S 단계;
경우 (왼쪽 <오른쪽)
{
S = 번호 [(왼쪽 오른쪽 +) / 2];
I = LEFT - 1;
오른쪽 J = + 1;
하지만 (1)
{
동안 (수 [++ I] <S)
;
- ([J] "의 수) 동안
;
(내가> = j)의 경우,
체류;
SWAP (번호 [I], 개수 [J]);
}
}
}





추천

출처www.cnblogs.com/poplar515/p/11231791.html