Bu yazımda da yine okulda almış olduğum Algoritmalar dersinde gördüğümüz Quick Sort algoritmasının C# kodlarını sizlerle paylaşacağım.

Bu yazımda da yine okulda almış olduğum Algoritmalar dersinde gördüğümüz Quick Sort algoritmasının C# kodlarını sizlerle paylaşacağım. Quick Sort algoritması daha önce paylaşmış olduğum merge sort algoritmasına benzeyen ve recursive olarak çalışan bir algoritma. Merge sort algoritmasına göre daha yavaş çalışan bir algoritma olmasına karşın sıralama işlemlerinde çok sık kullanılan bir algoritma. Şimdi Quick Sort algoritmasını C# ile nasıl yapacağımıza bakalım.

Bu algoritmayı kullanmak için recursive olan bir void metot (quick_sort) ve bunun dışında ek bir void metot (partition) hazırladım. Bu metotlar ile Quick Sort ile integer türünden diziyi sıralayabiliyoruz. Algoritmanın C# kodları ve kullanımı aşağıdaki gibi olacak.
 

int q;    
public void quick_sort(int[] dizi, int p, int r)    
{      
	if (p < r)      
	{        
		partition(dizi, p, r);        
		quick_sort(dizi, p, q);        
		quick_sort(dizi, q + 1, r);      
	}    
}     
public void partition(int[] dizi, int p, int r)    
{      
	int x = dizi[p];      
	int i = p - 1;      
	int j = r + 1;      
	while (true)      
	{        
		do        
		{          
			j--;        
		}        
		while (dizi[j] > x);         
		do        
		{          
			i++;        
		}        
		while (dizi[i] < x);         
		if (i < j)        
		{          
			int gecici = dizi[i];          
			dizi[i] = dizi[j];          
			dizi[j] = gecici;        
		}        
		else        
		{          
			q = j;          
			break;        
		}      
	}    
}     

/*Quick Sort Kullanımı*/    
int[] dizi = { 12, 3, 8, 5, 15, 12, 45, 31 };    
quick_sort(dizi, 0, dizi1.Length - 1);

 

Quick sort algoritması da bu şekilde. Sıralama algortimalarından Quick Sort'u da görmüş olduk. Bu türlü kodlamalarla algoritma bilgimizi geliştirebiliriz.

İyi Çalışmalar.

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder