Advertisement
Guest User

Implementare

a guest
Apr 24th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.04 KB | None | 0 0
  1. #ALGORITMII
  2. it=0
  3. #algoritmul de sortare prin selecție directă
  4. def selectie(v):#OK
  5.     n=len(v)
  6.     for i in range(n-1):
  7.         for j in range(i+1,n):
  8.             if v[i]>v[j]:
  9.                 aux=v[i]
  10.                 v[i]=v[j]
  11.                 v[j]=aux
  12.     return v
  13. #algoritmul de sortare prin metoda bulelor
  14. def buble_sort(v):#OK
  15.     ok=True
  16.     n=len(v)
  17.     while(ok==True):
  18.         ok=False
  19.         for i in range(n-1):
  20.             if v[i]>v[i+1]:
  21.                 aux=v[i]
  22.                 v[i]=v[i+1]
  23.                 v[i+1]=aux
  24.                 ok=True
  25.         n=n-1
  26.     return v
  27. #algoritmul de sortare prin metoda bulelor inbunatatit
  28. def buble_sort2(v):#OK
  29.     ok=True
  30.     n=len(v)
  31.     while(ok==True):
  32.         ok=False
  33.         for i in range(n-1):
  34.             if v[i]>v[i+1]:
  35.                 aux=v[i]
  36.                 v[i]=v[i+1]
  37.                 v[i+1]=aux
  38.                 ok=True
  39.         n=n-1
  40.     return v
  41. #algoritmul de sortare prin insertie
  42. def insertie(v):#OK
  43.     n=len(v)
  44.     for i in range(1,n):
  45.         k=i-1;
  46.         aux=v[i]
  47.         while (k>=0 and aux<v[k]):
  48.             v[k+1]=v[k]
  49.             k=k-1;
  50.         v[k+1]=aux;
  51.     return v
  52. #algoritmul de sortare prin sortare rapida
  53. def quick_sort(v,pi,ps):#OK
  54.     a, b=pi, ps
  55.     mij=(a+b)//2
  56.     while a<=b:
  57.         while v[a]<v[mij]:
  58.             a=a+1
  59.         while v[b]>v[mij]:
  60.             b=b-1
  61.         if a<=b:
  62.             aux=v[a]
  63.             v[a]=v[b]
  64.             v[b]=aux
  65.             a=a+1
  66.             b=b-1
  67.     if a<ps:
  68.         quick_sort(v,a,ps)
  69.     if b>pi:
  70.         quick_sort(v,pi,b)
  71.     return v
  72. #algoritmul de sortare prin interclasare
  73. def merge_sort(v):#OK
  74.     def interclas(i,m,j):
  75.         b=[0]*len(v)
  76.         x=i
  77.         k=0
  78.         y=m+1
  79.         while(x<=m and y<=j):
  80.             if v[x]<v[y]:
  81.                 b[k]=v[x]
  82.                 k, x=k+1, x+1
  83.             else:
  84.                 b[k]=v[y]
  85.                 k, y=k+1, y+1
  86.         while x<=m:
  87.             b[k]=v[x]
  88.             k, x=k+1, x+1
  89.         while y<=j:
  90.             b[k]=v[y]
  91.             k, y=k+1, y+1
  92.         t=i
  93.         for k in range(0,j-i+1):
  94.             v[t]=b[k]
  95.             t=t+1
  96.  
  97.     def divimp(i,j):
  98.         if i<j:
  99.             m=(i+j)//2
  100.             divimp(i,m)
  101.             divimp(m+1,j)
  102.             interclas(i,m,j)
  103.    
  104.     divimp(0,len(v)-1)
  105.     return v
  106. #IMPLEMENTARE
  107. from random import randint#folosita pentru a genera numre in mod aleator
  108. import time#folosită pentru cronometrarea timpilor de execuție
  109. v=[]#sirul care se sorteaza
  110. for i in range(100000):#dimesiune array
  111.     v.append(i)##functia de generare a sirului ex:i,i-1,randint()
  112. #EXECUTIE
  113. print("start")
  114. start = time.time()
  115. quick_sort(v,0,len(v)-1)
  116. end=time.time()
  117. print(float(end - start))
  118. #EXECUTIE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement