Laboratoriya ish — 1 Mavzu: Ma’lumotlarni saralash algoritmlarining murakkabligini tahlil qilish. Ustuvor navbatlar. Bajardi: Sobirov Akhmadjon Guruhi: 007-L3 Variant 9


Tezkor saralash (Quicksort) (Python)


Download 190.78 Kb.
bet2/2
Sana31.05.2020
Hajmi190.78 Kb.
#112622
1   2
Bog'liq
Algo Lab#1

2. Tezkor saralash (Quicksort) (Python)

def quicksort(array):


if len(array) < 2:
return array
low, same, high = [], [], []
pivot = array[randint(0, len(array) - 1)]
for item in array:
if item < pivot:
low.append(item)
elif item == pivot:
same.append(item)
elif item > pivot:
high.append(item)
return quicksort(low) + same + quicksort(high)
array = []
for i in range(200):
array.append(randint(1,10000))
array = quicksort(array)


3. Kiritish saralash (Insertion Sort) (Python)


#Insertion sort (Kiritish saralash)
from random import randint
def insertion_sort(array):
for i in range(1, len(array)):
key_item = array[i]
j = i - 1
while j >= 0 and array[j] > key_item:
array[j + 1] = array[j]
j -= 1
array[j + 1] = key_item
return array

massiv = []


for i in range(200):
massiv.append(randint(1,10000))
massiv = insertion_sort(massiv)




Saralash metodi




Kompilyatsiya vaqti (sekundlarda)

























200 ta element




1500 element




4000 element



















Tezkor saralash

0,059




0,077




0,093

(quick Sort)


































Kiritish saralash

0,028




0,088




0,467

(insertion sort)


































Pufakchali saralash

0,037




0,211




0,942

(booble sort)



































2 — Topshiriq
from random import randint
from queue import PriorityQueue


  • N elementda iborat ustuvor navbat yaratish array = PriorityQueue()

array_1 = PriorityQueue()
#Ustuvor navbatga elemetn qo'shish
for i in range(10):
array.put(randint(1,100))
array_1.put(randint(1,50))
while array:
print(array.get())
#Eng katta elementni yechib olish
print(max(array))
#Qandaydir elementini yechib olish
print(array.get())
#Ikkita ustuvor navbatni qo'shish
new_queue = array + array_1
while new_queue:
print(new_queue.get())
Download 190.78 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling