Câu hỏi:
Giúp em bài tập về nhà Tổng hợp lớp 11 câu hỏi như sau: Tìm số lớn thứ hai trong mảng Pascal và cho biết vị trí tương tự lm số bé thứ hai
Trả lời 2:
Gia Sư Hoàng Khang gữi câu trả lời dành cho bạn:
Bạn sử dụng QuickSelect (gần giống QuickSort) phân ra 3 phần:
-Khoá key (một số ngẫu nhiên)
-Những số nhỏ hơn khoá key sẽ nằm bên trái
-Những số lớn hơn khoá key nằm bên phải
Sau đó kiểm tra xem khoá key có nằm đúng vị trí bạn tìm không? Nếu không thì lặp lại quá trình trên với sự thay đổi vẻ phạm vi.
Bạn tham khảo thêm tại đây: https://www.geeksforgeeks.org/kth-smallestlargest-element-unsorted-array-set-2-expected-linear-time-2/?ref=rp
Trả lời 1:
Gia Sư Hoàng Khang gữi câu trả lời dành cho bạn:
Câu 1: số lớn
var a:array[1..100] of integer;
i,j,tg,n:integer;
Begin
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
write(‘phan tu lon thu 2 la:’,a[2]);
readln;
End.
Câu 2: số bé
var a:array[1..100] of integer;
i,j,tg,n:integer;
Begin
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
write(‘phan tu nho thu 2 la:’,a[2]);
readln;
End.