python实现的一种排序方法

来源:互联网 发布:mysql支持多少并发 编辑:程序博客网 时间:2024/06/08 09:22

在处理数据比较多的时候,适用的一种排序方法




#!/usr/bin/python# coding:utf-8class SQList:def __init__(self,list=None):self.r=listdef swap(self,i,j):temp=self.r[i]self.r[i]=self.r[j]self.r[j]=tempdef heap_sort(self):length =len(self.r)i=int(length/2)while(i>=0):print ("in the heap_sort, length=%d , i =%d" % (length,i))self.heap_adjust(i,length-1)i -=1j=length-1while j>0:print ("in the heap_sort, length=%d , j=%d" % (length,j))self.swap(0,j)self.heap_adjust(0,j-1)j -=1def heap_adjust(self,s,m):list=self.rtemp=list[s]i = 2*sprint ("in the heap_adjust, s=%d , m =%d i =%d" % (s,m,i))while i<=m:if i<m and list[i]< list[i+1]:i +=1if temp >=list[i]:breaklist[s]=list[i]s=ii *=2list[s]=tempprint("after i=%d, the list is %s" % (i,self.r))def __str__(self):ret=""for i in self.r:ret +=" %s" % ireturn retif __name__ == '__main__':sqlist = SQList([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])print(sqlist)sqlist.heap_sort()print(sqlist)


原创粉丝点击