git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			707 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			707 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from math import floor
 | 
						|
 | 
						|
class Heap(object):
 | 
						|
    def __init__(self):
 | 
						|
        self.xs = [None]
 | 
						|
        self.i = 1
 | 
						|
 | 
						|
    def __repr__(self):
 | 
						|
        return "[{}]".format(", ".join(str(x) for x in self.xs[1:]))
 | 
						|
 | 
						|
    def insert(self, x):
 | 
						|
        if len(self.xs) == 1:
 | 
						|
            self.xs.append(x)
 | 
						|
            self.i += 1
 | 
						|
            return
 | 
						|
        self.xs.append(x)
 | 
						|
        i = self.i
 | 
						|
        while i != 1 and self.xs[floor(i / 2)] > self.xs[i]:
 | 
						|
            self.xs[floor(i / 2)], self.xs[i] = self.xs[i], self.xs[floor(i / 2)]
 | 
						|
            i = floor(i / 2)
 | 
						|
        self.i += 1
 | 
						|
 | 
						|
    def root(self):
 | 
						|
        return self.xs[1]
 | 
						|
 | 
						|
xs = Heap()
 | 
						|
print(xs)
 | 
						|
for x in [12, 15, 14, 21, 1, 10]:
 | 
						|
    xs.insert(x)
 | 
						|
    print(xs)
 |