SHARE
TWEET

Implementare

a guest Apr 24th, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top