2 점 찾기 (20 점)
1955 단어 데이터 구조 - PTA
함수 인터페이스 정의:
Position BinarySearch( List Tbl, ElementType K );
그 중에서
List
구조 정 의 는 다음 과 같다.typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* */
};
Tbl
은 사용자 가 들 어 오 는 선형 표 로 그 중에서 ElementType
요 소 는 >, =, < 를 통 해 비교 할 수 있 고 제목 은 들 어 오 는 데 이 터 를 점차적으로 질서 있 게 할 수 있다.함수 BinarySearch
에서 K
의 위 치 를 찾 아야 합 니 다. 즉, 배열 아래 표 시 됩 니 다 (주의: 요 소 는 아래 표 시 된 1 부터 저장 합 니 다).찾 으 면 다음 표 시 를 되 돌려 줍 니 다. 그렇지 않 으 면 특수 한 실패 표시 Tbl
를 되 돌려 줍 니 다.심판 테스트 프로그램 샘플:
#include
#include
#define MAXSIZE 10
#define NotFound 0
typedef int ElementType;
typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* */
};
List ReadInput(); /* , 。 1 */
Position BinarySearch( List Tbl, ElementType K );
int main()
{
List Tbl;
ElementType K;
Position P;
Tbl = ReadInput();
scanf("%d", &K);
P = BinarySearch( Tbl, K );
printf("%d
", P);
return 0;
}
/* */
입력 샘플 1:
5
12 31 55 89 101
31
출력 예시 1:
2
입력 샘플 2:
3
26 78 233
31
출력 예시 2:
0
Position BinarySearch(List Tbl, ElementType K)
{
int left = 1, right = Tbl->Last;
while(left <= right)
{
int mid = (left + right) / 2;
if(Tbl->Data[mid] < K)
{
left = mid + 1;
}
else if(Tbl->Data[mid] > K)
{
right = mid - 1;
}
else
{
return mid;
}
}
return NotFound;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기호 짝 짓 기C 언어 원본 프로그램 에서 다음 기호 가 맞 는 지 확인 하 십시오. /* 와 */, ( 와 ), [ 와 ], { 와 }. 입력 형식: C 언어 원본 프로그램 으로 입력 하 십시오.한 줄 에 한 문장 . 과 한 개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.