K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

a: 

Input: Dãy từ 1 tới n

Output: Tổng của dãy

b: Ý tưởng: Cộng dồn các số từ 1 đến n

d: Thuật toán

Bước 1: Nhập n

Bước 2: s←0; i←1;

Bước 3: s←s+i; i←i+1;

Bước 4: Nếu i<=n thì quay lại bước 3

Bước 5: xuất s

Bước 6: Kết thúc

e:

uses crt;

var n,i,s:integer;

begin

clrscr;

readln(n);

s:=0;

for i:=1 to n do s:=s+i;

writeln(s);

readln;

end.

19 tháng 8 2023

Chọn bước:

1) Từ mô tả thuật toán bằng liệt kê các bước, viết chương trình Python thực hiện thuật toán.

=> Như vậy dễ nắm được các bước thực hiện và giúp bài toán có phương pháp giải chính xác hơn.

Bài 2: Cho mảng A gồm N phần tử kiểu số nguyên (N <= 200). Viết chương trình nhập dữ liệu vào từ bàn phím cho mảng A. Sau đó thực hiện đếm số phần tử chia hết cho 3 của mảng A. Rồi hiển thị kết quả ra màn hình.Bài 3: Viết chương trình nhập vào từ bàn phím một dãy số gồm N số nguyên (N<=30). Sau đó tính tích các phần tử chia hết cho 2 của dãy số đó. Rồi hiển thị kết quả ra màn...
Đọc tiếp

Bài 2: Cho mảng A gồm N phần tử kiểu số nguyên (N <= 200). Viết chương trình nhập dữ liệu vào từ bàn phím cho mảng A. Sau đó thực hiện đếm số phần tử chia hết cho 3 của mảng A. Rồi hiển thị kết quả ra màn hình.

Bài 3: Viết chương trình nhập vào từ bàn phím một dãy số gồm N số nguyên (N<=30). Sau đó tính tích các phần tử chia hết cho 2 của dãy số đó. Rồi hiển thị kết quả ra màn hình.

Bài 4: Cho tệp văn bản ‘vidu.inp’ chứa giá trị của a và b. Biết rằng các giá trị này được phân cách nhau bởi một dấu cách. Viết chương trình thực hiện đọc dữ liệu từ tệp ‘vidu.inp’. Sau đó tính giá trị biểu thức S= a+2b. Rồi ghi giá trị của S ra tệp ‘vidu.out’

Bài 5: Viết chương trình thực hiện tính tổng sau:

S= 1+ 1/22+1/32+1/42+…+1/N2

4
28 tháng 4 2021

Bài 2:

Program HOC24;

var a: array[1..200] of integer;

i,d,n: integer;

begin

write('Nhap so phan tu N: '); readln(N);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i]);

end;

for i:=1 to n do if a[i] mod 3=0 then d:=d+1;

write('Co ',d,' phan tu chia het cho 3');

readln

end.

28 tháng 4 2021

Bài 3:

Program HOC24;

var a: array[1..30] of integer;

i,d,n: integer;

begin

write('Nhap so phan tu N: '); readln(N);

for i:=1 to n do

begin

write('a[',i,']='); readln(a[i]);

end;

d:=1;

for i:=1 to n do if a[i] mod 2=0 then d:=d*a[i];

