Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

Turbo Sort

$
0
0

i am getting wrong answer but it runs fine in my netbeans compiler ...

import java.util.Scanner;


class tsort  {

  private int[] numbers;
  private int number;

  public void sort(int[] values) {

    // Check for empty or null array
    if (values ==null || values.length==0){
      return;
    }
    this.numbers = values;
    number = values.length;
    quicksort(0, number - 1);

     for(int k = 0;k<numbers.length;k++)
    {
        System.out.println(numbers[k]);
    }

  }

  private void quicksort(int low, int high) {
    int i = low, j = high;
    // Get the pivot element from the middle of the list
    int pivot = numbers[low + (high-low)/2];

    // Divide into two lists
    while (i <= j) {
      // If the current value from the left list is smaller then the pivot
      // element then get the next element from the left list
      while (numbers[i] < pivot) {
        i++;
      }
      // If the current value from the right list is larger then the pivot
      // element then get the next element from the right list
      while (numbers[j] > pivot) {
        j--;
      }

      // If we have found a values in the left list which is larger then
      // the pivot element and if we have found a value in the right list
      // which is smaller then the pivot element then we exchange the
      // values.
      // As we are done we can increase i and j
      if (i <= j) {
        exchange(i, j);
        i++;
        j--;
      }
    }
    // Recursion
    if (low < j)
    {
      quicksort(low, j);
    }
    if (i < high)
    {
        quicksort(i, high);
    }


  }



  private void exchange(int i, int j) {
    int temp = numbers[i];
    numbers[i] = numbers[j];
    numbers[j] = temp;
  }
}
 class test3 
    {
    public static void main(String[] args) {
         int number[]= null;
         int i ;

         try
         {
         Scanner sc = new Scanner(System.in);
         int l = sc.nextInt();
         for( i=0;i<l;i++)
         {



             number[i]=sc.nextInt();


         }

         tsort t = new tsort();

         t.sort(number);

         }
         catch(Exception e)
         {

         }

    }
}

Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>