[算法导论]merge sort @ Python
2014-08-17 15:17
471 查看
import sys class mergesort(): def merge_sort(self, A, p, r): if p < r: q = (p + r) / 2 self.merge_sort(A, p, q) self.merge_sort(A, q+1, r) self.merge(A, p, q, r) return A def merge(self, A, p, q, r): n1 = q - p + 1 n2 = r - q L = [0 for i in range(n1+1)] R = [0 for i in range(n2+1)] for i in range(n1): L[i] = A[p+i] for j in range(n2): R[j] = A[q+j+1] L[n1] = sys.maxint R[n2] = sys.maxint i = 0; j = 0 for k in range(p, r): if L[i] <= R[j]: A[k] = L[i] i += 1 else: A[k] = R[j] j += 1 sort = mergesort() A = [1,3,5,7,9,2,4,6,8,10] print sort.merge_sort(A, 0, len(A)-1)
相关文章推荐
- algorithm: heap sort in python 算法导论 堆排序
- 【算法导论】2-2 二路归并排序(分治)merge-sort 和逆序对的问题
- 【算法导论学习-002】归并排序(MergeSort)
- Algorithm: quick sort implemented in python 算法导论 快速排序
- 实现算法导论第三版中的MergeSort
- merge_sort相比算法导论简易版本实现
- 算法导论:分治法,python实现合并排序MERGE-SORT
- 插入排序(insert_sort)与 并归排序(merge_sort) 算法分析
- python mergesort 小思考,请高手指点
- 基本数据结构(算法导论)与python
- mergesort in python
- MergeSort(归并排序)算法Java实现
- 算法上机题目mergesort,priority queue,Quicksort,divide and conquer
- 归并排序(merge sort)算法实现
- 算法学习笔记 —— MergeSort 的一种循环实现
- 算法第三次作业(1. 排序。对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW
- 读书笔记:算法导论第2章 第1节 Insertion sort
- 基本数据结构(算法导论)与python
- 算法:合并排序(Merge Sort)
- 堆(算法导论 part1 foundations, chapter 6 heapsort)