Diziyi Tersine Çevirme (Reverse Array)

By Burak TUNGUT - 21.11.2012 - 2 Yorum - Kategori Java

Bu yazım da bize verilen herhangi bir türde ki diziyi başka bir dizi kullanmadan indisleri yardımıyla tersine çevireceğiz.

Hocamız bu örneği yapmamızı istediğin de ilk aklıma gelen başka bir dizi kullanmaktı fakat bellekten tasarruf ederek başka dizi tanımlamadan da bu işi yapabiliriz.

Neler yapabileceğimizi düşünelim

Yukarıda da belirttiğim gibi bize verilenin haricinde bir dizi tanımlayarak bunu yapmak çok basit, örneğin 5 elemanlı bir dizide 0. indisi 5. indise tanımlayacak şekilde yapabilirdik fakat özellikle de JVM de bellek yönetimini iyi yapabilmemiz şart.
Bu nedenle tek dizi ile bunu nasıl yapabileceğimizi düşünelim.

Eğer yukarıda verdiğim örnek gibi 5 elemanlı bir dizimiz varsa ve direk bunun üzerinde işlem yapacaksak uzunluğumuzun yarısı kadar dönecek bir döngü tasarlayarak baştan x. elemanı sondan x-1. elemanla yerini standart swap algoritmasıyla değiştirebiliriz.
Bunu yaparken dizi uzunluğunun tek sayı olması bizi korkutmasın, çift sayılarda 2 ye tam bölüneceğinden uzunluğun yarısı kadar iş yapılacak, tek olması durumunda ise en ortada ki elemanın zaten yeri değişmeyecektir.  

C, C# ve Java için kodlarımız

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] sayilar = {1,2,3,4,5,6,7,8};
		
		for(int i = 0 ; i < sayilar.length/2 ; i++)
		{
			int temp = sayilar[i];
			sayilar[i] = sayilar[sayilar.length-i-1];
			sayilar[sayilar.length-i-1]=temp;
		}
		
		for(int k:sayilar)
			System.out.print(k+"\t");
	}
peki bunu pointer kullanarak nasıl yapabiliriz lütfen yardımcı olun çok acil
Yorum Bırak

Facebook
Son Yorumlar