write(Tich cac phan tu chia het cho 2 la: ',d);

readln

end.

9 tháng 11 2023

#include<iostream>

using namespace std;

int main() {

int a,b;

cin >> a >> b;

cout << (a+b)*2;

return 0;

}

28 tháng 9 2020
#include <iostream.h> int main() { float a,b,cv; cout <<"Nhap a:"; cin >> a; cout <<"Nhap b:"; cin >> b; if ((a>=1)&&(a<=100)&&(b>=1)&&(b<=100)) { cv = (a+b)*2; cout <<" Chu vi hcn la: "<<cv<<endl; } }
bài 1 Dữ liệu vào lấy từ tệp văn bản mangmin.inp gồm hai dòng: -dòng 1: số phần tử n -dòng 2: dãy số a1, a2, ... an mỗi số cách nhau 1 dấu cách Kết quả ra ghi ra tệp văn bản mangmin.out: giá trị của phần tử min và chỉ số của phần tử min bài 2 Dữ liệu vào lấy từ tệp vb mangchan.inp gồm 2 động - dòng 1: số phần tử n - dòng 2: dãy số a1 a2 ... an mỗi số cách nhau 1 dấu cách Kq ra ...
Đọc tiếp

bài 1

Dữ liệu vào lấy từ tệp văn bản mangmin.inp gồm hai dòng:

-dòng 1: số phần tử n

-dòng 2: dãy số a1, a2, ... an mỗi số cách nhau 1 dấu cách

Kết quả ra ghi ra tệp văn bản mangmin.out: giá trị của phần tử min và chỉ số của phần tử min

bài 2

Dữ liệu vào lấy từ tệp vb mangchan.inp gồm 2 động

- dòng 1: số phần tử n

- dòng 2: dãy số a1 a2 ... an mỗi số cách nhau 1 dấu cách

Kq ra ghi ra tệp văn bản mangchan.out: tổng các phần tử chẵn

bài 3

Viết chương trình tách xâu s có sử dụng tệp

-Xâu s1 gồm toàn bộ các ký tự là chữ số có trong xâu s

-Xâu s2 gồm toàn bộ các ký tự là chữ cái thường có trong xâu s

-Xâu s3 gồm toàn bộ các ký tự là chữ in hoa có trong xâu s

-xâu s4 gồm toàn bộ các ký tự là các các kí tự đặc biệt có trong xâu s

Dữ liệu vào đọc từ tệp tachxau.inp: xâu s

Dữ liệu ra ghi vào tệp tachxau.out: 4 xâu ghi trên 4 dòng

bài 4

Viết chương trình sử dụng tệp đếm từ trong xâu s

Dữ liệu vào đọc từ tệp demtu.inp: xâu s

Dữ liệu ra ghi vào tệp demtu.out: số tự trong xâu s

Xét trường hợp có 2 dấu cách liên tiếp; dấu cách đầu, cuối (làm trong một chương trình)

Em cảm ơn <3

1
15 tháng 5 2020

cho e hỏi là tại sao dùng const fi fo vậy ạ ?

Bài 1:

const fi='mangmin.inp';

fo='mangmin.out';

var f1,f2:text;

a,vt:array[1..100]of integer;

n,i,dem:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do

read(f1,a[i]);

min:=a[1];

for i:=1 to n do

if min>a[i] then min:=a[i];

dem:=0;

for i:=1 to n do

if min=a[i] then

begin

inc(dem);

vt[dem]:=i;

end;

writeln(f2,'Gia tri nho nhat la: ',min);

writeln(f2,'Vi tri cua gia tri nho nhat la: ');

for i:=1 to dem do

write(f2,vt[i]:4);

close(f1);

close(f2);

end.

Bài 2:

const fi='mangchan.inp';

fo='mangchan.out';

var f1,f2:text;

a:array[1..100]of integer;

n,i,t:integer;

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do

read(f1,a[i]);

t:=0;

for i:=1 to n do

if a[i] mod 2=0 then t:=t+a[i];

writeln(f2,t);

close(f1);

close(f2);

end.

Bài 3:

const fi='tachxau.inp';
fo='tachxau.out';
var f1,f2:text;
s,s1,s2,s3,s4:string;
i,d:integer;
j,k,l:char;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,s);
d:=length(s);
s1:='';
for i:=1 to d do
if s[i] in ['0'..'9'] then s1:=s1+s[i];
writeln(f2,'Xau S1 la: ',s1);
s2:='';
for i:=1 to d do
if s[i] in ['a'..'z'] then s2:=s2+s[i];
writeln(f2,'Xau S2 la: ',s2);
s3:='';
for i:=1 to d do
if s[i] in ['A'..'Z'] then s3:=s3+s[i];
writeln(f2,'Xau S3 la: ',s3);
close(f1);
close(f2);
end.

Bài 4:

const fi='demtu.inp';
fo='demtu.out';
var s:string;
i,d,dem:integer;
kt:boolean;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,s);
d:=length(s);
i:=0;
while i<=d do
begin
inc(i);
if ((i=1) and (s[i]=' ')) then
repeat
kt:=false;
if (s[i]=' ') then
begin
delete(s,i,1);
d:=length(s);
end
else kt:=true;
until (kt=true) or (i+1>d)
else repeat
kt:=false;
if (s[i]=' ') and (s[i+1]=' ') then
begin
delete(s,i,1);
d:=length(s);
end
else kt:=true;
until (kt=true) or (i+1>d);
d:=length(s);
end;
while s[d]=' ' do
begin
delete(s,d,1);
d:=length(s);
end;
dem:=0;
for i:=1 to d do
if s[i]=' ' then dem:=dem+1;
writeln(f2,dem+1);
close(f1);
close(f2);
end.

