合併排序。錯誤合併排序輸出
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package algorithms;
import java.util.Arrays;
/**
*
* @author Navin
*/
public class MergeSort {
int [] left;
int [] right;
public void Merge_Sort(int [] array){
if(array.length<2){
return;
}
int mid = array.length/2;
left = new int[mid];
right = new int[array.length-mid];
for(int i =0;i<mid;i++){
left[i] = array[i];
}
for(int j =mid;j<array.length;j++){
right[j-mid] = array[j];
}
System.out.println(Arrays.toString(left));
System.out.println(Arrays.toString(right));
Merge_Sort(left);
Merge_Sort(right);
Merge(left,right,array);
}
public void Merge(int [] left, int [] right, int [] array){
int i=0;
int j=0;
int k=0;
while(i<left.length && j<right.length){
if(left[i] < right[j]){
array[k] = left[i];
i++;
}else{
array[k] = right[j];
j++;
}
k++;
}
}
public static void main(String[] args) {
int [] array = {2,4,1,6,8,5,3,7};
MergeSort ms = new MergeSort();
ms.Merge_Sort(array);
System.out.println(Arrays.toString(array));
}
}
我不知道這有什麼錯以上的邏輯和實現是正確的,但輸出是一個排序的數組,這是一樣的輸入。
輸出: [2,4,1,6,8,5,3,7]
我在這裏沒有看到任何插入排序。 –
@naveenath你是要求插入排序還是合併排序? –
您使用函數作爲Merge_sort(不與Java標準)和有關插入排序的問題? – Avinash