Tarih : | at : | Safemode : ON
> root@redhatz:~# Alımlar Başlamıştır. İletişim Bölümünden Alım Yapan Yöneticimize Ulaşabilirsiniz.
> root@redhatz:~# #redhatzopturkey 2016 Yeni Dönemi Artık Aktiftir. BİZİ TERCİH ETTİĞİNİZ İÇİN TEŞEKKÜRLER..



Başlık Yazar Yetki Comt Düzenlenen Kategori
Hack dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Hack dersleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

ALGORİTMALAR - Algoritmada Diziler WyNe rwxr-xr-x 0 09:43:00

Başlık ALGORİTMALAR - Algoritmada Diziler
Yetki rw-r--r--
Yazar WyNe
Zaman 09:43:00
Kategori
Share
Yazıma diziyi tanımlayarak başlamak istiyorum. Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi denir. Dizi aynı veri tipinden bir dizi değişkenin tek bir ad ile temsil edilmesiyle oluşmuş değişkendir.
Dizilerin çıkış mantığı çok basittir. Problemlerin çözümünde şimdiye kadar hep birkaç değişken ve değer kullandık. Bu değişkenlerin sayısı birkaçı geçmediğinden işimiz çok kolaydı. Ancak bazen bir problemi çözerken yüzlerce hatta binlerce değişkene ve değere ihtiyaç duyulabilir. Örneğin bir yılda ki ayların adını sayısının karşılığı olarak gösteren bir program yaptığımızda ya 12 değişken tanımlarız ya da yalnız bir dizi tanımlayarak yapabiliriz. Bu değişkenleri el ile tek tek atamaya kalkarsak işimiz çok uzun olur. Ondan dolayı değişken yerine diziler kullanılır.
1.      Kullanıcıdan 1-12 arasında bir değer alarak aldığı değerin karşılığı olarak ay adını ekrana yazdıran algoritmayı tasarlayın.
a.      Başla
b.      Aylar Dizi (12) = “Ocak”, “Şubat”, “Mart”, “Nisan”, “Mayıs”, “Haziran”, ”Temmuz”, ””Ağustos, ”Eylül”, ”Ekim”, ”Kasım”, ”Aralık”,
c.      Oku AyNo
d.      AyAdı = Aylar (AyNo-1)  
e.      Yaz AyAdı
f.       Dur
Yukarıda b şıkkında dizi tanımlanmıştır. Gördüğünüz gibi dizi tanımlamak da bu kadar kolaydır. d şıkkında AyNo-1 yazılmıştır. Nedeni dizinin ilk elemanı 1 den değil 0 dan başlar.
http://www.banadersanlat.com/index.php/algoritmalar/4981-4-algoritmada-diziler.html

ALGORİTMALAR - Algoritma Örnekleri WyNe rwxr-xr-x 1 09:28:00

Başlık ALGORİTMALAR - Algoritma Örnekleri
Yetki rw-r--r--
Yazar WyNe
Zaman 09:28:00
Kategori
Share
İki Sayıda Dört İşlem
Bu problemde çözümleme yaparsak kullanıcıdan iki sayı almamız ve bunların sonucunu bir değişkene atayıp ekrana yazdırmamız gerekir.

1.      Başla
2.      Oku Sayı1
3.      Oku Sayı2
4.      Toplama=Sayı1+Sayı2
5.      Çıkarma=Sayı1-Sayı2
6.      Çarpma=Sayı1*Sayı2
7.      Bölme=Sayı1/Sayı2
8.      Yaz Toplam, Çıkarma, Çarpma, Bölme
9.      Dur


Herkes gibi ilk başlarken aklınızdan bunlar ne işime yarayacak diyebilirsiniz. Ama bu genel mantıktır. Gerisi sadece sizin üretkenliğinize kalır. Bu yukarıdaki algoritmayla ne yapabilirim ki diyorsanız hemen açıklayayım. Aklıma gelen örnekleri sıralıyorum.
1.      Kare, dikdörtgen, üçgen, daire, çember küre gibi geometrik cisimlerin çevre, alan ve hacim gibi hesaplamalar yapılabilir.
Önce değer girdirelim. Sonra o değerle dikdörtgenin çevresini ve alanını bulduralım.
a.      Başla
b.      Oku Sayı1
c.      Oku Sayı2
d.      DikdörgenÇevre=2*(Sayı1+Sayı2)
e.      DikdörtgenAlan=Sayı1*Sayı2
f.       Yaz DikdörgenÇevre, DikdörtgenAlan
g.      Dur
Kareyi hesaplarken a değişkeni sadece a tanımlanır ve çevresi 4*a, alanı a*a; daireyi hesaplarken bir r değişkeni tanımlanır çember 2*3,14*r, alanı 3,14*r*r olarak bulunur. 3,14 le çarpmamızın nedeni formüldeki piden geliyor. Küre 3,14*r*r*r silindir 2*3,14*r gibidir. Örnekler daha da uzatılabilir.
2.      Uzunluk ve sıcaklık birimleri arasında dönüşüm yapılabilir. Örneğin inçten santimetreye fahrenhayttan santigrada dönüşüm hesaplamaları yapılır.
a.      Başla
b.      Oku inç
c.      Cm=2,54*inç
d.      Yaz Cm
e.      Dur
Fahrenhaytı da hesaplarken fahrenhayttan 32 çıkarıp 1,8 e bölmemiz cevabı verecekir. Yani daha açık bir şekilde santigrat=(fahrenhayt-32)/1,8 olarak yazılabilir.
Örneklerde de gördüğünüz gibi formülleri bildikten sonra; kullanıcıdan değer al, formül aracılığıyla hesaplama yap ve son olarak sonucu göster gibi bir formül çıkarabiliriz.
3.      Şimdi işleri biraz daha farklılaştıralım. Birinci dereceden bir denklemde ki x’ i bulan bir algoritma geliştirelim. ax+b=0 olarak düşünürsek x=-b/a olur. Bu formülü elde etikten sonra gerisi düğer örnektekilerle aynı olacak.
a.      Başla
b.      Oku a
c.      Oku b
d.      x=-b/a
e.      Yaz x
f.       Dur

4.      Şimdi çok farklı bir algoritma geliştirelim. Bu algoritmada karşılaştırma yapacağız. Daha önce yazdığım tablodaki simgeleri kullanacağız. Yine yapacaklarımız bizim hayal gücümüze kalmış. Örneğin iki yaşı karşılaştırabiliriz, dersi geçip geçmediğinizi öğrenebilirsiniz.

a.      Başla
b.      Oku a
c.      Oku b
d.      Eğer
e.      (a>b) ise yaz “a büyük b”
f.       (a<b) ise yaz “b büyük a”
g.      Değilse yaz “a=b”
h.      Dur
Bu örnekte 2 sayıyı kıyasladık. Bu örnek iki insan arasında ki yaş kıyaslaması olabilir.
5.      İki sayının birbirine tam bölünüp bölünmediğini bulan algoritmayı yazalım.

a.      Başla
b.      Oku sayı1
c.      Oku sayı2
d.      Eğer
e.      (sayı1 mod sayı2 =0 ) ise yaz “sayı1 sayı2’ye tam bölünür”
f.       Değilse yaz “sayı1 sayı2’ye tam bölünmez”
g.      Dur

6.      Döngü ile merhaba yazan algoritma yapalım.

a.      Başla
b.      Sayaç (Başlangıç=1; Hedef<=10; Artış 1)
c.      Yaz “merhaba”
d.      Sayaç (x=1; x<=10; <x++)
e.      Yaz “merhaba”
f.       Sayaç (x=1; x<=10; <x+1)
g.      Yaz “merhaba”
h.      Sayaç (x=10; x>=1; <x--)
i.       Yaz “merhaba”
j.       Sayaç (x=10; x>=1; <x-1)
k.      Yaz “merhaba”
l.       Dur
B, d ve f şıklarında ki sözde kodlar yazı yazmamızı sağlayan döngülerdir. Mantığı çok basittir. 3 kısımdan oluşur. B şıkkında yazdığım gibi ilk kısım başlangıç sayısı, ikinci kısım hedef değeri ve son kısım ise artış miktarını gösteriyor. Bu döngü kullanılarak sayı h, j şıklarında olduğu gibi azaltılarak da yazılabilir. Ayrıca birer birer yerine ikişer üçer de arttırılabilir. Böylece çift ya da tek sayılar yazdırılabilir. Ayrıca belirli bir sayının karesi küpü de bu şekilde alınır. Faktöriyel de h, j şıkkına sayı yerine değişken atayarak oluyor.

7.      Tek ve çift sayıları yazdıran algoritmayı yapalım.

a.      Başla
b.      Sayaç (x=1; x<=10; <x+1)
c.      Eğer
d.      (x mod 2 = 0 ) Yaz “çift sayı”
e.      (Değilse) Yaz “tek sayı”
f.       SayaçSonu
g.      Dur

8.      Girilen sayılardan en büyük sayıyı bulan algoritmayı yazalım.

a.      Başla
b.      EnBüyük=0
c.      Sayaç (x=1; x>=5; x++)
d.      Yaz “X. Sayı:”
e.      Oku Sayı
f.       Eğer
g.      (Sayı > EnBüyük) EnBüyük = Sayı
h.      SayaçSonu
i.       Yaz “En Büyük = EnBüyük “i
j.       Dur

http://www.banadersanlat.com/index.php/algoritmalar/4980-3-algoritma-oernekleri.html

ALGORİTMALAR - Algoritma Geliştirme WyNe rwxr-xr-x 0 09:26:00

Başlık ALGORİTMALAR - Algoritma Geliştirme
Yetki rw-r--r--
Yazar WyNe
Zaman 09:26:00
Kategori
Share
Daha önceki yazımda yazılımların genel amacının var olan bir problemi çözmek olduğunu bunu iki şekilde yapabileceğimizi yazmıştım. Bu yazıda algoritmayı inceleyeceğiz.
Algoritmanın amacı belirli bir problemi çözmektir. Bunu üç şekilde yapabiliriz. Satır algoritması, akış diyagramı ve sözde koddur. Sözde kod satır kodunun daha kurallısı olduğundan anlatmaya gerek duymuyorum.
Simge
Adı
Örnek
Açıklamma
+
Toplama
C=A+B
A sayısı ile B sayısını toplar
-
Çıkarma
C=A-B
A sayısından B sayısını çıkarır
*
Çarpma
C=A*B
A sayısı ile B sayısını çarpar
/
Bölme
C=A/B
A sayısını B sayısına böler
=
Atama
C=A+B
A ve B sayısının toplamını C değişkenine atar
> 
Büyük
A>B
A büyük B ise true(1) değilse false(0)
< 
Küçük
A<B
A küçük B ise true(1) değilse false(0)
==
Eşit
A==B ya da A=B
A eşit B ise true(1) değilse false(0)
!=
Eşit Değil
A!=B ya da A<>B
A eşit değil B ise true(1) eşitse false(0)
>=
Büyük Eşit
A>=B
A büyük eşit B ise true(1) değilse false(0)
<=
Küçük Eşit
A<=B
A küçük eşit B ise true(1) değilse false(0)
 

Satır Algoritması
Sahte kod da denir. Herhangi bir programlama diline ihtiyaç duyulmaz. Bu yöntemde problem çözümü günlük konuşma diliyle ifade edilir.  Yazı diline yakın olması nedeniyle en basit algoritma ifade etme yoludur. Aşağıda hemen bir örnek verelim:

1.      Başla
2.      Oku (S1,S2)
3.      S3=S1*S2
4.      Yaz S3
5.      Dur

Akış Diyagramları
Koşul Karar Yapıları
Problemin çözümünde iki ya da daha fazla alternatif yol varsa koşul karar yapıları kullanılır.

http://www.banadersanlat.com/index.php/algoritmalar/4979-2-algoritma-gelistirme.html

ALGORİTMALAR - Sıralama Algoritmaları - Seçmeli Sıralama (Selection Sort) WyNe rwxr-xr-x 0 09:17:00

Başlık ALGORİTMALAR - Sıralama Algoritmaları - Seçmeli Sıralama (Selection Sort)
Yetki rw-r--r--
Yazar WyNe
Zaman 09:17:00
Kategori
Share
Seçmeli Sıralama, bilgisayar bilimlerinde kullanılan karmaşıklığı bir sıralama algoritmasıdır. Karmaşıklığı \mathcal{O}(n^2) olduğu için büyük listeler üzerinde kullanıldığında verim sağlamaz ve genel olarak benzeri olan eklemeli sıralamadan daha başarısızdır. Seçmeli sıralama yalın olduğu ve bazı durumlarda daha karmaşık olan algoritmalardan daha iyi sonuç verdiği için tercih edilebilir.

SÖZDE KODU

A sıralanacak öğeler kümesi, n ise A'daki öğe sayısıdır. Dizi 0 numaralı dizinle başlamaktadır.
for i ? 0 to n-2 do
    min ? i
    for j ? (i + 1) to n-1 do
        if A[j] < A[min]
            min ? j
    swap A[i] and A[min]

SEÇMELİ SIRALAMA ALGORİTMASININ ÖRNEK KODU

public int[] secmeliSiralama(int[] dizi)
{
    int enkucuk, yedek;
    for (int i = 0; i < dizi.Length - 1; i++)
    {
         enkucuk = i;
         for (int j = i + 1; j < dizi.Length; j++)
             if (dizi[j] < dizi[enkucuk])
                 enkucuk = j;
         if (enkucuk != i)
         {
             yedek = dizi[i];
             dizi[i] = dizi[enkucuk];
             dizi[enkucuk] = yedek;
         }
     }
     return dizi;
}
Selection Sort 2
Yukarıdaki şekil, 6 elemanlı içeriği karışık olarak verilmiş bir bir sayı dizisinin Seçmeli Sıralama algoritması kullanılarak nasıl küçükten-büyüğe doğru sıralandığını göstermektedir. 1. adımda dizinin ilk elemanı (6) alınır. Bu eleman diğer 5 eleman ile karşılaştırılır. Eğer bulunan eleman(1) ilk elemandan küçükse 1.elman ile yer değiştirilir. 2. adımda dizinin ikinci elemanı(3) alınır. Bu eleman kalan 4 eleman ile karşılaştırılır. Eğer bulunan eleman(2) ikinci elemandan küçükse 2. eleman ile yer değiştirilir ve bu işlem dizi sonuna kadar devam eder. Böylelikle dizi küçükten-büyüğe sıralanmış olur.
http://www.banadersanlat.com/index.php/algoritmalar/4435-s-ralama-algoritmalar-secmeli-s-ralama-selection-sort.html

ALGORİTMALAR - Cüce sıralaması WyNe rwxr-xr-x 0 09:05:00

