Python - Merge Sort
来源:互联网 发布:java中array的用法 编辑:程序博客网 时间:2024/06/03 23:05
import randomdef merge(arr, l, p, r): left = arr[l: p+1] #copy left part, including p right = arr[p+1: r+1] #copy right part, start from p+1 i = 0 j = 0 k = l #start from the left while i < len(left) and j < len(right): if left[i] < right[j]: arr[k] = left[i] i = i + 1 else: arr[k] = right[j] j = j + 1 k = k + 1 while i < len(left): arr[k] = left[i] i = i + 1 k = k + 1 while j < len(right): arr[k] = right[j] j = j + 1 k = k + 1def merge_sort(arr, l, r): if l < r: p = int((l + r) / 2) merge_sort(arr, l, p) #sort [1, p] merge_sort(arr, p+1, r) #sort[p + 1 ... end] merge(arr, l, p, r) if __name__ == '__main__': sample = [random.randrange(0, 100, 1) for i in range(10)] original = sample[:] print('Before: %s'%original) merge_sort(sample, 0, len(sample)-1) print('After: %s'%sample) print('Corrected: %s'%(sample == sorted(original)))
0 0
- Python实现merge sort
- Python - Merge Sort
- Merge Sort
- Merge sort
- merge sort
- merge sort
- merge sort
- Merge Sort
- merge sort
- Merge Sort
- Merge Sort
- merge sort
- Merge Sort
- Merge sort
- Merge-sort
- Merge Sort
- Merge sort
- Merge Sort
- UVA_540: Team Queue
- NSData相关的两个待解决问题
- 分区助手:帮着把系统盘分区变大
- Android 学习笔记9——socket通信
- yum用法第二篇-自定义创建yum仓库
- Python - Merge Sort
- android 模拟器命令 附:模拟器不能联网设置
- Socket学习笔记
- myeclipse 删除不再使用的工作空间记录
- 登陆成功
- QT5 学习之路20---标准对话框 QMessageBox
- HDU-5122-K.Bro Sorting
- Binder进程间通信机制的Service Manager代理对象获取过程
- 获取datagridview某列的列名