C ile Sıralama Algoritmaları

Perşembe, 02 Eyl 2010 admin yorum yok

Herhalde C dilini bilmeyen programcı yoktur. Varsa da kendine programcı demesin bir zahmet. Neyse “Tanrı’nın Programlama Dili” olarak da bilinen C dilinde sıralama algoritmalarını yazacağım. Üniversite 2 de okurken içinde üç tane sıralama algoritması içeren bir program yazmıştım. Şimdi tek tek aklımda bulunan sıralama algoritmalarını yazacağım. Hadi bakalım.

Bubble Sort

/*The Bubble Sort*/

void bubble(char *item, int count)

{

register int a, b;

register char t;

for(a=1; a<count ; ++a) {

for(b=count-1; b>=a; –b) {

if(item[b-1] > item[b]) {

t=item[b-1] = item[b];

}

}

}

}

/*Sort Driver*/

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

void bubble(char *item, int count);

main()

{

char s[80];

printf(“Enter a String:”);

gets(s);

bubble(s, strlen(s));

printf(“The Sorting String is: %s\n”, s);

return 0;

}

Sorting by Selection

/*The Selection Sort*/

void select(char *item,int count)

{

register int a,b,c;

char t;

for(a=0; a<count-1;++a) {

c=a;

t=item[a];

for(b=a+1; b<count; ++b) {

if(item[b]<t) {

c=b;

t=item[b];

}

}

item[c]=item[a];

item[a]=t;

}

}

Sorting by Insertion

/*The Insertion Sort*/

void insert(char *item, int count)

{

register a,b;

char t;

for(a=1; a<count;++a) {

t=item[a];

b=a-1;

while(b>=0 && i<item[b]) {

item[b+1]=item[b];

b–;

}

item[b+1]=t;

}

}

The Shell Sort (9,5,3,2,1 için örnekledim)

/*The Shell Sort*/

void shell(char *item, int count)

{

register i,j,k,s,w;

char x, a[5];

a[0]=9; a[1]=5; a[2]=3; a[3]=2; a[4]=1;

for(w=0; w<5; w++) {

k= a[w]; s=-k;

for(i=k;i<count; ++i) {

x=item[i]; j=i-k;

if(s==0) {

s=-k; s++; item[s]=x;

}

while(x<item[j] && j>=0 && j>=count) {

item[j+k]=item[j];

j=j-k;

}

item[j+k]=x;

}

}

}

The Quicksort

/*The Quicksort*/

/*Quicksort setup function*/

void quick(char *item, int count);

{

qs(item,0,count-1);

}

/*The Quicksort*/

void qs(char *item,int left, int right)

{

register int i,j;

char x,y;

i=left; j=right;

x=item[(left+right)/2];

do {

while(item[i]<x && i<right) i++;

while(x<item[j] && j>left) j–;

if(i<=j) {

y=item[i];

item[i]=item[j];

item[j]=y;

i++; j–;

}

}while(i<=j);

if(left<j) qs(item, left, j);

if(i<right) qs(item, i, right);

}

İnternette çoğu yerde bunları bulabilirsiniz. Ancak ileride Python’da bu sıralama algoritmalarını anlatırken bunlarla karşılaştırma yapacağız ve Python’da çok daha kısa şekilde nasıl yazdığımızı gözlemleyeceğiz.

Herkese iyi kodlamalar.

Yunus Emre COŞKUN

Python’u Windows YOL’a Eklemek

Çarşamba, 01 Eyl 2010 admin yorum yok

Önceki Python yazımda bu konuyu anlatacağımı söylemiştim. Peki nedir bu YOL denen şey?

Linux kullanıcıları Komut Satırını açıp python yazdıklarında Python Shell’ine direkt ulaşabiliyorlar. Ama Windows kullanıcıları bunu yapmak için başlıkta da belirttiğim gibi Python dizinini YOL’a eklemeleri gerekmekte.

Haydi şimdi hızlı bir şekilde Python dizinini YOL’a ekleyelim.(Windows 7 için anlatıyorum. Vista’da da aynı. Ancak XP’de biraz değişebilir.)

Öncelikle Bilgisayarım(Computer)’a Sağ Tıklayıp Özellikler(Properties)’e giriyoruz,

Ardından açılan pencerede Gelişmiş Sistem Seçenekleri(Advanced System Settings) giriyoruz,

Açılan sayfanın alt kısmında bulunan Ortam Değişkenleri(Environment Variables) butonuna tıklıyoruz,

Açılan sayfanın alt kısmında Sistem Değişkenleri(System Variables) listelenmekte. Bizim ihtiyacımız olan Path Kısmı. Path’i bulup seçiyoruz ve Düzenle(Edit) seçeneği ile ayarlamamızı yapabiliriz.

Değişken Değeri(Variable Value) kısmının sonuna.

;C:\Python27 

satırını ekliyoruz ve kaydederek burayı kapatıyoruz. Python kurulum sırasında otomatik olarak kendini bu dizine kurduğu için ben bunu yazdım. Siz bilgisayarınızda nereye kurduysanız oranın YOL’unu yazabilirsiniz.

Evet sanırsam Python’u YOL’a sorunsuz bir şekilde ekledik. Şimdi Komut Satırını açarak (İlk Python Yazımda Bunu Nasıl Açacağımızı Anlatmıştım) python” komutunu verdiğimizde aşağıdaki gibi sorunsuz bir şekilde Komut Satırından Python’u çalıştırdığımızı göreceksiniz.

Python Shell’inden çıkmak için yapmamız gerekeni bir önceki yazıda anlatmıştım. (Buradan ulaşabilirsiniz )

Bir Sonraki yazıda Python’da kodlama yapmaya başlayacağız.

