Ý tưởng:
Cho biến i chạy từ 1 đến N-1, đồng thời cho biến j chạy từ i+1 đến N: Nếu A[i]>A[j] thì đổi chổ A[i], A[j].
Dưới đây là thuật toán sắp xếp mảng 1 chiều:
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,j,Tam:Integer;
Begin
{Nhập mảng}
Write('Nhap N='); Readln(N);
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
{Sắp xếp}
For i:=1 To N-1 Do
For j:=i+1 To N Do
If A[i]>A[j] Then
Begin
Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;
End;
{In kết quả ra màn hình}
Writeln('Ket qua sau khi sap xep:');
For i:=1 To N Do Write(A[i]:5);
Readln;
End.
Nhãn: Bài tập Pascal, Mảng 1 chiều, Pascal cơ bản
cho em hoi chữ "tam" có nghia la j"
lúc 19:20 14 tháng 11, 2012
"tạm" là giá trị của a[i] : để khi a[i] > a[i+1] thì a[i] sẽ = a[i+1], còn a[i+1] sẽ = a[i], nhưng lúc này a[i] đã nhận giá trị mới là a[i+1] nên ta phải đặt "tạm" = a[i] để thay giá trị "tạm" vào a[i+1]
lúc 14:03 19 tháng 12, 2012
hoi kho hieu 1 ty
lúc 15:54 9 tháng 1, 2013
Hoàng Bảo love Phương Thảo Nhiều lắm
lúc 09:18 23 tháng 1, 2013
cái này là straight selection sort phải không ạ?
lúc 20:56 4 tháng 2, 2013
Hello, i read your blog from time to time and i own
a similar one and i was just wondering if you get
a lot of spam comments? If so how do you protect against it, any plugin or anything you
can recommend? I get so much lately it's driving me mad so any support is very much appreciated.
Here is my homepage ... their web site
lúc 12:57 23 tháng 2, 2013
Pascap đúng là khó
lúc 08:33 17 tháng 6, 2014
nó sẽ dễ hơn nếu bạn nói đúng tên nó (pascal)
lúc 10:28 1 tháng 7, 2014
-______- .......
lúc 18:06 18 tháng 12, 2014
hay
lúc 19:00 7 tháng 4, 2015
hay
lúc 19:00 7 tháng 4, 2015
hay cai lz....danh sai the mak cug dang 2`
lúc 10:45 7 tháng 12, 2015
Câu lệnh for to do ở cuối lm j nhỉ chưa hiểu
lúc 22:01 14 tháng 1, 2016
Câu lệnh for to do ở cuối lm j nhỉ chưa hiểu
lúc 22:02 14 tháng 1, 2016
Ban phai cho chay tu phan tu dau den phan tu coi moi in ra duoc toan mang nha ban neu khong se khong in ra duoc vi n la bien dem
Vd:n 1 2 3 4 5 6 7
A[i]3 4 5 6 7 10 11
lúc 19:03 18 tháng 1, 2016
đây là dãy k giảm chứ k phải tăng mà ???
lúc 18:19 8 tháng 11, 2016
què
lúc 21:45 17 tháng 11, 2016
ga
lúc 17:27 21 tháng 11, 2016
Có ai biết sắp xếp bằng phương pháp đánh dấu ko
lúc 18:04 11 tháng 12, 2016
ai giải tích hộ mình mảng a[j] là như nào đi
lúc 10:53 13 tháng 1, 2017
ai giải tích hộ mình mảng a[j] là như nào đi
lúc 10:55 13 tháng 1, 2017
ngọc mập nói
lúc 08:26 16 tháng 2, 2017
Ê cho mình hỏi tại sao lại có (:5) ở chỗ write(A[i]:5) tại cái hàng thứ 3 từ cuối lên trên
lúc 19:19 6 tháng 4, 2017
nếu chuyển ko làm bằng vòng lặp for do mà làm = while do thì làm thế nào
lúc 10:06 2 tháng 5, 2017
Nhap vao 2 so set xem 2 so do co phai cap so ban be khong
lúc 19:05 16 tháng 10, 2017
@Hoyeuthoden Pkươg Tkảo lov3 Hoàg Bảo nkìu lémk. <3 <3 <3
lúc 08:02 10 tháng 11, 2017
Cảm ơn tác giả đã chia sẻ, tuy nhiên bài này chưa mang tính chất sắp xếp tự động mà còn quá thủ c6ng vì mình phải gán từng A[i]. Mong sắp tới tác giả có bài viết sắp xếp tự động có dãy số tự in ra luôn.
lúc 13:01 18 tháng 11, 2017
đơn giản là có hai ca nước đầy , muốn tráo nước của 2 ca thì cần phải có cái ca "tạm"... đw nói đw hiểu
lúc 21:39 25 tháng 11, 2017
k giảm là >= (0, 1, 2, 2, 3,3....)
tăng là > (1, 3, 4,...)
lúc 21:42 25 tháng 11, 2017
Tạm hay còn gọi là biến trung gian để đổi chỗ
lúc 14:55 29 tháng 11, 2017
Cho hỏi ":5" là sao thế?
lúc 20:23 4 tháng 12, 2017
đây là phương pháp buble sort
lúc 17:34 7 tháng 12, 2017
xin hỏi đang sắp xếp từ lớn đến bé hay từ bé đến lớn
lúc 21:55 28 tháng 12, 2017
Cho em hỏi vì sao là for i:= 1 to N - 1 mà không phải là N ạ?
Và vì sao gần cuối là for i:= 1 to N do write(A[i]:5)? Tác dụng của dòng này là gì ạ?
lúc 22:30 11 tháng 2, 2018
sai rồi kìa write cuối chỉ có write(A[i]) thôi thứ ko có số 5
lúc 22:49 19 tháng 3, 2018
ko sai nhé . có dấu ":5" là đúng
lúc 18:17 8 tháng 4, 2018
:5 lak đề các phần tử trong mảng có khoảng cách (1 2. 4. 7) thay vì (1247)
lúc 06:04 14 tháng 4, 2018
:5 lak đề các phần tử trong mảng có khoảng cách (1 2. 4. 7) thay vì (1247)
lúc 06:05 14 tháng 4, 2018
:5 lak đề các phần tử trong mảng có khoảng cách (1 2. 4. 7) thay vì (1247)
lúc 06:06 14 tháng 4, 2018
Mình chưa hiểu đoạn này
For i:=1 To N-1 Do
For j:=i+1 To N Do
lúc 10:40 15 tháng 4, 2018
nặc danh ơi , bạn chỉ cho mình sắp xếp mảng 2 chiều tăng dần rồi xuất ra màn hình
lúc 21:15 19 tháng 7, 2018
phải cho giá trị ban đầu cho 'tam' nữa tam=a[0]
lúc 15:59 24 tháng 11, 2018
phải cho giá trị ban đầu cho 'tam' nữa tam=a[0]
lúc 15:59 24 tháng 11, 2018
Tam là một biến để lưu tạm và cách làm đó dùng để hoán đổi giá trị của A[i] và A[j]
lúc 20:38 14 tháng 2, 2019
Biến tam=0 nên ko cần phải cho giá trị trước
lúc 20:39 14 tháng 2, 2019
Là biến tạm đó bạn
lúc 19:54 20 tháng 3, 2019
Cac ban im het di khhong biet thi phai hoi toi chu
lúc 20:18 21 tháng 3, 2019
😂😃
lúc 20:31 16 tháng 4, 2019
A[i]:5 là sao vậy
lúc 21:20 16 tháng 6, 2019
A[i]:5 là sao vậy ạ?
lúc 21:55 12 tháng 11, 2019
chương trình cua ban sai nha nếu k tin thử nhap dãy 1 2 3 10 4 1
lúc 15:56 14 tháng 11, 2019
For i:=1 To N-1 Do
For j:=i+1 To N Do chỗ này là như thế nào ạ ai giải thích giúp mình với
lúc 15:28 16 tháng 2, 2020
Sao sai ạ? Mình nhập vậy vẫn xếp đúng là 1 1 2 3 4 10 mà
lúc 17:14 16 tháng 3, 2020
chương trình sai nha
nhập vào phần tử là 22 4 3 77 99 sẽ sai
lúc 14:58 22 tháng 4, 2020
chương trình sai nha
nhập vào phần tử là 22 4 3 77 99 sẽ sai
lúc 14:59 22 tháng 4, 2020
:5 là chừa ra 5 chỗ để ghi giá trị.
Ví dụ:
Bình thường thì ra 123
:5 thì ra 1 2 3
lúc 11:32 9 tháng 10, 2020
Sai chỗ nào?
lúc 11:38 9 tháng 10, 2020
Khó quá z
lúc 10:19 25 tháng 11, 2020
Mình chx hiểu chỗ :5
lúc 19:40 13 tháng 1, 2022
Nếu cho là :3 đc ko vậy
lúc 19:41 13 tháng 1, 2022
Đăng nhận xét