Viết chương trình cho phép nhập vào 1 số n, sau đó lần lượt nhập vào n giá trị a1, a2,…,an. Sắp theo thứ tự tăng dần một dãy n số a1, a2,...an nói trên. Có rất nhiều giải thuật để giải quyết bài toán này. Phần trình bày dưới đây là một phương pháp.
Trả lời (1)
-
Giả sử ta đã nhập vào máy dãy n số a1, a2,..., an. Việc sắp xếp dãy số này trải qua (n-1) lần:
Lần 1: So sánh phần tử đầu tiên với tất cả các phần tử đứng sau phần tử đầu tiên. Nếu có phần tử nào nhỏ hơn phần tử đầu tiên thì đổi chỗ phần tử đầu tiên với phần tử nhỏ hơn đó. Sau lần 1, ta được phần tử đầu tiên là phần tử nhỏ nhất.
Lần 2: So sánh phần tử thứ 2 với tất cả các phần tử đứng sau phần tử thứ 2. Nếu có phần tử nào nhỏ hơn phần tử thứ 2 thì đổi chỗ phần tử thứ 2 với phần tử nhỏ hơn đó. Sau lần 2, ta được phần tử đầu tiên và phần tử thứ 2 là đúng vị trí của nó khi sắp xếp.
…Lần (n-1): So sánh phần tử thứ (n-1) với phần tử đứng sau phần tử (n-1) là phần tử thứ n. Nếu phần tử thứ n nhỏ hơn phần tử thứ (n-1) thì đổi chỗ 2 phần tử này. Sau lần thứ (n-1), ta được danh sách gồm n phần tử được sắp thứ tự.
Mô tả giải thuật bằng ngôn ngữ tự nhiên:
- Bước 1: Gán i=1
- Bước 2: Gán j=i+1
- Bước 3: Nếu i <=n-1 thì thực hiện bước 4, ngược lại thực hiện bước 8
- Bước 4: Nếu j <=n thì thực hiện bước 5, ngược lại thì thực hiện bước 7.
- Bước 5: Nếu ai > aj thì hoán đổi ai và aj cho nhau (nếu không thì thôi).
- Bước 6: Tăng j lên một đơn vị và quay lại bước 4
- Bước 7: Tăng i lên một đơn vị và quay lại bước 3
- Bước 8: In dãy số a1, a2,..., an - Kết thúc.
Giải thuật + Cấu trúc dữ liệu = Chương trình
Algorithms + Data Structures = Programs
bởi Cam Ngan 27/11/2021Like (0) Báo cáo sai phạm
Nếu bạn hỏi, bạn chỉ thu về một câu trả lời.
Nhưng khi bạn suy nghĩ trả lời, bạn sẽ thu về gấp bội!
Lưu ý: Các trường hợp cố tình spam câu trả lời hoặc bị báo xấu trên 5 lần sẽ bị khóa tài khoản
Các câu hỏi mới
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
02/12/2022 | 1 Trả lời
-
01/12/2022 | 1 Trả lời
-
A. Ubuntu.
B. BKAV.
C. Kapersky.
D. Antivirus.
01/12/2022 | 2 Trả lời
-
A. Worm, sâu máy tính
B. Trojan
C. Virus
D. BKAV.
19/12/2022 | 1 Trả lời
-
Nhập vào danh sách b với n phần tử số nguyên. Hãy tính tổng các phần tử lẻ trong b
17/02/2023 | 0 Trả lời
-
Khi đó vòng biểu diễn bởi một xâu S gồm N ký tự trong tập ['1'...'9']. Để tăng tính độc đáo cho vòng trang sức quý này, người ta lắp khóa đẹp vào vị trí sao cho khi mở vòng ra được một dãy đá quý có tính chất không phụ thuộc vào việc cầm đầu dây này bên tay phải dầu kia bên tay trái hay ngược lại ta đều được chuỗi giống nhau tức là viên đá thứ i từ trái sang luôn có màu gì không phụ thuộc vào cách cầm Hãy đếm số cách đặt khóa
Ví dụ: xâu S: 222222335533
+222334433222
+533222222335
Viết chương trình trong python
03/04/2023 | 0 Trả lời
-
In và đếm các số nguyên tố có trong danh sách
05/04/2023 | 0 Trả lời
-
Cho a là 1 danh sách chỉ gồm các số nguyên. Hãy viết chương trình tạo và in ra dsach b chỉ gồm các số chẵn trong a?
05/04/2023 | 0 Trả lời
-
a. Đếm và thông báo số từ trong xâu đó
b. Thông báo ra màn hình từ đầu tiên của xâu
25/04/2023 | 0 Trả lời