SẮP XẾP
Cho dãy A= [5, 8, 1, 0, 10, 4, 3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt.
THAM KHẢO!
1.Thuật toán sắp xếp chèn (Insertion Sort):
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = insertion_sort(A)
print("Dãy A sau khi sắp xếp chèn:", sorted_A)
2. Thuật toán sắp xếp chọn (Selection Sort):
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = selection_sort(A)
print("Dãy A sau khi sắp xếp chọn:", sorted_A)
3.Thuật toán sắp xếp nổi bọt (Bubble Sort):
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = bubble_sort(A)
print("Dãy A sau khi sắp xếp nổi bọt:", sorted_A)
Theo em có thể sắp xếp bảng kết quả khảo sát lớp 8A (Hinh 6.2) theo tổ, nếu cũng tổ sắp xếp theo tên, nếu cùng tên sắp xếp theo họ đệm được không? Hãy thực hiện sắp xếp trên bảng tính.
Tham khảo:
1. Được
2. Sắp xếp trên bảng tính.
- Chọn Add level để thêm tiêu chí sắp xếp
- Chọn cột tên là tiêu chí sắp xếp thứ nhất
- Chọn cột họ đệm là tiêu chí sắp xếp thứ 2.
Sắp xếp ý.
Chọn cách sắp xếp ý phù hợp.
Cách 1
– Miêu tả đặc điểm ngoại hình.
– Miêu tả hoạt động.
Sắp xếp kết quả một môn học theo thứ tự giảm dần. Cái biên một hàm thực hiện thuật toán sắp xếp nào đó, ví dụ sắp xếp nhanh quicksort thành hàm quickSort_tuple_down để sắp xếp một danh sách các cặp (tên, điểm) theo thứ tự điểm giảm dần.
Tham khảo:
- Cải biển hàm phandoanLomuto thành him phandoanlomuto_tuple để sắp các cặp (Tên, điểm môn học) theo thành phần điểm môn học.
- Trong him phandoanLomuto_tuple đảo chiều phép so sánh trong câu lệnh if từ "ca" thành "y" để sắp thứ tự giảm dần, đặt tên hàm mới là phanhoanLamuto_tuple_down.
- Dùng hàm phanhoanLamuto_tuple_down để cải biên quícksort thành hàm quickSort_tuple_down.
Viết một thư viện bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thư viện bao gồm sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt.
def nhap_day_so():
"""Hàm nhập dãy số từ bàn phím"""
n = int(input("Nhập số lượng phần tử của dãy: "))
a = []
for i in range(n):
a.append(int(input(f"Nhập phần tử thứ {i+1}: ")))
return a
def sap_xep_chen(a):
"""Hàm sắp xếp dãy số bằng phương pháp sắp xếp chèn"""
for i in range(1, len(a)):
key = a[i]
j = i - 1
while j >= 0 and key < a[j]:
a[j+1] = a[j]
j -= 1
a[j+1] = key
return a
def sap_xep_chon(a):
"""Hàm sắp xếp dãy số bằng phương pháp sắp xếp chọn"""
for i in range(len(a)):
min_idx = i
for j in range(i+1, len(a)):
if a[j] < a[min_idx]:
min_idx = j
a[i], a[min_idx] = a[min_idx], a[i]
return a
def sap_xep_noi_bot(a):
"""Hàm sắp xếp dãy số bằng phương pháp sắp xếp nổi bọt"""
for i in range(len(a)):
for j in range(0, len(a)-i-1):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
return a
- Kể về cách sắp xếp nơi ở của em.
Gợi ý:
+ Cách sắp xếp đồ dùng các nhân của em trong gia đình như thế nào?
+ Nếu được thay đổi cách sắp xếp nơi ở của mình, em sẽ thay đổi như thế nào?
- Thảo luận với các bạn về cách sắp xếp nơi ở gọn gàng, ngăn nắp.
- Đồ dùng cá nhân em thường để gọn gàng trong phòng của mình, không vứt bừa bãi ở phòng khách, phòng bếp,...
- Sách vở em để trên giá, quần áo treo ngay ngắn vào tủ, đồ chơi sẽ xếp vào các hộp gọn gàng.
- Thường ngày em sẽ quét phòng để luôn sạch sẽ.
- Cùng nhau trao đổi với nhóm về cách sắp xếp nơi ở của mình
- Một số học sinh trình bày ý tưởng sắp xếp nơi ở gọn gàng, sạch đẹp
Ở vùng nào các đường mạt sắt sắp xếp dày, vùng nào sắp xếp thưa?
Ở gần `2` đầu cực nam châm, các đường mạt sắt sắp xếp dày, ở xa `2` cực nam châm, mạt sắt sắp xếp càng thưa.
Hoạt động 1: Chia sẻ cách sắp xếp nơi ở gọn gàng, ngăn nắp.
- Kể về cách sắp xếp nơi ở của em.
Gợi ý:
+ Cách sắp xếp đồ dùng cá nhân của em trong gia đình như thế nào?
VD: Đồ dùng cá nhân em được sắp xếp đa phần ở trong phòng riêng của mình. Chỉ có một vài đồ vật như cốc, bát,... là để ở không gian chung cùng mọi người.
+ Nếu được thay đổi cách sắp xếp nơi ở của mình, em sẽ thay đổi như thế nào?
VD: Nếu được thay đổi cách sắp xếp nơi ở của mình, em sẽ sắp xếp lại nhà kho thành các mục có trật tự, ngăn nắp hơn.
- Thảo luận với bạn về cách sắp xếp nơi ở gọn gàng, ngăn nắp.
Hoạt động 2: Tranh biện về cách sắp xếp nơi ở gọn gàng, ngăn nắp.
- Tranh biện để ủng hộ hoặc phản đối những ý kiến sau:
+ Nơi ở là không gian của riêng em nên không cần phải sắp xếp gọn gàng, ngăn nắp.
VD: Em không đồng ý với ý kiến trên. Mặc dù nơi ở là không gian của riêng em nhưng nếu không sắp xếp gọn gàng, ngăn nắp thì khi muốn tìm đồ sẽ rất khó, nhìn không gian vô cùng bừa bộn và tiềm ẩn nguy cơ bệnh tật do ẩm thấp, bụi bẩn. Nơi ở là không gian của riêng em nhưng không có nghĩa không có ai thăm không gian riêng đó. Em sẽ cảm thấy xấu hổ, ngại ngùng nếu người ngoài nhìn thấy chúng như thế. Và người khác nhìn thấy một không gian bừa bộn sẽ đánh giá em là con người bừa bộn, lười nhác,...
Hoặc em đồng ý vì với không gian riêng thì chúng ta có quyền được sắp xếp tự do. Chúng ta là người sử dụng không gian đó nhiều nhất nên miễn chúng ta cảm thấy thoải mái thì không cần phải sắp xếp ngăn nắp, gọn gàng.
+ Sắp xếp vật dụng cá nhân làm mất thời gian của em. Chỉ cần để vật dụng cá nhân em sao cho tiện sử dụng.
VD: Em không đồng ý vì việc sắp xếp vật dụng cá nhân không mất quá nhiều thời gian. Ý kiến trên chỉ cho thấy sự lười nhác, biện minh cho sự lười nhác của mình. Nếu không sắp xếp vật dụng gọn gàng thì khi tìm sẽ rất khó, chưa kể nhìn căn phòng bừa bộn, bẩn bụi. Hơn nữa, việc để đồ linh tinh còn gây ảnh hưởng tới người thân trong gia đình.
Hoặc em đồng ý vì thời gian sắp xếp vật dụng cá nhân em có thể làm được nhiều bài tập, nhiều việc nhà giúp bố mẹ,... Còn không gian phòng ở là nơi riêng tư, miễn sao em cảm thấy thoải mái, tiện lợi thì việc sắp xếp là không cần thiết.
- Nêu những điều em rút ra được và cảm nhận của em sau khi tranh biện.
VD: Em nhận ra được cần phải sắp xếp ngăn nắp, gọn gàng nơi ở của mình để vừa phù hợp với sinh hoạt cá nhân vừa phù hợp với khung cảnh gia đình.
Hãy hành động
Quan sát nơi ở của em trong gia đình, vận dụng những điều em đã được học được để:
- Xác định những chỗ còn chưa gọn gàng, ngăn nắp trong nơi ở của em.
- Sắp xếp đồ dùng cá nhân của em gọn gàng, ngăn nắp.
- Trang trí nơi sinh hoạt cá nhân cho phù hợp với khung cảnh của gia đình.
Câu 29. Nút lệnh dùng để làm gì?
A. Sắp xếp dữ liệu tăng dần B. Sắp xếp dữ liệu giảm dần
C. Lọc dữ liệu D. Sắp xếp và lọc dữ liệu.
Câu 30. Nút lệnh dùng để làm gì?
A. Sắp xếp dữ liệu tăng dần B. Sắp xếp dữ liệu giảm dần
C. Lọc dữ liệu D. Sắp xếp và lọc dữ liệu.
Cho các số: 106;207;301;408;602;803;909;704;605.
a. Sắp xếp các số trên theo thứ tự từ lớn đến bé.Sắp xếp thế nào thì nhanh nhất ?
b. Sắp xếp các số trên theo thứ tự từ bé đến lớn. Sắp xếp thế nào thì nhanh nhất?
a) Các số theo thứ tự từ lớn đến bé là: 909; 803; 704; 605; 602; 408; 301; 207; 106
b) Các số theo thứ tự từ bé đến lớn là: 106; 207; 301; 408; 602; 605; 704; 803; 909
Sắp xếp như thế nào tùy vào đơn vị lớn hơn hay bé hơn của chúng.
~Học tốt~
bùi phạm minh anh xinh đẹp nhất trên thế giới