Sıralama Algoritma Python 3 Kodları

Sıralama Algoritma Python 3 Kodları

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)) + "]"

    Yazar Hakkında

    Benzer yazılar

    Yanıt verin.

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir