Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ALGORITMII
- it=0
- #algoritmul de sortare prin selecție directă
- def selectie(v):#OK
- n=len(v)
- for i in range(n-1):
- for j in range(i+1,n):
- if v[i]>v[j]:
- aux=v[i]
- v[i]=v[j]
- v[j]=aux
- return v
- #algoritmul de sortare prin metoda bulelor
- def buble_sort(v):#OK
- ok=True
- n=len(v)
- while(ok==True):
- ok=False
- for i in range(n-1):
- if v[i]>v[i+1]:
- aux=v[i]
- v[i]=v[i+1]
- v[i+1]=aux
- ok=True
- n=n-1
- return v
- #algoritmul de sortare prin metoda bulelor inbunatatit
- def buble_sort2(v):#OK
- ok=True
- n=len(v)
- while(ok==True):
- ok=False
- for i in range(n-1):
- if v[i]>v[i+1]:
- aux=v[i]
- v[i]=v[i+1]
- v[i+1]=aux
- ok=True
- n=n-1
- return v
- #algoritmul de sortare prin insertie
- def insertie(v):#OK
- n=len(v)
- for i in range(1,n):
- k=i-1;
- aux=v[i]
- while (k>=0 and aux<v[k]):
- v[k+1]=v[k]
- k=k-1;
- v[k+1]=aux;
- return v
- #algoritmul de sortare prin sortare rapida
- def quick_sort(v,pi,ps):#OK
- a, b=pi, ps
- mij=(a+b)//2
- while a<=b:
- while v[a]<v[mij]:
- a=a+1
- while v[b]>v[mij]:
- b=b-1
- if a<=b:
- aux=v[a]
- v[a]=v[b]
- v[b]=aux
- a=a+1
- b=b-1
- if a<ps:
- quick_sort(v,a,ps)
- if b>pi:
- quick_sort(v,pi,b)
- return v
- #algoritmul de sortare prin interclasare
- def merge_sort(v):#OK
- def interclas(i,m,j):
- b=[0]*len(v)
- x=i
- k=0
- y=m+1
- while(x<=m and y<=j):
- if v[x]<v[y]:
- b[k]=v[x]
- k, x=k+1, x+1
- else:
- b[k]=v[y]
- k, y=k+1, y+1
- while x<=m:
- b[k]=v[x]
- k, x=k+1, x+1
- while y<=j:
- b[k]=v[y]
- k, y=k+1, y+1
- t=i
- for k in range(0,j-i+1):
- v[t]=b[k]
- t=t+1
- def divimp(i,j):
- if i<j:
- m=(i+j)//2
- divimp(i,m)
- divimp(m+1,j)
- interclas(i,m,j)
- divimp(0,len(v)-1)
- return v
- #IMPLEMENTARE
- from random import randint#folosita pentru a genera numre in mod aleator
- import time#folosită pentru cronometrarea timpilor de execuție
- v=[]#sirul care se sorteaza
- for i in range(100000):#dimesiune array
- v.append(i)##functia de generare a sirului ex:i,i-1,randint()
- #EXECUTIE
- print("start")
- start = time.time()
- quick_sort(v,0,len(v)-1)
- end=time.time()
- print(float(end - start))
- #EXECUTIE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement