
Sıralama algoritmalarından :
- Insertion sort
- Buble sort
- Radix sort
- Quick sort
- Merge sort
- Heap sort
Python 3.6 üzerinde yazılmış kodlarını aşağıda bulabilirsiniz. Yukarıda bahsettiğim tüm algoritmalar şuanda kodda mevcut değil en kısa sürede kod güncellenecektir.
##Bilal Saim 14.05.2013##
#########################
import math
class sort:
def __init__(self,list):
self.list = list
def Buble(self):
"Buble sort algorith by Bilisel"
"İki eleman sürekli karşılaştırılır büyük olanlar sola atılır"
if len(self.list) < 1:
print("Liste Ufak")
return
for i in range(0,len(self.list)):
for j in range(len(self.list)-1,i,-1):
if self.list[j-1]>self.list[j]:
tmp = self.list[j]
self.list[j] = self.list[j-1]
self.list[j-1] = tmp
def Insertion(self):
"Insertion sort algorithm by Bilisel"
"Desteden kağıt seçilip başka bir yerde sıralama taktiği 0(n^2)"
newList = []
while len(self.list) > 0:
x = 0
for j in range(0,len(newList)):
if self.list[0]<newList[j]:
break
else:
x = j+1
newList.insert(x,self.list[0])
del self.list[0]
self.list = newList
def Radix(self,maks = -1):
"Radix sort algorithm by Bilisel"
"Eğer Tek tek karşılaştırma yapılmazsa diğer liste kullanılırsa"
"2'lik tabana çevrilirse bellekte daha az yer tutar"
"Sadece çevirme işleminde zaman kaybedilebilir"
self.list = list(map(lambda x: int(bin(x)[2:]),self.list))
step = 1
tmp = 0
while 10**maks > step or maks == -1:
group = [[],[]]
for i in self.list:
if maks == -1:
tmp = lambda x: int(math.log10(i))+1 > tmp
pro = i / step
print(i)
print(pro)
print(math.floor(int(pro % 10)))
group[int(pro % 10)].append(i)
if maks == -1:
maks = tmp
self.list = group[0] + group[1]
step *= 10
self.list = list(map(lambda x: int(str(x),2),self.list))
def __str__(self):
return "[" + ", ".join(map(str,self.list)) + "]"