python 合并排序
来源:互联网 发布:淘宝街拍用什么镜头 编辑:程序博客网 时间:2024/06/05 07:58
class MergeSort():
def __init__(self,array_list, flag = 1):
self.array_list = array_list
self.flag = flag #1升幂0降幂
def merge_sort(self, low, high):
if low < high:
mid = (low + high) / 2
self.merge_sort(low,mid)
self.merge_sort(mid +1, high)
self.merge(low, mid, high)
def merge(self, low, mid, high):
list_a = self.array_list[low:mid+1]
list_b = self.array_list[mid+1:high+1]
i = 0
j = 0
a = len(list_a)
b = len(list_b)
while i < a or j < b and low< high:
if i >= a and j < b:
self.array_list[low] = list_b[j]
j += 1
elif j >= b and i < a:
self.array_list[low] = list_a[i]
i += 1
elif i < a and j < b:
if self.flag:
if list_a[i] < list_b[j]:
self.array_list[low] = list_a[i]
i += 1
else:
self.array_list[low] = list_b[j]
j += 1
else:
if list_a[i] > list_b[j]:
self.array_list[low] = list_a[i]
i += 1
else:
self.array_list[low] = list_b[j]
j += 1
low += 1
if __name__ == '__main__':
list_result = [3,2,5,9,7,6,1,8]
sort = MergeSort(list_result,0)
sort.merge_sort(0,len(list_result)-1)
#sort.merge_sort(0,4)
print sort.array_list
- python 合并排序
- python实现合并排序
- Python之合并排序
- LintCode Python 合并排序数组
- 算法导论合并排序算法python实现
- 合并两个已排序数组(Python代码)
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- UVa 557 - Burger
- 转:linux GPIO驱动
- 学生信息管理系统--登录调试(错误‘91’)
- 索骥馆-效率管理之《凡事巧于方法:分析问题和解决问题的精妙解析》高清扫描版[PDF]
- 十进制转化16进制,8进制
- python 合并排序
- 框架对Struts2的扩展
- 对图片学习的记录
- ubuntu 12.04中安装svn服务器
- postfix反垃圾邮件说明
- hdu 4605-Magic Ball Game(树状数组)
- HashSet的用法
- 如何通过微信创业赚钱
- HTC Desire (G7)救砖过程