Câu 1: Em hãy trình bày các thao tác để đọc dữ liệu từ một tệp? Viết chương trình đọc dữ liệu từ tệp VIDU.inp 2 số a,b? Câu 2: Em hãy trình bày các thao tác để ghi dữ liệu vào một tệp? Viết chương trình ghi 2 số x, y vào tệp VIDU.out? Câu 3: Trong tệp văn bản BT1.INP có dòng:CHUC CAC BAN HOC TOT. Em hãy viết chương trình đọc dữ liệu từ tệp trên và hiển thị lên màn hình? Câu 4: Em hãy viết...
Đọc tiếp

Câu 1: Em hãy trình bày các thao tác để đọc dữ liệu từ một tệp? Viết chương trình đọc dữ liệu từ
tệp VIDU.inp 2 số a,b?
Câu 2: Em hãy trình bày các thao tác để ghi dữ liệu vào một tệp? Viết chương trình ghi 2 số x, y
vào tệp VIDU.out?
Câu 3: Trong tệp văn bản BT1.INP có dòng:CHUC CAC BAN HOC TOT. Em hãy viết
chương trình đọc dữ liệu từ tệp trên và hiển thị lên màn hình?
Câu 4: Em hãy viết chương trình ghi dữ liệu vào tệp SO.OUT gồm một dãy n số nguyên
nhập từ bàn phím?
Câu 5: Cho tệp DULIEU.INP, dòng đầu tiên chứa số nguyên dương N, dòng tiếp theo chứa N
số nguyên dương, mỗi số cách nhau bới một dấu cách. Viết chương trình lấy dữ liệu từ tệp
DULIEU.INP, sau đó ghi vào tệp DULIEU.OUT tổng của N phẩn tử ?

giair giups voi a . cam on

1

Bài 1:

*Các thao tác để đọc dữ liệu từ một tệp

-Bước 1: Gắn tên cho biến tệp

+ Gắn tên tệp với biến tệp thực chất là tạo một tham chiếu giữa tệp trên đĩa (do tên tệp và đường dần tương ứng được hệ điều hành xác định) và biến tệp trong chương trình, làm cho biến tệp trở thành đại diện cho tệp. Biến tệp trở thành đối tượng trực tiếp trong chương trình để nhận các thao tác đối với tệp trên đĩa. Gán tên của một tệp cho biến tệp theo cú pháp:

Assign(<biến tệp>, <têntệp>);

Ví dụ

Assign(tep1, 'DULIEU.DAT');

Trong đó, tên tệp là hằng xâu kí tự hoặc giá trị của một biểu thức kiểu xâu kí tự. Tất cả các phép toán trên biến tệp sẽ tác động tới tệp tên tệp. Sau khi gọi thủ tục Assign khác thực hiện cũng trên biến tệp này (nghĩa là lúc đó biến tệp được chuyển sang gắn kết với tệp khác). Tên tệp có thể gồm những đường dẫn chứa ổ đĩa, danh sách các thư mục liên tiếp cách nhau dấu đường dẫn, cuối cùng là tên tệp:

<ổ đĩa>:\<tên thưmục>\<tên thưmục>\...\<tên thưmục>\<tên tệp>

Ví dụ

Assign (tep2, 'C: \INP. DAT');

Độ dài lớn nhất cùa tên tệp là 79 kí tự. Đặc biệt khi tên tệp là xâu rỗng (độ dài xâu bằng 0) thì biến tệp được gán cho các tệp vào/ra chuẩn. Các tệp vào/ra chuẩn được quy định tuơng ứng với thiết bị nào là tùy thuộc vào sự bổ sung cùa mỗi chương trình đích Pascal, nhưng thường quy định tệp input chuẩn là bàn phím, tệp output chuẩn là màn hình.

-Bước 2: Mở tệp

+Thủ tục mở tệp để ghi dữ liệu có dạng: rewrite(<biến tệp>);

Trong cú pháp, biến tệp cần đã được liên kết với một tệp sau khi dùng Assign.

Ví dụ

