/将有序数组a[]和b[]合并到c[]中
void MemeryArray(int a[], int n, int b[], int m, int c[])
{
int i, j, k;
i = j = k = 0;
while (i < n && j < m)
{
if (a[i] < b[j])
c[k++] = a[i++];
else
c[k++] = b[j++];
}
while (i < n)
c[k++] = a[i++];
while (j < m)
c[k++] = b[j++];
}
python3:
思想:
1.分而治之
2.采用递归的方法
def merge_sort(lists):
if len(lists) <= 1:
return lists
num = int(len(lists)/2)
left = merge_sort(lists[:num])
right = merge_sort(lists[num:])
return merge(left, right)
def merge(left, right):
ri, le = 0, 0
result = []
while le < len(left) and ri < len(right):
if left[le] < right[ri]:
result.append(left[le])
le += 1
else:
result.append(right[ri])
ri += 1
result += left[le:] # 剩下的左边的
result += right[ri:] # 剩下的右边的
return result
print(merge_sort([15, 1, 3]))