当然可以用Java实现合并排序算法。 归并排序是一种分而治之的策略,它将问题递归地分解为更小的子问题,并将子问题的解合并到原始问题的解中。 下面是用Java实现合并排序的示例代码。
公共 类 合并排序 {
公共 静态 void main(String[] args) {
int[] arr = {9,8,7,6、5、4、3, 2, 1};
mergeSort(arr, 0, arr.length - 1);
(int num : arr) {
System.out.print(num + " ");
}
}
公共 静态 void 合并排序( int[] arr,int左,int 右) {
if(左和lt; 右) {
int mid = (左 + 右) / 2;
mergeSort(arr, left, middle); class="hljs-comment">// 左半部分合并排序
mergeSort(arr, middle + 1, right); ="hljs-comment">//合并右半部分并排序
merge(arr, left, middle, right) // 连接左右部分
}
}
public static void span> 合并(int[] arr, int left,int中,int右) {
int[] temp = 新 int[右 - 左 + 1]; //创建临时数组,保存合并结果
int i = left;
int j = mid + 1;
int k = 0;
//比较左右元素,将较小的元素放入临时数组
while ( i < = 中 && j <= 右) {
if (arr[i] <= arr[j]) {
temp[k++] = arr[ i++];
} else {
temp[k++] = arr[j++];
}
}
// 将左半部分剩余元素放入临时数组
while (i <= mid) {
temp[k++] = arr[i++];
}
//将右半部分剩余元素保存到临时数组中输入
while (j <= right) {
temp[k++] = arr[j++];
}
//将临时数组的元素复制到原数组中。数组
for (int p = 0 {
arr[left; + p] = temp[p ];
}
}
}
这段代码定义了一个名为 MergeSortmain
方法和两个辅助方法:mergeSort
和 merge
方法,并调用 mergeSort
方法对其进行排序。排序完成后,使用for-each循环打印出排序后的数组
以上内容来自。互联网,并不代表本站所有观点。欢迎访问:zhujipindao.com
评论前必须登录!
注册