assign(tep3, 'C'\KQ.DAT');

rewrite(tep3);

- Khi thực hiện rewrite(tep3), nếu trên thư mục gốc của ổ đĩa C chưa có tệp KQ.DAT, thì tệp sẽ được tạo với nội dung rỗng. Nếu đã có, nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.

- Sử dụng thủ tục reset mở tệp văn bản đã tồn tại để đọc dữ liệu.

Cú pháp:

reset(<biến tệp>);

Trong cú pháp, biến tệp cần phải là đã được gắn kết với một tệp (dùng assign). Nếu tệp này không tồn tại thì thực hiện reset sẽ gặp lỗi. Nếu tệp đã mở thì nó sẽ đóng lại rối sau đó mở lại. Vị trí con trỏ tệp sau lời gọi reset là đầu tệp.

-Bước 3: Đọc dữ liệu:

+ Cú pháp đọc tệp văn bản:Read(<biến tệp>,<tên tệp>); Hoặc Readln (<biển tệp>,<tên tệp>);

Trong đó, danh sách biến là dãy tên biến 1, tên biển 2,... tên biến N. Các dữ liệu cần đọc trong tệp gán vào danh sách biến phải lần lượt có kiểu tương ứng với kiểu của biến trong danh sách biến. Nếu sai kiểu thì chương trình báo lỗi. Lỗi này thường gặp khi biến có kiểu số, dữ liệu được đọc lại là kiểu xâu.

-Bước 4: đóng tệp

Thủ tục đóng tệp:

Close(<biến tệp>);

Trong cú pháp, biến tệp đã được liên kết với một tệp đang mở do đã dùng reset, rewrite hoặc append (append chi dùng với tệp văn bản) ở thời điểm trước đó để mở tệp.

Ví dụ

close(tep1);

close(tep2);

Sau khi đóng một tệp vẫn có thể được mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần phải dùng thủ tục assign gắn lại tên tệp.

*Viết chương trình đọc dữ liệu từ tệp vidu.inp hai số a và b

const fi='vidu.inp';
var f1:text;
a,b:real;
begin
assign(f1,fi); reset(f1);
readln(f1,a,b);
close(f1);
end.

Bài 2:

*Các thao tác để ghi dữ liệu vào một tệp

-Bước 1: Gắn tên cho biến tệp

+ Gắn tên tệp với biến tệp thực chất là tạo một tham chiếu giữa tệp trên đĩa (do tên tệp và đường dần tương ứng được hệ điều hành xác định) và biến tệp trong chương trình, làm cho biến tệp trở thành đại diện cho tệp. Biến tệp trở thành đối tượng trực tiếp trong chương trình để nhận các thao tác đối với tệp trên đĩa. Gán tên của một tệp cho biến tệp theo cú pháp:

Assign(<biến tệp>, <têntệp>);

Ví dụ

Assign(tep1, 'DULIEU.DAT');

Trong đó, tên tệp là hằng xâu kí tự hoặc giá trị của một biểu thức kiểu xâu kí tự. Tất cả các phép toán trên biến tệp sẽ tác động tới tệp tên tệp. Sau khi gọi thủ tục Assign khác thực hiện cũng trên biến tệp này (nghĩa là lúc đó biến tệp được chuyển sang gắn kết với tệp khác). Tên tệp có thể gồm những đường dẫn chứa ổ đĩa, danh sách các thư mục liên tiếp cách nhau dấu đường dẫn, cuối cùng là tên tệp:

<ổ đĩa>:\<tên thưmục>\<tên thưmục>\...\<tên thưmục>\<tên tệp>

Ví dụ

Assign (tep2, 'C: \INP. DAT');

Độ dài lớn nhất cùa tên tệp là 79 kí tự. Đặc biệt khi tên tệp là xâu rỗng (độ dài xâu bằng 0) thì biến tệp được gán cho các tệp vào/ra chuẩn. Các tệp vào/ra chuẩn được quy định tuơng ứng với thiết bị nào là tùy thuộc vào sự bổ sung cùa mỗi chương trình đích Pascal, nhưng thường quy định tệp input chuẩn là bàn phím, tệp output chuẩn là màn hình.

-Bước 2: Mở tệp

+Thủ tục mở tệp để ghi dữ liệu có dạng: rewrite(<biến tệp>);

Trong cú pháp, biến tệp cần đã được liên kết với một tệp sau khi dùng Assign.

Ví dụ

assign(tep3, 'C'\KQ.DAT');

rewrite(tep3);

- Khi thực hiện rewrite(tep3), nếu trên thư mục gốc của ổ đĩa C chưa có tệp KQ.DAT, thì tệp sẽ được tạo với nội dung rỗng. Nếu đã có, nội dung cũ sẽ bị xóa để chuẩn bị ghi dữ liệu mới.

- Sử dụng thủ tục reset mở tệp văn bản đã tồn tại để đọc dữ liệu.

Cú pháp:

reset(<biến tệp>);

Trong cú pháp, biến tệp cần phải là đã được gắn kết với một tệp (dùng assign). Nếu tệp này không tồn tại thì thực hiện reset sẽ gặp lỗi. Nếu tệp đã mở thì nó sẽ đóng lại rối sau đó mở lại. Vị trí con trỏ tệp sau lời gọi reset là đầu tệp.

-Bước 3: ghi dữ liệu

write(<biến tệp>,<nội dung>);

hoặc

writeln (<biến tệp>,<nội dung>);

Trong đó, danh sách kết quả là dãy kết quả 1, kết quả 2......kết quả N. Các kết quả i có thể là biến đơn hoặc biểu thức (sổ học, quan hệ hoặc lôgíc) hoặc hằng xâu.

Ví dụ

Giả sử trong chương trình có khai báo:

var tepA, tepB: text;

và tệp tepA được mở để đọc dữ liệu, còn tệp tepB dùng để ghi dữ liệu.

Các thủ tục dùng để đọc dữ liệu từ tệp tepA có thể như sau:

Read(tepA, A, B, C) ;

Hoặc

Read(tepA, A, B, C) ;

-Bước 4: đóng tệp

Thủ tục đóng tệp:

Close(<biến tệp>);

Trong cú pháp, biến tệp đã được liên kết với một tệp đang mở do đã dùng reset, rewrite hoặc append (append chi dùng với tệp văn bản) ở thời điểm trước đó để mở tệp.

Ví dụ

close(tep1);

close(tep2);

Sau khi đóng một tệp vẫn có thể được mở lại. Khi mở lại tệp, nếu vẫn dùng biến tệp cũ thì không cần phải dùng thủ tục assign gắn lại tên tệp.

*viết chương trình ghi hai số x,y vào tệp vidu.out

-Trường hợp 1: nhập hai số x,y bằng máy

uses crt;
const fo='vidu.out';
var f1:text;
x,y:real;
begin
clrscr;
assign(f1,fo); rewrite(f1);
write('x='); readln(x);
write('y='); readln(y);
writeln(f1,x:4:2);
writeln(f1,y:4:2);
close(f1);
readln;
end.

*Trường hợp 2: đọc hai số x,y từ file

const fi='vidu.inp';
fo='vidu.out';
var f1,f2:text;
x,y:real;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,x,y);
writeln(f2,x:4:2);
writeln(f2,y:4:2);
close(f1);
close(f2);
end.

Bài 3:

uses crt;
const fi='bt1.inp';
var f1:text;
st:string;
begin
clrscr;
assign(f1,fi); reset(f1);
readln(f1,st);
writeln(st);
close(f1);
readln;
end.

Bài 4:

uses crt;
const fo='so.out';
var f2:text;
a:array[1..100]of integer;
i,n:integer;
begin
clrscr;
assign(f2,fo); rewrite(f2);
write('n='); readln(n);
for i:=1 to n do
begin
write('a[',i,']='); readln(a[i]);
end;
for i:=1 to n do
write(f2,a[i]:4);
close(f2);
readln;
end.

Bài 5:

const fi='dulieu.inp';
fo='dulieu.out';
var f1,f2:text;
n,i,t:integer;
a:array[1..100]of integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{------------------------------xu-ly--------------------------}
t:=0;
for i:=1 to n do
t:=t+a[i];
writeln(f2,t);
close(f1);
close(f2);
end.

19 tháng 2 2020

E cảm ơn ạ

22 tháng 2 2020

#include <iostream>
#include <fstream>

int main()
{
std::ifstream f("daycon.inp");
int n,s,a[1001],d[100][1001];
f>>n>>s;
for(int i=1;i<=n;i++)
{
f>>a[i];
}
d[0][0]=0;
a[0]=0;
d[1][a[1]]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<=s;j++)
{
d[i][j]=d[i-1][j];
if(j==a[i]&&d[i-1][j]<1)
d[i][j]=1;
else
if(a[i]<j&&d[i-1][j-a[i]]>0&&d[i-1][j-a[i]]+1>d[i][j])
d[i][j]=d[i-1][j-a[i]]+1;
}
}
for(int i=n;i>=1;i--)
{
if(d[i][s]!=d[i-1][s])
{
std::cout<<a[i]<<" ";
s-=a[i];
}
}

