QuickSort Sıralama Algoritması -> PHP

shamper

Yeni üye
17 Şub 2019
4
0
NETWORK
GitHub = https://github.com/suboxone-cross/crash/issues/1#issue-550734136


Kod:
<?php

//Başvuru Verilerinin Bulundugu Dizin.
$başvuranlar = array(								

		['name'=>'Burak Kutay Coşgun', 'Tecrübe'=>5, 'İngilizce Seviyesi'=>5, 'Yaş'=>18],
		['name'=>'Ecrin Su', 'Tecrübe'=>4, 'İngilizce Seviyesi'=>2, 'Yaş'=>7],
		['name'=>'Furkan Özütürk', 'Tecrübe'=>1, 'İngilizce Seviyesi'=>5, 'Yaş'=>19],    
		['name'=>'Bekir Balkoca', 'Tecrübe'=>5, 'İngilizce Seviyesi'=>1, 'Yaş'=>17],
		['name'=>'Bora Ünver', 'Tecrübe'=>3, 'İngilizce Seviyesi'=>1, 'Yaş'=>18]
);

//QuickSort Algoritması
$sortByCustomFilter = function ($personA, $personB){

	if($personA['Tecrübe']==$personB['Tecrübe']){//Rastgele İki Başvuranın Tecrübe Yılı Eşit mi ? diye Soruyoruz..
		if ($personA['İngilizce Seviyesi']!=$personB['İngilizce Seviyesi']){/*Başvuran iki elemanın tecrübeleri eşit olduğundan
			İngilizce Seviyelerine Bakılıyor Eğer eşit değiller ise alt satıra geçiliyor.. */
			return $personA['İngilizce Seviyesi'] < $personB['İngilizce Seviyesi']? 1 : -1;/*Birinci Başvuranın İngilizce Seviyesi İkinci Başvuranın
			İnglizce Seviyesinden küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/
		}else{
			if($personA['Yaş'] != $personB['Yaş']){//Burda başvuranların yaşlarına bakılıyor başvuranların yaşları eşit degil ise alt satıra geçiliyor..
				return $personA['Yaş'] < $personB['Yaş']? 1 : -1;;/*Birinci Başvuranın Yaşı İkinci Başvuranın
				Yaşından küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/
			}else{
				return 0; //Şayet yukardaki koşulların hiç birisi sağlanmazsa algortima sıralama konusunda hiç bir karar vermiyor ve 0 olarak deger veriyor.
			}
		}
	}
	return $personA['Tecrübe'] < $personB['Tecrübe']? 1 : -1;//İlk koşul saglanmazsa Başvuran Tecrübeleri kontrol ediliyor.. 
	/*Diger Koşullara bakılmaksızın -> Birinci Başvuranın Tecrübesi İkinci Başvuranın
	Tecrübesinden küçük Olursa Sıralama sayısına 1 ekleniyor şayet büyük olursa -1 azalatılıyor ve sıralamada yükseliyor*/ 
};

//Algoritmanın Dizin Üzerinde Çalıştırılması..
usort($başvuranlar, $sortByCustomFilter);

//Algoritma Sonucunu Görmek İçin..
var_dump($başvuranlar)

?>
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.