الدرس 5: المصفوفات والمؤشران
تخيّل رفّ كتب تقف فيه الكتب متجاورة تمامًا: تريد الكتاب الثالث؟ عُدّ ثلاثة واقفز إليه مباشرة. هذه هي المصفوفة (array) — الوصول إلى عنصر عبر الفهرس هو O(1). اليوم نتعرّف على حيلة أنيقة، 'المؤشران' (two pointers): بدلًا من مؤشّر واحد يمسح كل شيء، تشغّل اثنين يتحرّكان أحدهما نحو الآخر — فتحلّ كثيرًا من
المؤشران مثل شخصين يقرآن سطرًا طويلًا من طرفيه المتقابلين — أحدهما يبدأ من البداية والآخر من النهاية، ويتحرّكان أحدهما نحو الآخر حتى يلتقيا في المنتصف. تنتهي بسرعة بهذه الطريقة، بدلًا من أن يقرأ كل شخص السطر كاملًا بمفرده.
- المؤشران
- نمط يتحرّك فيه فهرسان فوق مصفوفة (من الطرفين نحو الداخل أو في الاتجاه نفسه) لحلّ مسألة في مرور واحد.
- في المكان (in-place)
- تغيير البيانات داخل البنية الموجودة دون تخصيص بنية جديدة — ذاكرة إضافية O(1).
- ذاكرة متجاورة
- تخزين العناصر متجاورة في الذاكرة، مما يتيح الوصول عبر الفهرس بـ O(1) ومسحًا ملائمًا لذاكرة cache.