当前位置:首页 > 编程笔记 > 正文
已解决

2024拼多多校招面试真题汇总及其解答(二)

来自网友在路上 173873提问 提问时间:2023-09-20 21:11:25阅读次数: 73

最佳答案 问答题库738位专家为你答疑解惑

6. 【算法题】归并排序

归并排序(Merge Sort)是一种分治算法,它将待排序的序列递归地分成两个子序列,然后将两个有序的子序列合并成一个有序的序列。

归并排序的算法流程如下:

  1. 递归地将待排序的序列分成两个子序列,直到每个子序列只有一个元素。
  2. 将两个有序的子序列合并成一个有序的序列。

归并排序的代码实现如下:

// 归并排序
public static void mergeSort(int[] arr) {if (arr.length <= 1) {return;}// 将待排序的序列分成两个子序列int mid = arr.length / 2;int[] left = Arrays.copyOfRange(arr, 0, mid);int[] right = Arrays.copyOfRange(arr, mid, arr.length);// 递归地排序两个子序列mergeSort(left);mergeSort(right);// 将两个有序的子序列合并成一个有序的序列merge(left, right, arr);
}// 合并两个有序的子序列
private static void merge(int[] left, int[] right, int[] arr) {int i = 0, j = 0, k = 0;while (i < left.length && j < right.length) {if (left[i] < right[j]) {arr[k++] = left[i++];} else {
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"2024拼多多校招面试真题汇总及其解答(二)":http://eshow365.cn/6-10220-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!