0Pricing
Swift Academy · درس

الفرز والبحث والتقطيع

تعلّم sorted() وsort() وfirstIndex(of:) وprefix وsuffix وArraySlice

الفرز والبحث والتقطيع درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا

تأتي مصفوفات Swift مع مجموعة غنية من الخوارزميات للفرز والبحث وتقسيم المصفوفات إلى شرائح. ويساعد تعلمها على تقليل الحلقات المكتوبة يدويًا وإنتاج تعليمات برمجية أوضح وأسرع.

sorted() مقابل 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()` مع مصفوفات `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 ```

first(where:) و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) ``` هذا أفضل من استخدام حلقة يدوية، إذ يتوقف عند أول تطابق.

البحث الثنائي باستخدام partition(by:)

تستخدم مكتبة Swift القياسية `partition` لتقسيم العناصر بكفاءة، بتعقيد 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 ```

شرائح المصفوفات: prefix و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] ``` الشرائح هي عروض تشترك في التخزين مع المصفوفة الأصلية.

تحويل الشريحة إلى مصفوفة

```swift let slice = arr.prefix(3) let copy = Array(slice) // independent [Int] copy ``` حوّلوا الشريحة دائمًا إلى `Array` إذا كنتم بحاجة إلى تخزينها بعد انتهاء عمر المصفوفة المصدر.

drop و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() و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 و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.

الأسئلة الشائعة

هل درس «الفرز والبحث والتقطيع» مجاني؟

نعم — نص درس «الفرز والبحث والتقطيع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إنشاء المصفوفات وتعديلها
  2. الفرز والبحث والتقطيع
  3. Map وFilter وReduce على المصفوفات
  4. المصفوفات ثنائية الأبعاد والمجموعات المتداخلة
← العودة إلى Swift Academy