Vdev 7


Teslim : 02 Ocak 2009

Vdev: N boyutundaki M adet diziyi ayr} ayr} s}ralad}ktan sonra NxM boyutunda iki boyutlu bir dizi haline getiriniz.

 

Vdevin ag}klamas}: Bilindipi |zere pointer (gvstericiler) dizi |zerinde gal}~maktad}r. Pointerlar}n bu vzelliklerinden faydalanarak M adet dizi olu~turulabilir ve diziler ayn} boydaysa tek bir iki boyutlu matriks |zerinde toplanabilir.

 

^ekilde gvsterildipi |zere tek bir pointer ile N adet dizinin s}ralanmas}, daha sonra NxM boyutunda tan}t}lan bir diziye bilgilerin at}lmas} m|mk|nd|r. Buna gvre karma~}k olarak verilmi~ diziler s}raland}ktan sonra her sat}r} s}ralanm}~ M sat}rl} iki boyutlu bir dizi elde edilecektir.

 

Vdevin ta~}mas} gereken vzellikler:

Tek boyutlu dizilerin s}ralamas} igin istedipiniz algoritmay} kullanabilirsiniz.

S}ralama i~leminin derste anlat}ld}p} gibi bir fonksiyon ile yap}lmas} ve fonksiyonun referans ile gapar}lmas} (call by reference) isteniyor.

Haf}zada N adet M uzunlupunda dizi ve bir adet NxM uzunlupunda dizi ve bir pointer d}~}nda ba~ka bir yer ay}rman}za izin verilmemi~tir. Swap (yer depi~tirme) i~lemi igin bu alanlar d}~}nda fazladan bir depi~ken veya pointer daha kullanabilirsiniz.

]ki boyutlu dizi |retildikten sonra her sat}r}n}n kendi iginde s}ral} olmas} ve orijinal matirste bulunan verilerin hepsini kaybetmeden ta~}mas} gerekmektedir.

 

Bonus: Yukar}daki vdevi yapt}ktan sonra ilave olarak sat}rlar aras} s}ralama yap}n. Yani matrisin sol |st kv~esinde en k|g|k say}, sap |st kv~esinde ise en b|y|k say} bulunacak ~ekilde s}ralay}n. (bonusu yapmak sorunun orjinalini yapmamak demek depildir. Bonus yapmak isteyenler sorunun orjinaline ilave olarak kodda bir fonksiyon yazabilir veya ikinci bir dosyada yollayabilirler.)