return 0;
}

Câu 1:

uses crt;
const fi='dl.doc';
fo='tb.doc';
var f1,f2:text;
a,b:integer;
tbc:real;
begin
clrscr;
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,a);
readln(f1,b);
{-----------------------------------cau-a-----------------------------}
writeln('a=',a);
writeln('b=',b);
{-----------------------------------cau-b-----------------------------}
tbc:=(a+b)/2;
writeln(f2,tbc:4:2);
close(f1);
close(f2);
readln;
end.

uses crt;

var a:array[1..100]of integer;

i,n,dem:integer;

begin

clrscr;

readln(n);

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

dem:=0;

for i:=1 to n do 

  if (trunc(sqrt(a[i]))=sqrt(a[i]) then dem:=dem+1;

writeln(dem);

readln;

end.

QT
Quoc Tran Anh Le
Giáo viên
23 tháng 8 2023

*Thuật toán sắp xếp chèn (Insertion Sort):

import time

def insertion_sort(arr):

 n = len(arr)

 for i in range(1, n):

  key = arr[i]

  j = i - 1

  while j >= 0 and arr[j] > key:

   arr[j + 1] = arr[j]

   j -= 1

  arr[j + 1] = key

# Dãy số nguyên đầu vào

A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 1]

# In dãy số nguyên trước khi sắp xếp

