Bài 9: Cấu trúc rẽ nhánh

Nguyen Tuan Anh

Cho mang 1 chiều gồm N phần tử và số K bất kì.In ra màn hình chỉ số i (ai=k) sử dụng thuật toán tìm kiếm nhị phân

Nguyễn Chơn Nhân
31 tháng 10 2019 lúc 20:53

var a:array[1..1000000] of longint;

n,i,k,dau,giua,cuoi:longint;

begin

readln(n,k);for i:=1 to n do read(a[i]);

dau:= 1; cuoi:= n; while dau <= cuoi do begin giua:= (dau+cuoi) div 2; if k = a[giua] then begin writeln(giua); break; end; else if k < a[giua] then cuoi:= giua -1 else dau:= giua+1; end;

if dau > cuoi then writeln(k, ‘ khong có trong day’);

end.

fine!

Bình luận (0)
 Khách vãng lai đã xóa
Nguyễn Lê Phước Thịnh
31 tháng 10 2019 lúc 21:52

tìm kiếm nhị phân là 1 trong những bài toán rất khó trong pascal

uses crt;
const fi='timkiemnp.inp';
fo='timkiemnp.out';
var f1,f2:text;
m,d,c,k,n,dem,i,kt:integer;
a:array[1..100]of integer;
begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do read(f1,a[i]);
for i:=1 to n do write(a[i],' ');
writeln;
write('nhap so can tim k='); readln(k);
{------------------------xu-ly-------------------------}
d:=1;
c:=n;
repeat
m:=(d+c) div 2;
if a[m]=k then begin
writeln('co tai vi tri thu:',m);
break;
end
else if k<a[m]then c:=m-1
else d:=m+1;
until d>c;
if d>c then writeln('ko co');
close(f1);
close(f2);
readln;
end.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
Khánh Linh
Xem chi tiết
Hàn Nhật Hạ
Xem chi tiết
The Anh Pham
Xem chi tiết
Nga Diệu
Xem chi tiết
Ngọc My
Xem chi tiết
Thảo Linhh
Xem chi tiết
15. 11a6 Khuyên trần
Xem chi tiết
PHẠM PHUONG HOÀNG NGHI
Xem chi tiết
Nguyễn Quyên
Xem chi tiết