Dizinin En Büyük Elemanını Bulma

By Burak TUNGUT - 20.11.2012 - 1 Yorum - Kategori C / C++

Verilen herhangi bir integer dizi (array) de en büyük değerin hangisi olduğunu bulan bir algoritma yapalım.
Bu isteğimiz veritabanında ki bir kayıt olsaydı MIN ve MAX komutları SQL ayrıcalığı ile yardımımıza koşabilirdi :) Ne yazık ki C / C++ da böyle bir şansımız yok.

Bu örneği 5 adet öğrencinin 0 ile 100 aralığında verilmiş olan notları için yapacağız.Ve en büyük sayıyı bulmak için ise yola 0 ile başlayacağız.

Öncelikle düşünelim

Yazdığım diğer bir makale de ki bubble shorting uygulamalarına her ne kadar benzese de ondan kat kat kolay bir mantığa sahip bir örnek yapacağız.
Öncelikle dizimiz de 5 adet veri olduğunu düşünelim. Bunları ikili olarak karşılaştırarak büyük olanı elimizde tutarak bir sonraki kayıt ile karşılaştıracağız. Ancak başlangıçta en büyük sayıyı bulmak için karşılaştırma kriteri olarak 0 ile (ya da daha düşük bir sayı) başlamamız gerek.

İlk ve son kayıtlar

Bir döngüyle ilk indis ile son indise kadar If yapılarıyla karşılaştırma yapacağız ancak dikkat ederseniz bu sefer ilk ve son kayıt asla karşılaşmamış olacaktır. Bunun için de son kaydı bir kere de ilk kayıtla karşılaştırmalıyız.

Küçük için de aynı mantık

Aşağıdaki algoritma ile integer dizi (array) de en büyük değeri bulabileceğiniz gibi en küçük değeride bir kaç değişiklik ile bulmanız mümkün.
 

Kodlarımız şöyle ;

 

main()
{
	int Ogrenci[5] = {65,20,50,40,75};
	int i = 0;
	int Buyuk = 0;
	for(i=0 ; i<5 ; i++)
	{
		if(i!=4)
		{
			if((Ogrenci[i]>Ogrenci[(i+1)])&&(Ogrenci[i]>Buyuk))
			{
				Buyuk = Ogrenci[i];
			}
			else
			if((Ogrenci[4]>Ogrenci[0])&&(Ogrenci[4]>Buyuk))
			{
				Buyuk = Ogrenci[4];
			}
		}
	}
	printf("En buyuk deger : %d",Buyuk);

 

merhaba hocam benim sorum şu iki string diziyi karşılaştırıp içlerinden aynı olan elemanları yeni bir diziye atmak istiyorum.daha sonra 3. diziyi hem birinci diziyle hem de oluşturduğum yeni diziyle tekrar karşılaştırıp birinci dizi de olup ikinci dizi de olmayan elemanı yeni diziye atmak istiyorum bunu nasıl yapabilirim.şöyle ki: dizi1={ali,ayşe,ahmet,mehmet} dizi2={ali,aslı,can} taranan={ali} dizi3={ahmet,elif,ebru,ali} taranan={ali,ahmet}
Yorum Bırak

Facebook
Son Yorumlar