Menu
CoddyTech

Sắp xếp và đảo ngược

Thuộc phần Kiến thức nền tảng trong hành trình GDScript của Coddy. Bài học 76 trên 92.

sort() sắp xếp các phần tử của mảng theo thứ tự tăng dần. Hàm này thay đổi chính mảng đó:

var scores := [5, 1, 9, 3]
scores.sort()
print(scores)
[1, 3, 5, 9]

sort() không trả về gì, nên print(scores.sort()) sẽ gây lỗi. Hãy sắp xếp trước, sau đó in ra.

Các chuỗi được sắp xếp theo thứ tự bảng chữ cái, chữ hoa đứng trước chữ thường: ["bob", "Cleo", "ana"] trở thành ["Cleo", "ana", "bob"].

reverse() đảo ngược thứ tự hiện tại của mảng mà không sắp xếp. Để sắp xếp theo thứ tự giảm dần, trước tiên hãy sắp xếp rồi đảo ngược:

var hp := [7, 2, 9, 4]
hp.reverse()
print(hp)
hp.sort()
hp.reverse()
print(hp)
[4, 9, 2, 7]
[9, 7, 4, 2]

Gán một mảng cho biến khác không tạo ra bản sao: cả hai biến đều dùng chung một mảng, và sắp xếp mảng này cũng sẽ sắp xếp mảng kia. Để giữ nguyên thứ tự ban đầu, hãy sắp xếp bản sao được tạo bằng duplicate():

var original := [5, 3, 9]
var sorted_copy := original.duplicate()
sorted_copy.sort()
print(original, " ", sorted_copy)
[5, 3, 9] [3, 5, 9]
challenge icon

Thử thách

Dễ

Chương trình đọc một dòng gồm các số nguyên được phân tách bằng dấu phẩy vào numbers (đã viết sẵn). In ra ba dòng:

  1. Original: và các số theo thứ tự ban đầu
  2. Ascending: và các số được sắp xếp từ nhỏ nhất đến lớn nhất
  3. Descending: và các số được sắp xếp từ lớn nhất đến nhỏ nhất

Với đầu vào 5,3,9,1, đầu ra là:

Original: [5, 3, 9, 1]
Ascending: [1, 3, 5, 9]
Descending: [9, 5, 3, 1]

Tự làm thử

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var numbers: Array[int] = []
	for part in parts:
		numbers.append(int(part))
	# Viết code của bạn bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch GDScript online