0Pricing
Swift Academy · Lekcja

Sortowanie, wyszukiwanie i wycinanie

Poznać sorted(), sort(), firstIndex(of:), prefix, suffix i ArraySlice

Sortowanie, wyszukiwanie i wycinanie to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Tablice Swift oferują bogaty zestaw algorytmów do sortowania, wyszukiwania i wycinania fragmentów. Ich znajomość ogranicza liczbę ręcznie pisanych pętli i pozwala tworzyć czytelniejszy, szybszy kod.

sorted() a sort()

```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()` działa na tablicach zadeklarowanych za pomocą `let`, a `sort()` wymaga `var`.

Niestandardowa kolejność sortowania

```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 ```

first(where:) i last(where:)

```swift let nums = [4, 7, 2, 9, 1] let first = nums.first { $0 > 5 } // Optional(7) let last = nums.last { $0 > 5 } // Optional(9) ``` To lepsze rozwiązanie niż ręczna pętla — wyszukiwanie kończy się po znalezieniu pierwszego pasującego elementu.

Wyszukiwanie binarne za pomocą partition(by:)

Biblioteka standardowa Swift używa partition do wydajnego partycjonowania w czasie 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 ```

Fragmenty tablic: prefix i suffix

```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] ``` Fragmenty są widokami — współdzielą pamięć z oryginalną tablicą.

Konwertowanie fragmentu na tablicę

```swift let slice = arr.prefix(3) let copy = Array(slice) // independent [Int] copy ``` Fragment należy zawsze konwertować na `Array`, jeśli ma być przechowywany dłużej niż istnieje źródłowa tablica.

drop oraz 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 ```

min() i max()

```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" ```

contains i allSatisfy

```swift let nums = [2, 4, 6, 8] print(nums.allSatisfy { $0 % 2 == 0 }) // true print(nums.contains { $0 > 10 }) // false ``` `allSatisfy` i `contains(where:)` kończą działanie wcześniej, gdy wynik jest już znany.

Szybki test

Która metoda zwraca pierwsze N elementów tablicy jako `ArraySlice`?

Podsumowanie

Najważniejsze informacje: • `sorted()` → nowa tablica; `sort()` → modyfikuje tablicę w miejscu • `first(where:)` / `last(where:)` — wyszukiwanie elementów • `prefix`, `suffix`, `[range]` — wycinanie fragmentów (bez kopiowania) • `drop(while:)`, `dropFirst`, `dropLast` — usuwanie elementów z końców • `min()`, `max()`, `allSatisfy`, `contains(where:)` Dalej: mapowanie, filtrowanie i redukcja tablic.

Często zadawane pytania

Czy lekcja „Sortowanie, wyszukiwanie i wycinanie” jest bezpłatna?

Tak — pełny tekst „Sortowanie, wyszukiwanie i wycinanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Sortowanie, wyszukiwanie i wycinanie”?

Poznać sorted(), sort(), firstIndex(of:), prefix, suffix i ArraySlice Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Sortowanie, wyszukiwanie i wycinanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie i modyfikowanie tablic
  2. Sortowanie, wyszukiwanie i wycinanie
  3. Map, Filter i Reduce na tablicach
  4. Tablice dwuwymiarowe i zagnieżdżone kolekcje
← Powrót do Swift Academy