Menu
CoddyTech

Sortowanie i odwracanie

Część sekcji Podstawy ścieżki GDScript w Coddy. Lekcja 76 z 92.

sort() umieszcza elementy tablicy w kolejności rosnącej. Zmienia samą tablicę:

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

sort() nic nie zwraca, więc print(scores.sort()) jest błędem. Najpierw posortuj, a potem wyświetl.

Ciągi znaków są sortowane alfabetycznie, a wielkie litery występują przed małymi: ["bob", "Cleo", "ana"] staje się ["Cleo", "ana", "bob"].

reverse() odwraca aktualną kolejność elementów tablicy, nie sortując jej. Aby posortować elementy w kolejności malejącej, najpierw posortuj tablicę, a następnie ją odwróć:

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

Przypisanie tablicy do innej zmiennej nie tworzy jej kopii: obie zmienne korzystają wtedy z tej samej tablicy, a posortowanie jednej z nich sortuje również drugą. Aby zachować pierwotną kolejność, posortuj kopię utworzoną za pomocą 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

Wyzwanie

Łatwy

Program odczytuje wiersz liczb całkowitych oddzielonych przecinkami do zmiennej numbers (jest już zapisany). Wypisz trzy wiersze:

  1. Original: i liczby w ich pierwotnej kolejności
  2. Ascending: i liczby posortowane od najmniejszej do największej
  3. Descending: i liczby posortowane od największej do najmniejszej

Dla danych wejściowych 5,3,9,1 wynik to:

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

Spróbuj swoich sił

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var numbers: Array[int] = []
	for part in parts:
		numbers.append(int(part))
	# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator GDScript online