- Ebook Giải thuật và lập trình Lê Minh Hoàng
- Các thuật toán sắp xếp trong Pascal

Sắp xếp mảng 1 chiều



Viết chương trình nhập vào một mảng gồm N số nguyên. Sắp xếp lại mảng theo thứ tự tăng dần và in kết quả ra màn hình.

Ý 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.



Nặc danh nói...

cho em hoi chữ "tam" có nghia la j"


lúc 19:20 14 tháng 11, 2012
Mập nói...

"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
Nặc danh nói...

hoi kho hieu 1 ty


lúc 15:54 9 tháng 1, 2013
Hổ Yêu Thỏ Đen nói...

Hoàng Bảo love Phương Thảo Nhiều lắm


lúc 09:18 23 tháng 1, 2013
LH7 nói...

cái này là straight selection sort phải không ạ?


lúc 20:56 4 tháng 2, 2013
Nặc danh nói...

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
Nặc danh nói...

Pascap đúng là khó


lúc 08:33 17 tháng 6, 2014
Nặc danh nói...

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
Nặc danh nói...

-______- .......


lúc 18:06 18 tháng 12, 2014
Unknown nói...
Nhận xét này đã bị tác giả xóa.
Unknown nói...

hay cai lz....danh sai the mak cug dang 2`


lúc 10:45 7 tháng 12, 2015
Unknown nói...

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
Unknown nói...

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
Unknown nói...

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
Unknown nói...
Nhận xét này đã bị tác giả xóa.
Unknown nói...

đây là dãy k giảm chứ k phải tăng mà ???


lúc 18:19 8 tháng 11, 2016
Nặc danh nói...

què


lúc 21:45 17 tháng 11, 2016
Unknown nói...

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
river nói...

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
river nói...

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
Nặc danh nói...

ngọc mập nói


lúc 08:26 16 tháng 2, 2017
Unknown nói...

Ê 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
Unknown nói...

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
Nặc danh nói...

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
pek_ngok_ngkech_123 nói...

@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
Unknown nói...
Nhận xét này đã bị tác giả xóa.
Unknown nói...

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
Unknown nói...

đơ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
Unknown nói...

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
Unknown nói...

Tạm hay còn gọi là biến trung gian để đổi chỗ


lúc 14:55 29 tháng 11, 2017
AllyTie nói...

Cho hỏi ":5" là sao thế?


lúc 20:23 4 tháng 12, 2017
mavansanh nói...

đây là phương pháp buble sort


lúc 17:34 7 tháng 12, 2017
Unknown nói...

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
Nặc danh nói...

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
Unknown nói...

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
nyasub nói...

ko sai nhé . có dấu ":5" là đúng


lúc 18:17 8 tháng 4, 2018
Nặc danh nói...

: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
Unknown nói...

: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
Unknown nói...

: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
Unknown nói...

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 nói...

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
tài nói...

phải cho giá trị ban đầu cho 'tam' nữa tam=a[0]


lúc 15:59 24 tháng 11, 2018
tài nói...

phải cho giá trị ban đầu cho 'tam' nữa tam=a[0]


lúc 15:59 24 tháng 11, 2018
Unknown nói...

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
Unknown nói...

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
Unknown nói...

Là biến tạm đó bạn


lúc 19:54 20 tháng 3, 2019
Unknown nói...

Cac ban im het di khhong biet thi phai hoi toi chu


lúc 20:18 21 tháng 3, 2019
Unknown nói...

A[i]:5 là sao vậy


lúc 21:20 16 tháng 6, 2019
Unknown nói...

A[i]:5 là sao vậy ạ?


lúc 21:55 12 tháng 11, 2019
Unknown nói...

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
Unknown nói...

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
Nặc danh nói...

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
Unknown nói...

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
Unknown nói...

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
Nặc danh nói...

: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
Nặc danh nói...

Sai chỗ nào?


lúc 11:38 9 tháng 10, 2020
Nặc danh nói...

Mình chx hiểu chỗ :5


lúc 19:40 13 tháng 1, 2022
Nặc danh nói...

Nếu cho là :3 đc ko vậy


lúc 19:41 13 tháng 1, 2022

Đăng nhận xét

Thành viên Blog

Tổng số lượt xem trang

Translate

Return to top of page Copyright © 2012 | Theme by Hack Tutors. Cung cấp bởi Blogger.
Các code pascal trong blog được sưu tầm, lựa chọn sao cho tối ưu nhất. Cảm ơn các tác giả đã viết thuật toán.