2015-10-03 1 views
0
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]); 
} 

}-слиянием Мои первые DS Algo в Java

я получаю на allSortings.MergeSort.splitArray (MergeSort.java:34) .Guys любой ключ (я новичок в Java, так что я не знаю использовать отладчик)? Значение «первой» переменной всегда получает 2, а затем не изменяется.

+0

'ИНТ середине = первый + последний/2;' => 'ИНТ середине = (первая + последняя)/2;' – laune

+0

да, спасибо за помощь :) – Ansuman

ответ

0

Вы делите только одно слагаемое на 2, но вместо этого вы должны разделить сумму на 2. Заменить

int mid=first+last/2; 

с

int mid=(first+last)/2; 
+0

Увы! Спасибо, Брат;) Это сработало – Ansuman

 Смежные вопросы

  • Нет связанных вопросов^_^