print("Dãy số nguyên trước khi sắp xếp:", A)

# Bắt đầu đo thời gian thực hiện thuật toán

start_time = time.time()

# Gọi hàm sắp xếp chèn

insertion_sort(A)

# Kết thúc đo thời gian thực hiện thuật toán

end_time = time.time()

# In dãy số nguyên sau khi sắp xếp

print("Dãy số nguyên sau khi sắp xếp:", A)

# In thời gian thực hiện thuật toán

print("Thời gian thực hiện thuật toán: {:.6f} giây".format(end_time - start_time))

Thời gian thực hiện là 0 giây

*Thuật toán sắp xếp chọn:

import time

def selection_sort(arr):

 n = len(arr)

 for i in range(n):

  min_idx = i

  for j in range(i + 1, n):

   if arr[j] < arr[min_idx]:

    min_idx = j

  arr[i], arr[min_idx] = arr[min_idx], arr[i]

# Dãy số nguyên đầu vào

A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 1]

# In dãy số nguyên trước khi sắp xếp

print("Dãy số nguyên trước khi sắp xếp:", A)

# Bắt đầu đo thời gian thực hiện thuật toán

start_time = time.time()

# Gọi hàm sắp xếp chọn

selection_sort(A)

# Kết thúc đo thời gian thực hiện thuật toán

end_time = time.time()

# In dãy số nguyên sau khi sắp xếp

print("Dãy số nguyên sau khi sắp xếp:", A)

# In thời gian thực hiện thuật toán

print("Thời gian thực hiện thuật toán: {:.6f} giây".format(end_time - start_time))

Thời gian thực hiện là: 0 giây

*Thuật toán sắp xếp nổi bọt:

import time

def bubble_sort(arr):

 n = len(arr)

 for i in range(n - 1):

  for j in range(n - i - 1):

   if arr[j] > arr[j + 1]:

    arr[j], arr[j + 1] = arr[j + 1], arr[j]

# Dãy số nguyên đầu vào

A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 1]

# In dãy số nguyên trước khi sắp xếp

print("Dãy số nguyên trước khi sắp xếp:", A)

# Bắt đầu đo thời gian thực hiện thuật toán

start_time = time.time()

# Gọi hàm sắp xếp nổi bọt

bubble_sort(A)

# Kết thúc đo thời gian thực hiện thuật toán

end_time = time.time()

# In dãy số nguyên sau khi sắp xếp

print("Dãy số nguyên sau khi sắp xếp:", A)

# In thời gian thực hiện thuật toán

print("Thời gian thực hiện thuật toán: {:.6f} giây".format(end_time - start_time))

Thời gian thực hiện là: 0 giây