Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中合并排序我的第一个DS算法 打包所有分类; 导入java.util.Scanner; 公共类合并排序{ 公共静态int A[],B[]; 无效合并数组(int A[],int first,int mid,int last){ int i=第一,j; j=中等; 虽然(i_Java_Algorithm_Sorting_Mergesort - Fatal编程技术网

在java中合并排序我的第一个DS算法 打包所有分类; 导入java.util.Scanner; 公共类合并排序{ 公共静态int A[],B[]; 无效合并数组(int A[],int first,int mid,int last){ int i=第一,j; j=中等; 虽然(i

在java中合并排序我的第一个DS算法 打包所有分类; 导入java.util.Scanner; 公共类合并排序{ 公共静态int A[],B[]; 无效合并数组(int A[],int first,int mid,int last){ int i=第一,j; j=中等; 虽然(i,java,algorithm,sorting,mergesort,Java,Algorithm,Sorting,Mergesort,你只是将一个和除以2,但是你应该将和除以2。替换 package allSortings; import java.util.Scanner; public class MergeSort { public static int A[],B[]; void mergeArray(int A[],int first,int mid,int last){ int i=first,j; j=mid; while(i<=mid && j<=last)

你只是将一个和除以2,但是你应该将和除以2。替换

package allSortings;
import java.util.Scanner;
public class MergeSort {
public static int A[],B[];
void mergeArray(int A[],int first,int mid,int last){
    int i=first,j;
    j=mid;
    while(i<=mid && j<=last)
    {
        if(A[i]<A[j])
            B[first++]=A[i++];
        else B[first++]=A[j++];
    }

    while(i<=mid)
        B[first++]=A[i++];
    while(j<=last)
        B[first++]=A[j++];
}
void copyArray(int A[],int last,int B[])
{
    int i=0;
    while(i<last)
    {
        A[i]=B[i];i++;
    }
}
void splitArray(int A[],int first,int last)
{
    if(first<last)
    {
        int mid=first+last/2;
        System.out.println("first:"+first);
        splitArray(A,first,mid);
        splitArray(A,mid+1,last);
        //mergeArray(A,first,mid,last);
        //copyArray(A,last,B);
    }
}

public static void main(String args[])
{

    int n;
    A=new int[100];
    B=new int[100];
    System.out.println("Enter the no. of elements in the Array:"+"\n");
    Scanner input;
    input=new Scanner(System.in);
    n=input.nextInt();
    MergeSort m1=new MergeSort();
    for(int i=0;i<n;i++)
        A[i]=input.nextInt();
        System.out.println("\nThe Original array is:");
        for(int i=0;i<n;i++)
            System.out.format("%d"+" ",A[i]);
        m1.splitArray(A,0,n-1);
        System.out.println("\nThe Sorted array is:");
        for(int i=0;i<n;i++)
            System.out.format("%d"+" ",A[i]);
}


int-mid=first+last/2;
=>
int-mid=(first+last)/2;
是的,谢谢您的帮助:)
int mid=first+last/2;
int mid=(first+last)/2;