python中冒泡排序和堆排序
class OrderNum:
@staticmethod
def BalloonOrder(nums):
temp=0
for i in range(len(nums)):
for j in range(len(nums)):
if(j>i and nums[i]>nums[j]):
temp=nums[i]
nums[i]=nums[j]
nums[j]=temp
for v in nums:
print(v)
@staticmethod
def HeapOrder(nums):
for i in range(int(len(nums)/2-1),-1,-1):
OrderNum.AdjustHeap(nums,i,len(nums))
for j in range(len(nums)-1,0,-1):
OrderNum.Swap(nums,0,j)
OrderNum.AdjustHeap(nums,0,j)
for v in nums:
print(v)
@staticmethod
def AdjustHeap(nums,i,length):
temp =nums[i]
k=2*i+1
while(k<length):
if(k+1<length and nums[k]<nums[k+1]):
k=k+1
if(temp>nums[k]):
break
nums[i]=nums[k]
i=k
k=2*k+1
nums[i] = temp
@staticmethod
def Swap(nums,a,b):
temp=nums[a]
nums[a]=nums[b]
nums[b]=temp
OrderNum.BalloonOrder([4,12,1,5,2,66,55,32,12,78,66,34,67,234,76])
OrderNum.HeapOrder([4,12,1,5,2,66,55,32,12,78,66,34,67,234,76])