merge sort
来源:互联网 发布:君何以知燕王翻译 编辑:程序博客网 时间:2024/06/10 15:36
三大排序方法之一:
merge sort
Given an integer array, sort it in ascending order. Use selection sort, bubble sort, insertion sort or any O(n2) algorithm.
java
public class Solution { /* * @param A: an integer array * @return: */ public void sortIntegers(int[] A) { // write your code here if (A == null || A.length == 0) { return; } sort(A, 0, A.length - 1, new int[A.length]); } private void sort(int[] A, int start, int end, int[] temp) { if (start >= end) { return; } int mid = (start + end) / 2; sort(A, start, mid, temp); sort(A, mid + 1, end, temp); merge(A, start, end, temp); } private void merge(int[] A, int start, int end, int[] temp) { int mid = (start + end) / 2; int index = start; int left = start; int right = mid + 1; while (left <= mid && right <= end) { if (A[left] < A[right]) { temp[index++] = A[left++]; } else { temp[index++] = A[right++]; } } while (left <= mid) { temp[index++] = A[left++]; } while (right <= end) { temp[index++] = A[right++]; } for (int i = start; i <= end; i++){ A[i] = temp[i]; } }}
python
class Solution: """ @param: A: an integer array @return: """ def sortIntegers(self, A): # write your code here if A is None or len(A) == 0: return self.sortx(A, 0, len(A) - 1, [0] * len(A)) def sortx(self, A, start, end, temp): if start >= end: return mid = (start + end) / 2 self.sortx(A, start, mid, temp) self.sortx(A, mid + 1, end, temp) self.merge(A, start, end, temp) def merge(self, A, start, end, temp): mid = (start + end) / 2 left = start right = mid + 1 index = start while left <= mid and right <= end: if A[left] < A[right]: temp[index] = A[left] index += 1 left += 1 else: temp[index] = A[right] index += 1 right += 1 while left <= mid: temp[index] = A[left] index += 1 left += 1 while right <= end: temp[index] = A[right] index += 1 right += 1 for i in range(start, end + 1): A[i] = temp[i]
阅读全文
0 0
- 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
- merge sort
- python队列Queue
- 解决wow插件 与fullpage插件的冲突
- vim命令
- 线程通信与MQ
- 权限设置(简易版)
- merge sort
- 05_和最大子矩阵
- android获取控件宽度
- g20在ubuntu16.04中编译ORBSLAM2的问题解决
- String的format用法及MessageFormat的format的用法
- sublime Text 3实现对java编译执行
- js class继承
- hadoopstreaming
- 使用ajax提交form表单,包括ajax文件上传,转载