Python 快速排序 堆排序——Python实现一些算法持续更新
2014-09-27 17:02
756 查看
大四了为了追我喜欢的姑娘,我想找份北京的工作,可实力略弱,但我会学,现在恶补算法,看了好多大牛的Blog,自己也应该有点产出,回馈大家,让自由和共享继续
快速排序:
亡羊补牢为时未晚,学习算法学习coding学安全不是一朝一夕的事情,持之以恒。
期待一份北京的工作
————本篇Blog会持续更新,如有批评建议欢迎指正,共同进步
快速排序:
<span style="color:#660000;">#-*-coding:utf-8-*- '''Quick Sort write by miss chu ''' def quickSort(L,start,end): if start>=end: return start_=start end_=end pivot = L[start_] while start_<end_: while (start_<end_)and(L[end_]>=pivot): end_-=1 if start_<end_: L[start_] = L[end_] start_+=1 while (start_<end_)and(L[start_]<=pivot): start_+=1 if start_<end_: L[end_] = L[start_] end_-=1 L[start_] = pivot quickSort(L,start,start_-1) quickSort(L,start_+1,end) def swap(a,b): return b,a if __name__ == '__main__': print "Quick Sort" numlist = [5,9,2,4,1,7,3,6,8] quickSort(numlist,0,len(numlist)-1) print numlist</span>堆排序:
#-*-conding:utf-8-*- """Heap Sort by nianchu!""" def getLeftChild(i): return 2*i+1 def buildHeap(L,i,len): #At this place we build a big heap while i<=len and getLeftChild(i)<=len: temp = L[i] child = getLeftChild(i) if child+1<=len and L[child+1]>L[child] : child+=1 if L[child]>temp: L[i],L[child]=L[child],L[i] i=child def returnBigHeap(L,len): #And now we make a big heap and then we make L a list whos value is more and moer bigger i = len/2 while i>=0: buildHeap(L,i,len) i-=1 j=len while j>0: L[0],L[j] = L[j],L[0] j-=1 buildHeap(L,0,j) if __name__ == '__main__': print "Heap Sort" l = [1,5,6,9,4,2,3,7,8] returnBigHeap(l,len(l)-1) print l
归并排序:
<span style="font-size:14px;">#-*-coding:utf-8-*- def merge(list): if len(list)<=1: return list mid=len(list)/2 left=merge(list[:mid]) right=merge(list[mid:]) return mergeCore(left,right) def mergeCore(left,right): result=[] i=0 j=0 while i<len(left) and j<len(right): if left[i]<right[j]: result.append(left[i]) i+=1 else: result.append(right[j]) j+=1 result+=left[i:] result+=right[j:] return result if __name__ == '__main__': list = [1,4,3,2,7,6,5,9,8,0] print merge(list) #print list</span>
亡羊补牢为时未晚,学习算法学习coding学安全不是一朝一夕的事情,持之以恒。
期待一份北京的工作
————本篇Blog会持续更新,如有批评建议欢迎指正,共同进步
相关文章推荐
- 快速排序的算法思想及Python版快速排序的实现示例
- 算法基础:排序(三)——快速排序——Python实现
- 曾经遇到的一个面试题,快速排序用链表实现,算法和以前的相似,需要注意一些细节处理
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- 快速排序的算法思想及Python版快速排序的实现示例
- python 算法 排序实现快速排序
- 算法导论快速排序python实现
- 查找""排序""简单数学计算" "简单算法"[Java实现](数据结构和算法)(复习)(持续更新
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 冒泡排序、选择排序、堆排序、快速排序、插入排序算法复杂度分析与算法实现(自己总结与转)
- 算法基础:排序(三)——快速排序——Python实现
- 算法基础:排序(四)——二叉堆、优先队列、堆排序——Python实现
- 快速排序,归并排序,堆排序python实现
- python实现二叉树的相关算法(持续更新)
- 算法基础:排序(四)——二叉堆、优先队列、堆排序——Python实现
- 算法 排序 python 实现--堆排序
- 快速排序、堆排序、归并排序的python实现
- 利用Python实现快速算法排序
- 【更新】排序算法比较:插入排序,冒泡排序,归并排序,堆排序,快速排序,计数排序,基数排序,桶排序