introduction searching algorithms c
C ++ 'da Arama Algoritmalarına Genel Bakış.
Günlük hayatımızda bir şey ya da diğerini aramaya devam ediyoruz. Tıpkı günlük yaşamımızda olduğu gibi, bir yazılım uzmanı olarak bilgisayarımızda bilgi aramamız gerekir. Bilgi aramak için zamanımızın çoğunu boşa harcamayı göze alamayacağımız için bilgi erişimi hızlı yapılmalıdır.
Bu nedenle, belirli bir bilgiyi kısa sürede arayabilen ve kullanıcının diğer görevlere devam edebilmesi için kullanıcıya verebilen bazı verimli arama tekniklerine veya algoritmalarına ihtiyacımız var.
=> Tam C ++ Öğreticiler listesi için Burayı Ziyaret Edin.
Ne öğreneceksin:
Arama Teknikleri
Bilgi aramak için çoğunlukla kullanılan iki ana arama tekniğimiz var.
Bunlar şunları içerir:
- Doğrusal Arama
- Ikili arama
Bu eğiticide, bu iki arama tekniğini de ayrıntılı olarak inceleyeceğiz.
Doğrusal Arama
Bu en temel arama tekniğidir ve uygulanması da daha kolaydır. Doğrusal bir aramada, aranacak anahtar, veri toplamanın her öğesi ile doğrusal olarak karşılaştırılır. Bu teknik, doğrusal veri yapıları üzerinde etkili bir şekilde çalışır.
Aşağıdaki diziyi ele alalım.
Yukarıda yedi eleman dizisi var. = 23 anahtarını aramak istersek, 0'dan başlayarakinciöğesi, anahtar değeri her öğe ile karşılaştırılacaktır. Anahtar öğe dizideki öğeyle eşleştiğinde, o belirli konum döndürülür. Bu durumda konum, anahtar / değer çifti o konumdaki değerle eşleştiğinden 4 döndürülür.
Aşağıdaki C ++ ve Java dilini kullanarak doğrusal bir arama gerçekleştirdik.
C ++ Uygulaması
#include #include using namespace std; int main() { int myarray(10) = {21,43,23,54,75,13,5,8,25,10}; int key,loc; cout<<'The input array is'<key; for (int i = 0; i<10; i++) { if(myarray(i) == key) { loc = i+1; break; } else loc = 0; } if(loc != 0) { cout<<'Key found at position '< Çıktı:
dize uzunluğu boşlukları sayar java
Giriş dizisi
21 43 23 54 75 13 5 8 25 10
Aranacak anahtarı girin: 3
Dizide verilen anahtar bulunamadı
Giriş dizisi
21 43 23 54 75 13 5 8 25 10
Aranacak anahtarı girin: 75
Dizide 5. konumda bulunan anahtar
Java Uygulaması
import java.util.*; import java.lang.*; import java.io.*; public class Main { public static void main(String() args) { int() myarray = {21,43,23,54,75,13,5,8,25,10}; int key,location=0; Scanner sc = new Scanner(System.in); System.out.println('The input array is'); for(int i=0;i<10;i++){ System.out.print(myarray(i)+' '); } System.out.println('
'); System.out.println('Enter key'); key = sc.nextInt(); for(int i = 0; i<10; i++) { if(myarray(i)==key) { location = i+1; break; } else location = 0; } if(location != 0) { System.out.println('key found at location ' + location); } else System.out.println('Key not found'); } }
Çıktı:
Giriş dizisi
21 43 23 54 75 13 5 8 25 10
Giriş anahtarı
2. 3
anahtar konum 3'te bulundu
uyumsuzluk ile çalışan ses değiştirici
Doğrusal arama, sıralanmış veya sıralanmamış elemanlara sahip herhangi bir doğrusal veri yapısı üzerinde gerçekleştirilebilir. Ancak çok fazla öğe varsa ve her öğe anahtar değerle karşılaştırıldığı için anahtar öğenin sona doğru olması daha uzun zaman alır.
Ikili arama
İkili arama, bir anahtarı aramak için 'böl ve yönet' tekniğini kullanan bir tekniktir. Sıralı bir doğrusal öğe listesi üzerinde çalışır. Sıralı liste, ikili aramanın çalışması için temel gereksinimdir.
İkili arama yönteminde, liste tekrar tekrar ikiye bölünür ve anahtar bulunana kadar anahtar eleman listenin her iki yarısında da aranır.
Örneğin,aşağıdaki sıralı 10 elemanlı diziyi alalım.

Diyelim ki anahtar = 21 dizide aranacak.
Dizinin orta konumunu hesaplayalım.
Orta = 0 + 9/2 = 4
Örneğin,aşağıdaki sıralı 10 elemanlı diziyi alalım.

Anahtar = 21
İlk olarak, anahtar değerini (mid) öğesiyle karşılaştıracağız. Ortadaki eleman değerinin = 21 olduğunu görüyoruz.

Böylece o anahtarı = (mid) buluruz. Dolayısıyla anahtar bulunur.
anahtar = 25

Önce anahtar değerini mid ile karşılaştırıyoruz. Yani (21<25), we will directly search for the key in the upper half of the array.

Şimdi yine dizinin üst yarısının ortasını bulacağız.
Orta = 4 + 9/2 = 6
Konumdaki değer (orta) = 25

Şimdi anahtar unsuru orta unsurla karşılaştırıyoruz. Yani (25 == 25), böylece anahtarı (mid) konumunda bulduk.
Diziyi tekrar tekrar böleriz ve anahtar elemanı orta ile karşılaştırarak, anahtarı hangi yarıda arayacağımıza karar veririz.
Aşağıda ikili arama için C ++ ve Java uygulaması verilmiştir.
C ++ Uygulaması
#include #include using namespace std; int binarySearch(int myarray(), int beg, int end, int key) { int mid; if(end >= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) key; location = binarySearch(myarray, 0, 9, key); if(location != -1) { cout<<'Key found at location '< Çıktı:
Giriş dizisi
5 8 10 13 21 23 25 43 54 75
Aranacak anahtarı girin: 21
Anahtar konum 5'de bulundu

Java Uygulaması
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main(String() args) { int() myarray = {5,8,10,13,21,23,25,43,54,75}; int key, location = -1; System.out.println('The input array is'); for(int i=0;i= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) Çıktı:
Giriş dizisi
5 8 10 13 21 23 25 43 54 75
bir web sitesine kod nasıl enjekte edilir
Aranacak anahtarı girin
yirmi bir
anahtarın konumu 5
İkili arama, zaman ve doğruluk açısından daha verimlidir. Doğrusal arama tekniği, daha hantal ve daha yavaş olduğu için nadiren kullanılır. İkili arama, doğrusal aramaya kıyasla çok daha hızlıdır.
Sonuç
Arama teknikleri, kullanıcının bilgi işlemenin diğer görevlerine devam edebilmesi için bir bilgisayarda depolanan bilgileri aramamıza yardımcı olur. Doğrusal arama tekniği basit ve kolaydır, ancak yaygın olarak kullanılmamaktadır.
İkili arama tekniği çok daha hızlı ve etkilidir, bu nedenle yaygın olarak kullanılmaktadır.
Yaklaşan eğitimimizde, çeşitli sıralama tekniklerini ayrıntılı olarak inceleyeceğiz.
=> Mükemmel C ++ Eğitim Kılavuzuna Buradan Bakabilirsiniz.
Önerilen Kaynaklar
- Java Programlama Diline Giriş - Video Eğitimi
- Appium Studio'ya Giriş: Temel Avantajlar ve Özellikler
- STL'de Algoritmalar
- En İyi ÜCRETSİZ C # Eğitim Serisi: Yeni Başlayanlar İçin En İyi C # Rehberi
- JMeter Video 1: Giriş, JMeter İndir ve Kur
- Python Giriş ve Kurulum Süreci
- Unix Nedir: Unix'e Kısa Bir Giriş
- Micro Focus LoadRunner'a Giriş - LoadRunner Öğreticisi # 1 ile Yük Testi