Sıralanmış Dizide İki İşaretçi
Bir hedefe ulaşmak için uçları içeri doğru taşıyın.
Sıralanmış Dizide İki İşaretçi, CoddyKit'te ücretsiz bir Competitive Programming Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Competitive Programming Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Competitive Programming Academy kursu toplamda 4 dersten oluşur.
İki İşaretçi Neden Kullanılır
İki işaretçi tekniği, bir diziyi iç içe döngüler yerine iki indeksle tarar; böylece birçok O(n^2) fikrini tek ve temiz bir O(n) geçişine dönüştürür. 🎯
Sıralama Sihirli Sözcüktür
Klasik sürüm sıralanmış bir dizi gerektirir. Sıra kurmanızı sağlar: sağa ilerlemek değeri büyütür, sola ilerlemek küçültür; böylece her adım gerçek bir karara dönüşür.
Uçlarda İki İşaretçi
Bir işaretçiyi sol uca, diğerini sağ uca yerleştirerek başlayın. Birbirlerine bakarlar ve aralarındaki mesafeyi yavaşça kapatırlar.
left = 0
right = len(a) - 1Uçları İçeri Doğru İlerletme
Her adımda tam olarak bir işaretçiyi içeri doğru ilerletirsiniz. Dizinin sırası, hedefinize yaklaşmak için hangi tarafı ilerletmeniz gerektiğini söyler.
Döngü Koşulu
left < right olduğu sürece döngüyü sürdürün. Birbirlerine ulaştıklarında veya birbirlerini geçtiklerinde, işe yarayan her çift kontrol edilmiş olur ve durabilirsiniz.
while left < right:
# inspect a[left] and a[right]
passGeçerli Toplamı Okuma
a[left] + a[right] ifadesini geçerli adayınız olarak değerlendirin. Bunu hedefle karşılaştırmak, sırada daha büyük mü yoksa daha küçük mü bir değere ihtiyaç duyduğunuzu gösterir.
total = a[left] + a[right]Çok Küçük: Solu İlerletin
Toplam hedeften küçükse, daha fazlasına ihtiyacınız vardır. Dizi artan sırada olduğundan, sol işaretçiyi daha büyük değerlere doğru sağa ilerletin.
if total < target:
left += 1Çok Büyük: Sağı İlerletin
Toplam hedeften büyükse, daha azına ihtiyacınız vardır. Toplamı azaltmak için sağ işaretçiyi daha küçük değerlere doğru sola ilerletin.
elif total > target:
right -= 1Her Adımda İş Yükü Atılır
Her hareket, hiç denemeniz gerekmeyen bir çift grubunu tamamen eler. Bu nedenle tarama karesel değil, doğrusaldır.
Neden Doğru Kalır
Yalnızca eşleşemeyecek çiftleri elersiniz; bu nedenle doğru yanıtı asla atlamazsınız. İki işaretçiyi yarışmalarda güvenilir kılan da bu güvencedir.
Uç Noktaların Ötesi
Aynı fikir şu varyantlara da güç verir: yerinde tersine çevirme, bölümlere ayırma ve birleştirme. Buluşan işaretçiler fikrini kavradığınızda bunların hepsi tanıdık gelir.
Hızlı Kontrol
Hedef toplamı bulmak için sıralanmış bir diziyi iki uçtan tarıyorsunuz.
Özet
İki işaretçi, sıralanmış bir diziyi iki uçtan tarar ve her adımda birini içeri ilerletir; koşul left < right olduğu sürece devam eder. Doğrusal, doğru ve birçok yöntemin temelidir. 🚀
Sıkça Sorulan Sorular
“Sıralanmış Dizide İki İşaretçi” dersi ücretsiz mi?
Evet — “Sıralanmış Dizide İki İşaretçi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Competitive Programming Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Competitive Programming Academy kursu toplamda 4 dersten oluşur.
“Sıralanmış Dizide İki İşaretçi” dersinde ne öğreneceğim?
Bir hedefe ulaşmak için uçları içeri doğru taşıyın. Competitive Programming Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Competitive Programming Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Competitive Programming Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Sıralanmış Dizide İki İşaretçi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Competitive Programming Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Competitive Programming Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sıralanmış Dizide İki İşaretçi
- Verilen Toplama Sahip Bir Çift Bulma
- Yinelenenleri Yerinde Kaldırma
- İki Sıralı Diziyi Birleştirme