python 排序
来源:互联网 发布:三利毛线专卖店淘宝 编辑:程序博客网 时间:2024/06/07 11:02
python 排序
python用for in range的方式真是不习惯,所以搜了一下:
for i in range(1, 5):
print i
输出是1,2,3,4
range(a,b)返回是 a到b-1
range(a)返回是0到a-1
range(a,b,2)返回的是从a到b-1,每次步长是2
所以range(1,10,2)返回是1,3,5,7,9
想要逆序怎么办,比如循环是9,8,7,6…
只要把步长改成-1 for i in range(9,5,-1)
输出是9,8,7,6
插入排序
def InsertSort(Array,start,end): for i in range(start+1,end+1): for j in range(i,start,-1): if Array[j]<Array[j-1]: temp = Array[j] Array[j] = Array[j-1] Array[j-1] = temparray=[3,4,1,9,6,7,0,2,8,5,21,45,76,22,90,101,25,-1,33]InsertSort(array,0,18)print array
快速排序
def QuickSort(Array,start,end): print start,end if start<end: p = Partition(Array,start,end) QuickSort(Array,start,p-1) QuickSort(Array,p+1,end) else: print "to the end"def Partition(Array,start,end): tmp = Array[end] i = -1 for j in range(end-start): if Array[start+j]<tmp: i = i+1 temp = Array[start+i] Array[start+i] = Array[start+j] Array[start+j] = temp temp = Array[start+i+1] Array[start+i+1] = Array[end] Array[end] = temp print start+i+1,Array return start+i+1array=[3,4,1,9,6,7,0,2,8,5,21,45,76,22,90,101,25,-1,33]QuickSort(array,0,18)print array
堆排序
__author__ = 'zhang11'def HeapSort(array): length = len(array) for i in range(length,0,-1): Sort(array,i)def Sort(array,length): for i in range(length-1,0,-1): if array[i]>array[i/2]: temp = array[i] array[i] = array[i/2] array[i/2] = temp temp = array[length-1] array[length-1] = array[0] array[0] = temparray=[3,4,1,9,6,7,0,2,8,5,21,45,76,22,90,101,25,-1,33]HeapSort(array)print array# 在这个堆排序中,用到的是大顶堆,每次Sort都是将最大的值放到树顶,即a[0]的位置,接着将它和最后一个数交换,使得a[i...n] 是一个有序序列# 对于高为n的二叉树,节点总数为2^n -1; 叶子节点总数为2^(n-1)
0 0
- python 排序
- python 排序
- Python排序
- python 排序
- Python 排序
- 排序Python
- Python 排序
- python 排序
- python 排序
- python 排序
- python 排序
- Python 排序
- Python-排序
- python 排序
- Python 排序
- python排序
- python 排序
- Python排序
- JavaScript权威指南_62_第8章_函数_8.1-函数定义
- WPF 简介
- Python装饰器学习
- 【BZOJ 1082】 [SCOI2005]栅栏
- JavaScript权威指南_63_第8章_函数_8.2-函数调用
- python 排序
- make: 警告:检测到时钟错误。您的创建可能是不完整的。
- JavaScript权威指南_64_第8章_函数_8.3-函数的实参和形参
- ramfs--源码 Makefile
- android使用httppost向c# wcf发送数据总结
- JavaScript权威指南_65_第8章_函数_8.4-把函数作为值
- JavaScript权威指南_66_第8章_函数_8.5-将函数作为命名空间
- ECMAScript的数据类型(2)
- 黑马程序员——StringBuffer