Menu
CoddyTech

Сортировка и обратный порядок

Часть раздела Основы путешествия по GDScript на Coddy. Урок 76 из 92.

sort() располагает элементы массива в порядке возрастания. Он изменяет сам массив:

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

sort() ничего не возвращает, поэтому print(scores.sort()) — это ошибка. Сначала отсортируй, затем выведи на печать.

Строки сортируются в алфавитном порядке, причём заглавные буквы идут перед строчными: ["bob", "Cleo", "ana"] превращается в ["Cleo", "ana", "bob"].

reverse() меняет текущий порядок элементов массива, не сортируя его. Чтобы отсортировать массив по убыванию, сначала отсортируй его, а затем разверни:

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

Присваивание массива другой переменной не создаёт его копию: обе переменные используют один и тот же массив, и сортировка одного массива сортирует другой. Чтобы сохранить исходный порядок, отсортируй копию, созданную с помощью 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

Задание

Легко

Программа считывает строку целых чисел, разделённых запятыми, в numbers (уже написано). Выведите три строки:

  1. Original: и числа в исходном порядке
  2. Ascending: и числа, отсортированные от наименьшего к наибольшему
  3. Descending: и числа, отсортированные от наибольшего к наименьшему

Для входных данных 5,3,9,1 вывод будет таким:

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

Попробуйте сами

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var numbers: Array[int] = []
	for part in parts:
		numbers.append(int(part))
	# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript