Üye
Selam arkadaşlar! Ben Septillioner
Not: Bu postu verimli anlamak için temel Python bilgisi gerekir.
Esrarcash arkadaşım @cylops isteği üzerine geldim bir şeyler paylaşmak için.
Artık böyle parça parça algoritma ve programlar paylaşıcam.
hem size yarar,
hem bana bir şeyler katar.
Neyse fazla boş konuşmadan başlayalım.
Python: 3.5 kullanarak yazdım. önemli olan mantığını kavramanız. ama 2.7 de çalışabilir.
İlk Olarak En Çok bilinen Bubble Sort Algoritmasını öğrenelim adettendir.
Kod
Çıktı
Kodumuz ve çıktımız bu şimdi yorumlama kısmına geçelim.
Kısaca mantığını kavrayalım
Amacımız Listeyi döngüye sokup, tek tek biri diğerinden büyükse yer değiştirmek. döngü böyle devam ettikçe büyükten küçüğe veya küçükten büyüğe sıralayabiliriz.
Bu gif anlamanız için yeterli olur. Eğer anlamazsanız yorumlarda belirtin bir dahaki postlarımda daha dikkatli olayım.
Satırları Yorumlayalım
Satır 1 ;
Birinci satırda BubbleSort Adında bir fonksiyon oluşturmak istediğimi ve bunun liste adında bir parametre almasını istedim ve bu parametre değer olarak "liste" değişkenine aktarılır.
Satır 2 ve 3 ;
Bu kısımda listenin uzunluğu kadar bir döngüye sokuyoruz.
len(liste) listenin uzunluğunu.
range(listeuzunlugu) range ise listenin uzunluğunu alır ve 0 dan listenin uzunluğuna kadar uzanan bir sayı arrayı oluşturur(numpy daki linspace ile yakından benzerdir). fazla detaya girmiyeceğim bu şekilde listedeki elemanları kontrol ediyoruz.
Satır 4;
Burda teker teker birbirlerini karşılaştırıyoruz. Ve diyebilirsiniz neye göre büyükten küçükğe sıralancak > bu işaret Büyükse anlamına < bu işaret ise Küçük anlamına gelmekte.
eğer > işaretini kullanırsanız büyükten küçüğe
eğer < işaretini kullanırsanız küçükten büyüğe sıralanır.
alternetif olarak liste ve liste[j] nin yerini değiştirsenizde büyükten küçüğe küçükten büyüğe olabilir.
Satır 5,6 ve 7;
Evet bu kısım çalıştığına göre bir sayı diğer sayıdan büyükmüş demekki bunların yerlerini değişterilim anlamına geliyor.
5 de liste elemanını bir değişkene depoluyoruz
6 da burda liste nin yerine liste[j] yi koyuyoruz
7 de ise 5 de depoladığımız değişkeni liste[j] ye koyuyoruz.
Satır 8;
return fonksiyonu ile listeyi döndürüyoruz.
Satır 9;
BubbleSort Fonksiyonunu duzenlenmisliste değiskenini olarak tanımladığımda. BubbleSort fonksiyonda return komudu ile ne döndürse o atanır. Eğer döndürülmezse None olarak atanır.
Satır 10;
Bu kısımda listemizi yazdırıyoruz. str fonksiyonunu kullanmamın sebebi; print fonksiyonu string tipinde parametre alıyor. bizde listeyi stringe dönüşütürüyoruz.
Evet algoritmamız bu kadar basitti eğer dediklerimden bir şey anlamıyorsanız notu okumamışsınız veya temel bilginiz yoktur.
Dediğim gibi mantığını anlamanız en önemli şey. Ezberlemeyin! Anlayın, anladıktan sonra zaten mantığını kavradığınız için kendiniz bile yazabilirsiniz.
Yardımcı oluysam ne mutlu bana.
Burdan Esrarcash @cylops selamlar.
Not: Bu postu verimli anlamak için temel Python bilgisi gerekir.
Esrarcash arkadaşım @cylops isteği üzerine geldim bir şeyler paylaşmak için.
Artık böyle parça parça algoritma ve programlar paylaşıcam.
hem size yarar,
hem bana bir şeyler katar.
Neyse fazla boş konuşmadan başlayalım.
Python: 3.5 kullanarak yazdım. önemli olan mantığını kavramanız. ama 2.7 de çalışabilir.
İlk Olarak En Çok bilinen Bubble Sort Algoritmasını öğrenelim adettendir.
Kod
Python:
def BubbleSort(liste): #1
for i in range(len(liste)): #2
for j in range(len(liste)): #3
if(liste[i]>liste[j]): #4
tmp=liste[i] #5
liste[i]=liste[j] #6
liste[j]=tmp #7
return liste #8
duzenlenmisliste = BubbleSort([1,4,2,5,8,2,3]) #9
print(str(duzenlenmisliste)) #10
Python:
>[8, 5, 4, 3, 2, 2, 1]
Kısaca mantığını kavrayalım
Amacımız Listeyi döngüye sokup, tek tek biri diğerinden büyükse yer değiştirmek. döngü böyle devam ettikçe büyükten küçüğe veya küçükten büyüğe sıralayabiliriz.
Bu gif anlamanız için yeterli olur. Eğer anlamazsanız yorumlarda belirtin bir dahaki postlarımda daha dikkatli olayım.
Satırları Yorumlayalım
Satır 1 ;
Birinci satırda BubbleSort Adında bir fonksiyon oluşturmak istediğimi ve bunun liste adında bir parametre almasını istedim ve bu parametre değer olarak "liste" değişkenine aktarılır.
Satır 2 ve 3 ;
Bu kısımda listenin uzunluğu kadar bir döngüye sokuyoruz.
len(liste) listenin uzunluğunu.
range(listeuzunlugu) range ise listenin uzunluğunu alır ve 0 dan listenin uzunluğuna kadar uzanan bir sayı arrayı oluşturur(numpy daki linspace ile yakından benzerdir). fazla detaya girmiyeceğim bu şekilde listedeki elemanları kontrol ediyoruz.
Satır 4;
Burda teker teker birbirlerini karşılaştırıyoruz. Ve diyebilirsiniz neye göre büyükten küçükğe sıralancak > bu işaret Büyükse anlamına < bu işaret ise Küçük anlamına gelmekte.
eğer > işaretini kullanırsanız büyükten küçüğe
eğer < işaretini kullanırsanız küçükten büyüğe sıralanır.
alternetif olarak liste ve liste[j] nin yerini değiştirsenizde büyükten küçüğe küçükten büyüğe olabilir.
Satır 5,6 ve 7;
Evet bu kısım çalıştığına göre bir sayı diğer sayıdan büyükmüş demekki bunların yerlerini değişterilim anlamına geliyor.
5 de liste elemanını bir değişkene depoluyoruz
6 da burda liste nin yerine liste[j] yi koyuyoruz
7 de ise 5 de depoladığımız değişkeni liste[j] ye koyuyoruz.
Satır 8;
return fonksiyonu ile listeyi döndürüyoruz.
Satır 9;
BubbleSort Fonksiyonunu duzenlenmisliste değiskenini olarak tanımladığımda. BubbleSort fonksiyonda return komudu ile ne döndürse o atanır. Eğer döndürülmezse None olarak atanır.
Satır 10;
Bu kısımda listemizi yazdırıyoruz. str fonksiyonunu kullanmamın sebebi; print fonksiyonu string tipinde parametre alıyor. bizde listeyi stringe dönüşütürüyoruz.
Evet algoritmamız bu kadar basitti eğer dediklerimden bir şey anlamıyorsanız notu okumamışsınız veya temel bilginiz yoktur.
Dediğim gibi mantığını anlamanız en önemli şey. Ezberlemeyin! Anlayın, anladıktan sonra zaten mantığını kavradığınız için kendiniz bile yazabilirsiniz.
Yardımcı oluysam ne mutlu bana.
Burdan Esrarcash @cylops selamlar.
Son düzenleme: