Swift Academy · Урок

Сортировка, поиск и срезы

Изучите sorted(), sort(), firstIndex(of:), prefix, suffix и ArraySlice

Урок 2 из 412 шагов

«Сортировка, поиск и срезы» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

Массивы Swift предлагают богатый набор алгоритмов для сортировки, поиска и получения срезов. Их изучение позволяет отказаться от написанных вручную циклов и создавать более чистый и быстрый код.

sorted() против сортировки

```swift let nums = [3,1,4,1,5,9] let sorted = nums.sorted() // new array, nums unchanged var mutable = [3,1,4] mutable.sort() // in-place sort ``` `sorted()` работает с массивами, объявленными через `let`; для `sort()` требуется `var`.

Пользовательский порядок сортировки

```swift let words = ["banana","apple","cherry"] let alpha = words.sorted() // ascending let rev = words.sorted(by: >) // descending let byLen = words.sorted { $0.count < $1.count } // by length ```

Первый и последний элементы, соответствующие условию

```swift let nums = [4, 7, 2, 9, 1] let first = nums.first { $0 > 5 } // Optional(7) let last = nums.last { $0 > 5 } // Optional(9) ``` Это лучше ручного цикла: поиск прекращается при первом совпадении.

Разбиение массива по условию

Стандартная библиотека Swift использует разбиение для эффективного разделения за O(n): ```swift var nums = [3, 1, 4, 1, 5, 9, 2] let pivotIdx = nums.partition { $0 >= 5 } // nums is now [...<5 values..., 5,9] and pivotIdx is the split point ```

Срезы массивов: начало и конец

```swift let arr = [10,20,30,40,50] let first3 = arr.prefix(3) // ArraySlice [10,20,30] let last2 = arr.suffix(2) // ArraySlice [40,50] let mid = arr[1...3] // ArraySlice [20,30,40] ``` Срезы являются представлениями: они используют общее хранилище с исходным массивом.

Преобразование среза в массив

```swift let slice = arr.prefix(3) let copy = Array(slice) // independent [Int] copy ``` Всегда преобразуйте срез в `Array`, если нужно хранить его дольше времени жизни исходного массива.

Удаление и dropFirst/dropLast

```swift let arr = [1,2,3,4,5] let d1 = arr.dropFirst() // [2,3,4,5] let d2 = arr.dropLast(2) // [1,2,3] let d3 = arr.drop { $0 < 3 } // [3,4,5] — drop while condition holds ```

Минимум и максимум

```swift let scores = [88, 95, 70, 82] print(scores.min()!) // 70 print(scores.max()!) // 95 let minByLen = ["cat","elephant","ox"].min { $0.count < $1.count } // "ox" ```

Проверка наличия и allSatisfy

```swift let nums = [2, 4, 6, 8] print(nums.allSatisfy { $0 % 2 == 0 }) // true print(nums.contains { $0 > 10 }) // false ``` `allSatisfy` и `contains(where:)` завершают работу досрочно, как только результат становится известен.

Быстрая проверка

Какой метод возвращает первые N элементов массива в виде `ArraySlice`?

Итоги

Главное: • `sorted()` → новый массив; `sort()` → изменяет массив на месте • `first(where:)` и `last(where:)` — поиск элементов • `prefix`, `suffix`, `[range]` — получение срезов без копирования • `drop(while:)`, `dropFirst`, `dropLast` — удаление элементов с концов • `min()`, `max()`, `allSatisfy`, `contains(where:)` Далее: map, filter и reduce.
Можно начать бесплатно

Изучай Swift с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
122
Уроки
409

Часто задаваемые вопросы

Урок «Сортировка, поиск и срезы» бесплатный?

Да — полный текст урока «Сортировка, поиск и срезы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «Сортировка, поиск и срезы»?

Изучите sorted(), sort(), firstIndex(of:), prefix, suffix и ArraySlice Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Сортировка, поиск и срезы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание и изменение массивов
  2. Сортировка, поиск и срезы
  3. Map, filter и reduce для массивов
  4. Двумерные массивы и вложенные коллекции
← Назад к Swift Academy