runtime error

From: os2 (os2l_at_nospamvideotron.ca)
Date: 10/31/03


Date: Fri, 31 Oct 2003 15:18:05 -0500

hi

when i compile this code i got any error...
but when i run it i get this error:

E:\divers\ets\LOG\log320\aut03\lab1>java Sort
Exception in thread "main" java.lang.ClassCastException
         at Sort.radixSort(Sort.java:30)
         at Sort.statistique(Sort.java:101)
         at Sort.main(Sort.java:139)

import java.util.*;
import java.io.*;
import java.lang.*;

//http://www.theory.informatik.uni-kassel.de/~dieter/algo/programmeJava/kapitel5/Sort.java

public class Sort {

   Long[]a;
   long baro=0;
   long[][] tabStat= new long[50][6];
   int maxTest=50;

   //algo du tri radixSort
   public void radixSort( Long a[], int k, int log) {
     LinkedList[] list = new LinkedList[ log ];
     for( int i = 0; i < log; i++ ){
       list[ i ] = new LinkedList( );
       baro++;
     }

     LinkedList tmpList = new LinkedList( );
     for( int i = 0; i < a.length; i++ ){
       tmpList.addLast( a[ i ] );
       baro++;
     }

     for( int i = 0, mult = 1; i < k; i++ ) {
       while( !tmpList.isEmpty( ) ) { //line 30
     Long p = (Long)tmpList.removeFirst( );
     list[ ( p.intValue( ) / mult ) % log ].addLast( p );
     baro++;
       }

       for( int j = 0; j < log; j++ ) {
     tmpList.addAll( list[ j ] );
     list[ j ].clear( );
     baro++;
       }
       mult *= log;
     }
     tmpList.toArray( a );
   }

   //write data
   public void ecrireFichier(Long a[], String NomFichier){
     try{
       PrintWriter out = new PrintWriter(new FileWriter(NomFichier));
       for (int i = 0; i < a.length; i++)
         out.println(a[i]);
       out.close();
     }
     catch(Exception e){
       e.printStackTrace();
     }
   }

   //write data
   public void ecrireBaro(long[][] tabStat, String NomFichier){
     try{
       PrintWriter out = new PrintWriter(new FileWriter(NomFichier));
       for(int i=0;i<maxTest;i++){
         out.println(tabStat[i][0] );
         out.println(tabStat[i][1] );
         out.println(tabStat[i][2] );
         out.println(tabStat[i][3] );
         out.println(tabStat[i][4] );
         out.println(tabStat[i][5] );
         out.println("=============" );
         out.close();
       }
     }
     catch(Exception e){
       e.printStackTrace();
     }
   }

   //create value for the array
   public void genererTableau(Long a[]){
     long rang=4294967296l; //rang
     Random r1 = new Random();
     for (int i=0;i<a.length;i++){
       a[i] = new Long ( (long) (r1.nextDouble()*rang));
     }
   }

   public void statistique(){
     int n=100; //element number array
     a = new Long[n];
     Long []original;
     original = new Long[n];

     for(int i=0;i<maxTest;i++){

       genererTableau(original);

       a=(Long[])original.clone();

       //base 2 - passe k
       radixSort( a, 32,2 ); //line 101
       tabStat[i][0]=baro;

       //base 8 - passe k/3
       a=(Long[])original.clone( );
       baro=0;
       radixSort( a, 32/3,8 );
       tabStat[i][1]=baro;

       //base 16 - passe k/4
       a=(Long[])original.clone( );
       baro=0;
       radixSort( a, 32/4,16 );
       tabStat[i][2]=baro;

       //base 64 - passe k/6
       a=(Long[])original.clone( );
       baro=0;
       radixSort( a, 32/6,64 );
       tabStat[i][3]=baro;

       //base racine(n) - passe k/log2(racine(n))
       a=(Long[])original.clone( );
       baro=0;
       radixSort( a, (int)(Math.sqrt(n)),
(int)(32/(Math.log(Math.sqrt(n))/Math.log(2.0))) );
       tabStat[i][5]=baro;

       //base racine 3ieme(n) - passe k/log2(racine 3ieme(n))
       a=(Long[])original.clone( );
       baro=0;
       radixSort( a, (int)(Math.pow(3,1/n)),
(int)(32/(Math.log(Math.pow(3,1/n))/Math.log(2.0))) );
       tabStat[i][6]=baro;
     }
     ecrireBaro(tabStat,"stat.txt");
   }

   public static void main( String[] args ) {
     Sort tmp = new Sort();
     tmp.statistique(); //line 139
   }

}

any idea to resolve that?

-- 
Borland rulez http://pages.infinit.net/borland
-- 
Borland rulez http://pages.infinit.net/borland


Relevant Pages

  • Re: how TcpLinstenr is fired in windows service
    ... Hi Vadyam Stetsyak, ... The above code raise one exception In listner method TcpListner.start ... >> private TcpListener tcpListener; ... >> public void Start ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Virus Scanner with Java API?
    ... > with a command line or C API? ... ExternalProcessWrapper p = new ExternalProcessWrapper ("sort", ... public void handleOutputLine{ ... If process already running exception is thrown. ...
    (comp.lang.java)
  • Re: error when returning a ResultSet
    ... > In the getFuntion I return a ResultSet. ... > public Connection getConnectionthrows Exception ... > SessionContext sessionContext; ... > public void ejbActivate() ...
    (comp.lang.java.databases)
  • Re: how TcpLinstenr is fired in windows service
    ... This exception occurs when you want to listen on the address:port that are ... use netstat -an -p tcp to determine what addresses:ports are occupied. ... >>> public void Start ... >>> protected void Listener() ...
    (microsoft.public.dotnet.languages.csharp)
  • compilation problem
    ... public void setUsername{ ... public void validateUserthrows Exception, ... ImprovedUser.java:23: cannot resolve symbol ... symbol: class UserException ...
    (comp.lang.java.programmer)