Results 1 to 4 of 4
Thread: Tell me efficient way
- 08-11-2011, 11:21 AM #1
Member
- Join Date
- Aug 2011
- Posts
- 4
- Rep Power
- 0
Tell me efficient way
In hardware topology , each cell will have x1 number of input lines ( called as fan-in ) and y1 number of output lines ( called as fan-out ).the requirement is to identify the nearest cell with maximum fan-out.The input given is X Y coordinate of new cell. Then we want to find nearest one from the csv file. then wants to produce it fan-out?
For the problem definition , cell is defined by x-y co-ordinates.take a csv file as input.
cell_no,cell_x,cell_y,fan-out
1,4.6,30.23,56
2,3.2,100.766,67
3,3,2,98.766,23
Java Code:import java.io.*; import java.util.regex.*; import java.util.Scanner; class showfile { public static void main(String args[]) throws Exception { int i=1,count=0,j=0,k,d=0; FileInputStream fin = new FileInputStream("empty"); DataInputStream in=new DataInputStream(fin); BufferedReader br=new BufferedReader(new InputStreamReader(in)); String strline=null; String[] dummy=null; String x=null; double y[]=new double[6]; double x2,y2; double x1,y1; double dist[]=new double[4]; double copy[]=new double[4]; double fanout[]=new double[3]; Scanner user=new Scanner(System.in); System.out.println("Enter x value::\n"); x1=user.nextDouble(); user=new Scanner(System.in); System.out.println("\nEnter y value::\n"); y1=user.nextDouble(); System.out.println("\n\n*******Content of CSV file**********\n\n"); while ((strline=br.readLine())!= null) { if(i>1) { int c=1; System.out.println(strline); dummy=strline.split(","); fanout[d]=Double.parseDouble(dummy[3]); d++; try{ while(c<3) { x=dummy[c]; y[j]=Double.parseDouble(x); c++; j++; } }catch(NumberFormatException e){ System.out.println("Number format exception for input string"); } } else { System.out.println(strline); } i++; } count=y.length; i=0; j=0; while(i<count) { x2=y[i]; i++; y2=y[i]; dist[j]=Math.sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))); j++; i++; } j--; for(i=0;i<=j;i++) { copy[i]=dist[i]; } for(i=0;i<=j;i++) { for(k=i+1;k<=j;k++) { if(dist[i]>dist[k]) { x2=dist[k]; dist[k]=dist[i]; dist[i]=x2; } } } for(i=0;i<=j;i++) { if(dist[0]==copy[i]) { break; } } System.out.println("\n \nfan-out= "+fanout[i]); fin.close(); } }
Last edited by pbrockway2; 08-11-2011 at 11:33 AM. Reason: code tags added
- 08-11-2011, 11:37 AM #2
Moderator
- Join Date
- Feb 2009
- Location
- New Zealand
- Posts
- 4,716
- Rep Power
- 17
When posting code, use the code tags. Put [code] at the start of your code and [/code] at the end: that way the code will be properly formatted when it appears in the forum.
- 08-11-2011, 12:02 PM #3
Moderator
- Join Date
- Feb 2009
- Location
- New Zealand
- Posts
- 4,716
- Rep Power
- 17
What does "efficient" mean? In particular if it includes maintainability of the code, consider
* many small methods rather than a long deeply nested main(). Document what each method does.
* use descriptive variables. The extra key strokes make for self documenting code.
* define and use classes. A cell (with id, location and fan characteristics) looks like an ideal candidate for being modelled by a Cell class. A network of cells might be another class with the important behaviour of reporting the closest cell to a given location.
------
As far as finding the closest element of a point set to a given location is concerned, there are better ways than brute forcing your way through the set. But get the code clean first as efficiency in this narrow sense requires storing the collection of cells in a more sorted order than merely an array indexed by their position in the data file.
- 08-11-2011, 12:36 PM #4
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 14,422
- Blog Entries
- 7
- Rep Power
- 28
I don't know, because the OPs requirement is:
Originally Posted by OP
kind regards,
JosBuild a wall around Donald Trump; I'll pay for it.
Similar Threads
-
Efficient image loading
By aburnett397 in forum Advanced JavaReplies: 0Last Post: 02-04-2011, 03:44 PM -
is there a more efficient way?
By Yakg in forum New To JavaReplies: 3Last Post: 01-23-2011, 06:32 PM -
Need help making program more efficient
By cid in forum New To JavaReplies: 4Last Post: 06-30-2010, 08:22 PM -
Need some help with code. Make it more efficient.
By Meta in forum New To JavaReplies: 1Last Post: 03-22-2010, 09:21 AM
Bookmarks