Başlık ALGORİTMALAR - Cüce sıralaması
Yetki rw-r--r--
Yazar WyNe
Zaman 09:05:00
Kategori
Share
Cüce sıralaması (İngilizcesi: Gnome sort), bilgisayar bilimlerinde kullanılan araya sokmalı sıralamaya benzer bir sıralama algoritmasıdır. Ara sokmalı sıralamadan farkı kabarcık sıralaması yönteminde olduğu gibi, bir elemanın sıralanan dizideki yerine birçok yer değiştirme yoluyla gelmesidir. Cüce Sıralaması adı algoritmanın yönteminin mitolojideki Hollanda cücelerinin (gnome) bir dizi çiçek saksısını sıraya diziş biçimine benzemesinden kaynaklanmaktadır.
== Sözde Kodu ==22+52+65+45+654987878746654
function gnomeSort(a[0..size-1]) {
i := 1
j := 2
while i < size - 1
  if a[i-1] >= a[i]
      i := j
      j := j + 1 
  else
      swap a[i-1] and a[i]
      i := i - 1
      if i = 0
         i := 1
}

ALGORİTMANIN JAVA UYGULAMASI

 void gnomeSort(int a[]) {
  int i = 1;
  int j = 2;
  while (i < a.length - 1) {
     if (a[i - 1] >= a[i]) {
        i = j;
        j++;
     }
     else {
        int temp = a[i];
        a[i] = a[i - 1];
        a[i - 1] = temp;
        i--;
        if (i == 0) {
           i = 1;
        }
     }
  }
http://www.banadersanlat.com/index.php/algoritmalar/4434-cuece-s-ralamas.html

ALGORİTMALAR - Sıralama Algoritmaları - Tarak Sıralaması WyNe rwxr-xr-x 0 09:04:00

Başlık ALGORİTMALAR - Sıralama Algoritmaları - Tarak Sıralaması
Yetki rw-r--r--
Yazar WyNe
Zaman 09:04:00
Kategori
Share
Tarrak Sıralaması, ilk defa 1991 yılının Nisan ayında Stephen Lacey ve Richard Box tarafından Byte dergisinde duyurulmuş yalın bir sıralama algoritmasıdır. Kendisinden önce duyurulmuş kabarcık sıralaması algoritmasından başarılıdır ve karmaşıklıkta hızlı sıralama algoritmasıyla yarışır. Algoritmanın ana fikri listenin sonundaki küçük değerli öğelerin sayısını azaltmaktır. Kabarcık sıralaması algoritmasında sıralanacak listenin sonundaki küçük değerli öğelerin varlığı algoritmayı çok yavaşlattığı için tarak sıralamasında bu değerlerin sayısının azaltılması yoluna gidilmiştir.
Kabarcık sıralaması algoritmasında iki öğe karşılaştırıldığında aralarındaki mesafe her zaman 1'dir. Başka bir deyişle, kabarcık sıralaması her zaman ardışık iki değeri karşılaştırır. Taraf sıralaması ise bunun aksine aralarındaki mesafe birden çok daha fazla olan öğeleri karşılaştırabilir. (Kabuk sıralaması da aynı düşünceyle tasarlanmıştır ancak kabuk sıralaması kabarcık sıralamasının değil seçmeli sıralamanın bir türevidir.)

SÖZDE KODU

function combsort11(array input)
    gap := input.size //öğeler arasındaki aralığın başlangıç boyutunu belirle
    
    loop until gap <= 1 or swaps = 0
        //yeni bir tarama için aralığın boyutunu güncelle
        if gap > 1
            gap := gap / 1.3
            if gap = 10 or gap = 9
                gap := 11
            end if
        end if
        
        i := 0
        swaps := 0 // Açıklama için kabarcık sıralamasına bakınız
        
        // giriş listesinin üzerinden tek bir "tarama"
        loop until i + gap >= array.size //Benzer yaklaşım için kabuk sıralamasına bakınız
            if array[i] > array[i+gap]
                swap(array[i], array[i+gap])
                swaps := 1 // Aritmetik taşma düzeltmesi için
            end if
            i := i + 1
        end loop
       
    end loop
end function
http://www.banadersanlat.com/index.php/algoritmalar/4433-s-ralama-algoritmalar-tarak-s-ralamas.html

ALGORİTMALAR - Sıralama Algoritmaları - Kokteyl sıralaması WyNe rwxr-xr-x 0 09:03:00

Başlık ALGORİTMALAR - Sıralama Algoritmaları - Kokteyl sıralaması
Yetki rw-r--r--
Yazar WyNe
Zaman 09:03:00
Kategori
Share
Kokteyl sıralaması, bilgisayar bilimlerinde kabarcık sıralaması algoritmasına benzer bir sıralama algoritmasıdır. Kabarcık sıralamasından farkı sıralanacak listenin üzerinden tek yöne doğru değil iki yöne de geçerek öğeleri sıralamasıdır. Algoritmanın uygulanması kabarcık sıralaması algoritmasının uygulanmasından çok az daha zordur.
Sözde kodu
Kokteyl sıralamasının en yalın biçimi her defasında listenin tamamının üzerinden geçer:
procedure cocktailSort( A : list of sortable items ) defined as:
  do
    swapped := false
    for each i in 0 to length( A ) - 2 do:
      if A[ i ] > A[ i + 1 ] then // ardışık iki öğenin doğru sırada olup olmadığına bak order
        swap( A[ i ], A[ i + 1 ] ) // iki öğenin yerlerini değiştir
        swapped := true
      end if
    end for
    if swapped = false then
      // eğer değişiklik yapılmadıysa dıştaki döngüden çıkabiliriz.
      break do-while loop
    end if
    swapped := false
    for each i in length( A ) - 2 to 0 do:
      if A[ i ] > A[ i + 1 ] then
        swap( A[ i ], A[ i + 1 ] )
        swapped := true
      end if
    end for
  while swapped // hiçbir öğe yer değiştirmediyse liste sıralanmıştır
end procedure
http://www.banadersanlat.com/index.php/algoritmalar/4432-s-ralama-algoritmalar-kokteyl-s-ralamas.html

ALGORİTMALAR - Sıralama Algoritmaları - Kabarcık Sıralama WyNe rwxr-xr-x 0 09:02:00

Başlık ALGORİTMALAR - Sıralama Algoritmaları - Kabarcık Sıralama
Yetki rw-r--r--
Yazar WyNe
Zaman 09:02:00
Kategori
Share

Bubble sort animationKabarcık Sıralaması, bilgisayar bilimlerinde kullanılan yalın bir sıralama algoritmasıdır. Sıralanacak dizinin üzerinde sürekli ilerlerken her defasında iki öğenin birbiriyle karşılaştırılıp, karşılaştırılan öğelerin yanlış sırada olmaları durumunda yerlerinin değiştirilmesi mantığına dayanır. Algoritma, herhangi bir değişiklik yapılmayıncaya kadar dizinin başına dönerek kendisini yineler. Adına "Kabarcık" sıralaması denmesinin nedeni büyük olan sayıların aynı suyun altındaki bir kabarcık gibi dizinin üstüne doğru ilerlemesidir.
Başlangıçta yer yer değiştirme sıralaması olarak adlandırılan kabarcık sıralaması, dizi içindeki büyük elemanların algoritmanın her adımında dizinin sonuna doğru doğrusal olarak ilerlemesini sağlar. Bu ilerleme, seçmeli sıralama algoritmasındaki dizideki değeri küçük olan elemanların dizinin başında kümelenmesi yöntemine benzer şekilde gerçekleşir.
Kabarcık sıralaması dizinin başından başlar ve dizi elemanlarını sırayla seçer. Seçilen dizi elemanı kendinden sonra gelen elemandan büyükse bu iki elemanın yerleri değiştirilir. Bu işlem sonucunda dizinin en büyük elemanı dizi sonuna yerleştirildiğinden bir sonraki adımda arama sınırı bir eleman geri çekilir. Bu işlem, dizinin sonundaki elemanın karşılaştırılmasına kadar yinelenerek sürdürülür.

ALGORİTMANIN KARMAŞIKLIĞI

Kabarcık sıralama algoritmasının ortalama ve en kötü durumdaki karmaşıklığı \mathcal{O}(n^2)'dir. Algoritma ortalama ve en kötü durumda \mathcal(n^2 /2) adet karşılaştırma ve yer değiştirme gerçekleştirir.

ALGORİTMANIN ADIM ADIM İŞLEYİŞİ

İçeriği "5 1 4 2 8" olan bir dizi kabarcık sıralaması ile en küçükten en büyüğe doğru aşağıdaki biçimde sıralanır. Her adımda dizinin kalın olarak işaretlenmiş elemenları karşılaştırılan elemanlardır.
 Birinci Geçiş:
( 5 1 4 2 8 ) \to ( 1 5 4 2 8 ) Burada algoritma ilk iki elemanı karşılaştırır ve yerlerini değiştirir.
( 1 5 4 2 8 ) \to ( 1 4 5 2 8 )
( 1 4 5 2 8 ) \to ( 1 4 2 5 8 )
( 1 4 2 5 8 ) \to ( 1 4 2 5 8 ) Burada elemanlar zaten sıralı olduğu için algoritma yerlerini değiştirmez.
İkinci Geçiş:
( 1 4 2 5 8 ) \to ( 1 4 2 5 8 )
( 1 4 2 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
Artık dizi sıralıdır ancak algoritma işlemin bittiğini bilmemektedir. Algoritmanın dizinin sıralandığını anlaması için bütün dizinin üzerinden hiçbir değişiklik yapmadan tam bir geçiş yapması gerekir.
Üçüncü Geçiş:
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
( 1 2 4 5 8 ) \to ( 1 2 4 5 8 )
Sonuç olarak dizi sıralanmıştır ve algoritma sonlanır.

SÖZDE KODU

Algoritmanın yalın bir sözde kod olarak gösterimi aşağıdaki gibidir:
procedure bubbleSort( A : sıralanabilir öğe dizisi ) defined as:
  do
    swapped := false
    for each i in 0 to length( A ) - 2 do:
      if A[ i ] > A[ i + 1 ] then
        swap( A[ i ], A[ i + 1 ] )
        swapped := true
      end if
    end for
  while swapped
end procedure </gösterilebilir:
procedure bubbleSort( A : sıralanabilir öğe dizisi ) defined as:
  for each i in 1 to length(A) do:
    for each j in length(A) downto i + 1 do:
       if A[ j -1  ] > A[ j ] then
         swap( A[ j - 1],  A[ j ] )
       end if
     end for
  end for
end procedure 
http://www.banadersanlat.com/index.php/algoritmalar/4431-s-ralama-algoritmalar-kabarc-k-s-ralama.html

ALGORİTMALAR - Sıralama Algoritmaları WyNe rwxr-xr-x 0 09:01:00

Başlık ALGORİTMALAR - Sıralama Algoritmaları
Yetki rw-r--r--
Yazar WyNe
Zaman 09:01:00
Kategori
Share
Sıralama algoritması, bilgisayar bilimlerinde ya da matematikte kullanılan, verilen bir listenin elemanlarını belirli bir sıraya sokan algoritmadır. En çok kullanılan sıralama türleri, sayı büyüklüğüne göre sıralama ve alfabetik sıralamadır. Sıralama işleminin verimli yapılması, arama ve birleştirme algoritmaları gibi çalışması için sıralanmış dizilere gereksinim duyan algoritmaların başarımının yüksek olması için önemlidir. Sıralama algoritmaları bilgisayarlarda tutulan verilerin düzenlenmesini ve insan kullanıcı tarafından daha rahat algılanmasını da sağlar.
Sıralama algoritmaları, tanımı çok yalın olmasına karşın çözümü çok karmaşık olan bir işi gerçekleştirdikleri için, üzerinde en fazla araştırma yapılan bilgisayar bilimi konularından biridir. Çoğu kişi sıralama sorununu çözülmüş bir sorun olarak görse de, yeni sıralama algoritmaları üzerinde araştırmalar sürmektedir. Örneğin kütüphane sıralaması ilk olarak 2004 yılında ortaya atılmıştır. Sıralama algoritmaları, sayılarının çok olması ve değişik yaklaşımlar sunmaları nedeniyle özellikle giriş düzeyindeki bilgisayar bilimleri derslerinde büyük O gösterimi ve veri yapıları gibi temel algoritma kavramlarının açıklanması amacıyla yaygın biçimde kullanılırlar.
Bilgisayar bilimlerinde kullanılan sıralama algoritmaları genellikle aşağıdaki ölçütlere göre sınıflandırılır:
  • Hesaplama karmaşıklığı: Dizideki öğelerin karşılaştırılmasının en iyi, ortalama ve en kötü başarımının dizinin boyutu (n) cinsinden gösterilmiş halidir. Olağan uygulamalarda sıralama algoritmalarının iyi durum başarımı O(n log n) ve kötü durum başarımı is ?(n²)'dir. Bir sıralama algoritmasının istenen karmaşıklığı O(n)'dir. Yalnızca soyut bir anahtar karşılaştırması yapan bütün sıralama algoritmaları en kötü durumda her zaman ?(n log n) karşılaştırma yaparlar.
  • Yer Değiştirme Karmaşıklığı (yerinde sıralama algoritmaları için).
  • Bellek (ve diğer donanım kaynaklarının) Kullanımı: Bazı sıralama algoritmaları dizinin içerdiği öğelerin dizinin saklandığı alanda sıralar. Böylece sıralanan öğeler dışında yalnızca O(1) ya da O(log n)'lik bir ek bellek alanı gerekir. Bazı algoritmalar ise verinin geçici olarak saklanması için dizinin tutulduğu alanın dışında ek bellek alanlarına gereksinim duyar.
  • Özyineleme: Bazı algoritmalar ya özyinelemeli ya da özyinelemesiz çalışırken, birleştirmeli sıralama gibi bazı algoritmalar iki biçimde de uygulanabilir
  • Kararlılık
  • Kaşılaştırma sıralaması olup olmama: Bir karşılaştırma sıralaması sıralanacak veriyi, bir karşılaştırma işlemi kullanarak, karşılaştırarak inceler.
  • Genel Yöntem: Araya sokma, değiştirme, seçme, birleştirme vb. Değiştirme sıralamalarına kabarcık sıralaması ve hızlı sıralama örnek olarak gösterilebilir. Yığın sıralaması ise seçme sıralamalarındandır.
KARARLILIK
Kararlı sıralama algoritmaları sıralanacak dizinin içinde değerleri birbirine eşit olan öğerlerin birbirlerine göre olan konulmlarını korur. Başka bir deyişle, bir sıralama algoritması kararlı olduğunda, eğer R ve S gibi içerdiği değer aynı olan iki öğe bulunduran asıl dizide, R, S' den önce geliyorsa, sıralanmış dizide de R, S'den önce osurur.
Dizinin içinde birbirine eşit değerler içeren öğeler birbirlerinden ayırt edilemiyorsa (örneğin sayılar ya da harfler gibi değerler öğenin kendisini oluşturuyor ise) kararlılık bir sorun değildir. Ancak aşağıda gösterildiği gibi sayı çiftleri, her çiftin virgülden önceki sayısına göre sıralanacağı düşünülürse kararlılık sorunu ortaya çıkar.
(4, 1)  (3, 7)  (3, 1)  (5, 6)


Bu durumda, 2 değişik sonuç mümkündür; ilk çözüm sıralama anahtarlarının değerleri aynı olan öğelerinin sırasını korur, ikincisi ise korumaz:

(3, 7)  (3, 1)  (4, 1)  (5, 6)   (sıra korunmuş)
(3, 1)  (3, 7)  (4, 1)  (5, 6)   (sıra değişmiş)
Kararsız sıralama algoritmaları sıralama anahtarlarının değerleri aynı olan öğelerin dizi içindeki sırasını değiştirebilir ancak kararlı sıralama algoritmaları asla değiştirmez. Kararsız sıralama algoritmaları özellikle kararlı olacak biçimde uygulanabilir. Bunu yapmanın bir yolu yapay olarak anahtar karşılaştırmasını anahtlarının değerleri birbirine eşit olan iki öğenin durumunu belirlemek için asıl listedeki konumlarını ölçüt olarak kullanacak biçimde genişletmektir. Ancak asıl dizideki öğre sırasının hatırlanması çoğu zaman ek saklama alanı gerektirir. 

sıralama Algoritmalarının Listesi
Aşağıdaki tablolarda n dizideki sıralanacak olan eleman sayısını gösterir. "Ortalama" ve "En Kötü" kolonları ilgili durumlardaki karmaşıklığı, "Bellek" kolonu ise listenin sıralanabilmesi için listenin bellekte kapladığı alandan ne kadar daha fazla saklama alanı gerektiğini gösterir.

http://www.banadersanlat.com/index.php/algoritmalar/4430-s-ralama-algoritmalar.html

ALGORİTMALAR - Algoritmanın tarihi WyNe rwxr-xr-x 0 09:00:00

Başlık ALGORİTMALAR - Algoritmanın tarihi
Yetki rw-r--r--
Yazar WyNe
Zaman 09:00:00
Kategori
Share
Abu Abdullah Muhammad bin Musa al-KhwarizmiAlgoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi adındaki İran'lı alimden kaynaklanır. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala" kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür. Alimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları kullanarak aritmetik problemler çözme kuralları" manasında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel kapsamda kullanılır.
Faaliyetlerin birçoğu algoritmanın tanımının geliştirilmesine yönlendirilmiştir ve aktifliği çevredeki sorunlar nedeniyle, özellikle matematiğin temelleri(özellikle Church-Turing tezi) ve akıl felsefesi(özellikle yapay zeka konusundaki tartışmalar) sebebiyle devam etmiştir.

http://www.banadersanlat.com/index.php/algoritmalar/4410-algoritman-n-tarihi.html

ALGORİTMALAR - Akış Şeması WyNe rwxr-xr-x 0 08:54:00

Başlık ALGORİTMALAR - Akış Şeması
Yetki rw-r--r--
Yazar WyNe
Zaman 08:54:00
Kategori
Share
Akış şeması algoritmaları ve işlemleri birbirine oklarla bağlı değişik tiplerdeki kutular içerisinde gösteren yaygın bir şema tipidir. Akış şemaları çeşitli alanlardaki işlem ve uygulamaların yönetilmesi, belgelendirilmesi, tasarlanması ve çözümlenmesinde kullanılır.
Süreç akışını belgelemek için oluşturulan ilk metod olan "akış süreç şeması" Frank Gilbreth tarafından ASME (Amerikalı Mekanik Mühendisleri Topluluğu) üyelerine 1921'de sunulmuştur. Gilbreth'in araçları endüstri mühendisliği uygulaması yerini edinmiştir. 1930'ların başlarında, endüstri mühendisi olana Allan H. Mogensen New York'ta iş dünyasında kullanılmak üzere bazı endüstriyel uygulamaların eğitimini vermeye başladı.
ak emas
Bozuk lambanın tespitini sağlayan akış şeması.
http://www.banadersanlat.com/index.php/algoritmalar/4409-ak-s-semas.html

ALGORİTMALAR - Algoritma nedir? WyNe rwxr-xr-x 0 08:53:00

Başlık ALGORİTMALAR - Algoritma nedir?
Yetki rw-r--r--
Yazar WyNe
Zaman 08:53:00
Kategori
Share
Algoritma, matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesidir. Yani belli bir problemi çözmek veya belirli bir amaca ulaşmak için çizilen yola algoritma denir. Genellikle programlamada kullanılır ve tüm programlama dillerinin temeli algoritmaya dayanır. Aynı zamanda algoritma tek bir problemi çözecek davranışın, temel işleri yapan komutların veya deyimlerin adım adım ortaya konulmasıdır ve bu adımların sıralamasına dikkat edilmelidir. Bir problem çözülürken algoritmik ve sezgisel (herustic) olmak üzere iki yaklaşım vardır. algoritmik yaklaşımda da çözüm için olası yöntemlerden en uygun olan seçilir ve yapılması gerekenler adım adım ortaya konulur. Algoritmayı belirtmek için ; metinsel olarak düz ifade ve akış diyagramı olmak üzere 2 yöntem kullanılır. Algoritmalar bilgisayarlar tarafından işletilebilirler. Algoritma kelimesi, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Khiva kentinde doğmuştur.

m % n koy, tekrar 1'den başla.

Bu örnekte m%n bölmenin kalanıdır, yani 5 % 2 = 1'deki gibi. Algoritmayı 33 ve 15'e uygulayalım:

 33,15
 15,3
 3, 0
 sonuç 3

Bir de bilgisayar algoritmasına örnek verelim. Kullanıcının girdiği dört sayının ortalamasını görüntüleyen algoritmayı yazalım:

 A0 --> Başla
 A1 --> Sayaç=0 (Sayaç'ın ilk sayısı 0 olarak başlar.)
 A2 --> Sayı=? : T=T+Sayı (Sayıyı giriniz. T'ye sayıyı ekle ve T'yi göster.)
 A3 --> Sayaç=Sayaç+1 (Sayaç'a 1 ekle ve sayacı göster.)
 A4 --> Sayaç<4 ise A2'ye git. (Eğer sayaç 4'ten küçükse Adım 2'ye git.)
 A5 --> O=T/4 (Ortalama için T değerini 4'e böl)
 A6 --> O'yu göster. (Ortalamayı göster.)
 A7 --> Dur
Akış Şeması

http://www.banadersanlat.com/index.php/algoritmalar/4399-algoritma-nedir.html

LINUX DERSLERİ - linux sunucuda Tüm klasörlere Erişimi engelleme WyNe rwxr-xr-x 1 08:50:00

Başlık LINUX DERSLERİ - linux sunucuda Tüm klasörlere Erişimi engelleme
Yetki rw-r--r--
Yazar WyNe
Zaman 08:50:00
Kategori
Share
linux sunucuda Tüm klasörlere  Erişimi engelleme 
Bir klasöre tüm erişimi engellemek istiyorsanız klasörün içinde .htaccess dosyası oluşturup içine
#deny all access
deny from all
yazmanız yeterli. Eğer bu klasöre yalnızca belirlediğiniz ip adresiyle veya ip bloğu tarafından erişilmesini istiyorsanız
#deny all access
deny from all
allow from 10.0.0.1 # tek ip adresi
allow from 192.168.0.0/24 # ip bloğu
yazmanız yeterli. Tek bir dosya için erişimi engellemek için ise yazmanız gereken şu:
Order allow,deny
Deny from all

LINUX DERSLERİ - Linux sunucuda Dosyaları Gizlemek WyNe rwxr-xr-x 0 08:48:00

Başlık LINUX DERSLERİ - Linux sunucuda Dosyaları Gizlemek
Yetki rw-r--r--
Yazar WyNe
Zaman 08:48:00
Kategori
Share

LİNUX SUNUCUDA TÜM DOSYALARI GİZLEMEK : BELİRLİ DOSYALARA ERİŞİMİ ENGELLEMEK İÇİN FİLESDİREKTİFİYLE BİRLİKTE REGULAR EXPRESSİON KULLANABİLİRSİNİZ. ÖRNEK OLARAK KONFİGÜRASYON DOSYALARINA, ROBOT.TXT?E VEYA LOG?LARA ERİŞİMİ ENGELLEMEK İSTEYEBİLİRSİNİZ. AŞAĞIDAKİ ÖRNEK KLASÖRDEKİ .HT İLE BAŞLAYAN  DOSYALARA ERİŞİMİ ENGELLEMEKTEDİR.
 

ORDER ALLOW,DENY
DENY FROM ALL
SATİSFY ALL

http://www.banadersanlat.com/index.php/linux-dersleri/745-linux-sunucuda-dosyalar-gizlemek.html

LINUX DERSLERİ - HTTP 404 Hata Sayfasını düzenleme WyNe rwxr-xr-x 0 08:47:00

Başlık LINUX DERSLERİ - HTTP 404 Hata Sayfasını düzenleme
Yetki rw-r--r--
Yazar WyNe
Zaman 08:47:00
Kategori
Share

HTTP 404 HATA SAYFASINI DÜZENLEME : ZİYARETÇİLERİNİZ ?404: SAYFA BULUNAMADI? HATASIYLA KARŞILAŞACAKLARINDA SİZİN İSTEDİĞİNİZ BİR DOSYAYA YÖNLENMELERİNİ SAĞLAMAK İÇİN AŞAĞIDAKİ KODU KULLANABİLİRSİNİZ.

ErrorDocument 404 /errors/notfound.html

http://www.banadersanlat.com/index.php/linux-dersleri/746-http-404-hata-sayfasn-duezenleme.html

LINUX DERSLERİ - htacces ile dosyaları klasör olarak gösterme WyNe rwxr-xr-x 0 08:46:00

Başlık LINUX DERSLERİ - htacces ile dosyaları klasör olarak gösterme
Yetki rw-r--r--
Yazar WyNe
Zaman 08:46:00
Kategori
Share
htacces ile dosyaları klasör olarak gösterme
.htacces dosyasına yazılacak 

RewriteEngine on

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

*********

gelen linkimiz
http://www.dizzin.com/sehirler/34

***********************************************

php dosyası

**********************

<?php

$url = explode("/",$_GET['q']);

if (isset($url[0]) && $url[0] == 'sehirler' && isset($url[1]) && isnumeric($url[1])) {
include('sehirler.php'); 
exit();
}

//yukarıdaki if bloğunuzu oluşturacağınız klasör sayısı kadar yazmalısınız. Bu blokların hepsinden geçeni ise ana sayfaya yönlendirebilirsiniz.

http://www.banadersanlat.com/index.php/linux-dersleri/1233-htacces-ile-dosyalar-klasoer-olarak-goesterme.html
Blogger tarafından desteklenmektedir.