İyi Kodlamalar.

Yunus Emre COŞKUN

Python 2.x -Giriş-

Çarşamba, 01 Eyl 2010 admin yorum yok

Uzun süredir gerekli olan tüm yazılımlarımı Python ile gerçekleştiriyorum ve bu konuda bir şeyler yazabilecek kadar kendimi donanımlı görüyorum. Python, Guido van Rossum tarafından geliştirilen OpenSource(Açık Kaynak) bir programlama dilidir.

Günümüzde pek çok ünlü internet devi (Google etc.) Python yardımı ile kodlama yapmaktalar. Guido van Rossum’da şu anda Google için çalışmakta. Neyse blogumda bolca Phyton ile ilgili konu yazacağım için bir yerden başlamak gerekir diye düşündüm.

Python’u tüm yaygın işletim sistemlerinde kullanabiliriz. Ancak en performanslı şekilde Linux dağıtımları altında çalıştırabiliriz.

Python’u tüm işletim sistemleri için buradan indirebilirsiniz.

Ben sizlere Windows tarafında anlatacağım. Hayda sen OpenSource’çu değil misin? Neden Linux’ta anlatmıyorsun diyenler olabilir. Herhangi bir sebebi yok. Sadece şu anda kullandığım bilgisayarda Windows 7 işletim sistemi var. :)

Ben siteden Python’un 2.x serisinin en son sürümü olan 2.7′yi indirdim ve normal bir program kurar gibi kurdum. Şimdi biraz Python kodlarını nerede yazacağımızı, nasıl RUN edeceğimizi ve IDLE arayüzünü tanıyacağız. Kodlamaya 2 yazı sonra başlayacağız. Çünkü bu dersten sonra Python’u Windows’ta YOL’a eklemeyi öğreneceğiz.

Windows’u sıklıkla Komut Satırından kullananlar buraya daha hakim olacaklardır ancak olmayanlar için Python’u Komut Satırından nasıl çalıştırabileceklerini göstereceğim.

Windows’ta Çalıştır(Run) sekmesini neredeyse herkes bilir. Windows Vista ve 7 de bu bölüm Başlat menüsündeki Search/Ara kısmıdır. Buraya cmd yazarak Komut Satırını açabiliriz.

Python normal ayarlarda kurulduğunda kendini C:\Python27 dizini altına yükler. Bu dizin altında python.exe uygulaması bizim Python Shell’ine ulaşmamızı sağlayacak.

Komut satırına,

cd C:\Python27

komutunu verelim. Ardından,

python.exe

komutu ile Python Shell’imizi çalıştıralım. Karşımıza aşağıdaki fotoğraf gelecek.

Böylelikle Python Shell’ini de çalıştırmış olduk. Kodlarımızı buraya yazarak çalıştırabiliriz. Ancak kodlamaya ilerideki yazılarımda değineceğim. Python Shell’inden çıkış yapmak için,

quit()

komutunu veya

CTRL+Z bastıktan sonra  Enter a bas

kombinasyonunu kullanabiliriz.

Şimdi de Python IDLE’a biraz bakalım. IDLE kısaca Python Arayüzüdür. Nasıl ki ASP.NET,C#’ı Visual Studio’da, PHP’yi Eclipse,NetBeans.. gibi ortamlarda kodluyoruz, Python’u da kendi yüklemesi sırasında gelen IDLE’da kodlarsak işlerimiz gayet kolaylaşır. Tabiki de bu konuda özgürsünüz. İsterseniz NotePad’de isterseniz de Komut Satırında bu kodlamaları yapabilirsiniz. Ancak ben IDLE kullanacağım için sizlere de IDLE’ı anlatacağım.

IDLE’a Başlat>Programlar>Python 2.7>IDLE (Python GUI) yolunu takip ederek ulaşabiliriz. Çalıştırdığımızda aşağıdaki ekranı görürüz.

Fark ettiyseniz Python Shell’ine eriştiğimizi burada da görebiliriz. Çok fazla detaylandırmadan kodları buraya da yazarsak çalıştırabileceğimizi söyleyebilirim. Ancak biz direkt olarak burayı kullanmayacağız. Kullanacağımız yer File sekmesinden New Window seçeneğine tıkladığımızda veya CTRL+N‘e bastığımızda karşımıza gelecek olan yeni penceredir. Burayı açtığımızda karşımıza NotePad’e benzer boş bir sayfa geliyor. Kodlarımızı buraya yazacağız ve Buradan Run sekmesinden Run Module seçeneği ile veya direkt F5 tuşu ile çalıştıracağız.

Şimdilik Python’u nasıl çalıştıracağımızı ve IDLE arayüzünü tanımış olduk.

Bir sonraki Python yazımda sizlere Python’u YOL’a eklemeyi anlatacağım.

İyi Kodlamalar.

Yunus Emre COŞKUN

Hello World

Perşembe, 19 Ağu 2010 admin yorum yok

Eski sitemi takipçiler bilirler bayağ içerik yapmıştım. Ancak Hollanda’da bulunan sunucumuzu Almanya’ya taşırken bazı sorunlarla karşılaşıldı ve veri tabanına erişemez olduk. Nitekim sunucuda bulunan tüm sitelere de veda etmek zorunda kaldık. (?!)

Gelelim sözün kısasına. Sitemi(Blog’umu) yeniden hayata geçirdi. Hosting’i arkadaşımın şirketinden sağladım. (http://www.3xlhost.com)

Eski takipçilerimi yeniden siteme bekliyorum ve güzel, bol, güncel paylaşımlarda birlikte olmayı temenni ediyorum.

Yunus Emre COŞKUN

Mozilla Firefox