package com.merge.sort;
public class Merge_sort_test {
public static void Merge(
int[] A,
int p,
int q,
int r){
int[] tmp =
new int[r-p+
1];
int i = p;
int j = q+
1;
int k =
0;
while(i <= q && j <= r){
if(A[i] <= A[j]){
tmp[k++] = A[i++];
}
else{
tmp[k++] = A[j++];
}
}
while(i <= q){
tmp[k++] = A[i++];
}
while(j <= r){
tmp[k++] = A[j++];
}
for(
int k2 =
0;k2 < tmp.length;k2++){
A[k2+p] = tmp[k2];
}
}
public static void Merge_sort(
int[] A,
int p,
int r){
int q = (p+r)/
2;
if(p < r){
Merge_sort(A,p,q);
Merge_sort(A,q +
1,r);
Merge(A,p,q,r);
}
}
public static void main(String[] args) {
int[] A = {
5,
2,
4,
7,
1,
3,
2,
6};
System.
out.println(
"原始数据: ");
for(
int i =
0;i < A.length;i++){
System.
out.print(A[i] +
" ");
}
System.
out.println();
Merge_sort(A,
0,A.length -
1);
System.
out.println(
"输出结果: ");
for(
int i =
0;i < A.length;i++){
System.
out.print(A[i] +
" ");
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-6875.html