Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Mon Nov 19 10:36:25 2018
- @author: pytlpawe
- """
- import random
- random.seed()
- lista = []
- dlugosc = 10
- for x in range (dlugosc):
- lista.append (random.randrange(10))
- print (lista[x], end=" ")
- print ("\n\n")
- kopiec = []
- posortowane = []
- #tworzenie kopca
- for i in range (dlugosc):
- kopiec.append (lista[i])
- nr = i
- while (nr>0):
- if (nr % 2 == 0):
- rodzic = int (nr/2) + 1
- else:
- rodzic = int (nr/2)
- if (kopiec[nr]>kopiec[rodzic]):
- kopiec [nr], kopiec [rodzic] = kopiec [rodzic], kopiec [nr]
- nr = rodzic
- else:
- break
- for x in range (dlugosc):
- print (kopiec [x], end=" ")
- print ("\n\n")
- #rozbior kopca
- higher = 0
- for j in range (dlugosc):
- posortowane.append (kopiec [0])
- ost_index = dlugosc-2-j
- kopiec [0] = kopiec [ost_index]
- kopiec.remove (kopiec [ost_index])
- nr = ost_index
- #ustalam czy ostatni z kopca jest jedynym dzieckiem
- higher_index = nr
- if (nr % 2 == 0):
- if (kopiec[ost_index-1] > kopiec[ost_index]):
- higher_index = nr-1
- nr = higher_index
- while (nr>0):
- if (nr % 2 == 0):
- rodzic = int (nr/2) + 1
- else:
- rodzic = int (nr/2)
- if (kopiec[nr]>kopiec[rodzic]):
- kopiec [nr], kopiec [rodzic] = kopiec [rodzic], kopiec [nr]
- nr = rodzic
- else:
- break
- if (nr % 2 == 0):
- if (kopiec[nr-1]>kopiec[nr]):
- nr = nr-1
- else:
- if (kopiec[nr+1]>kopiec[nr]):
- nr = nr+1
- for y in range (dlugosc):
- print (posortowane [y], end=" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement