@@ -7325,7 +7325,7 @@ private static boolean testPatriciaTrie() {
7325
7325
@ SuppressWarnings ("unchecked" )
7326
7326
private static boolean testQuadTree () {
7327
7327
int listSize = 10 ;
7328
- int size = 10000 ;
7328
+ int size = 16000 ;
7329
7329
java .util .List <QuadTree .XYPoint >[] lists = new java .util .List [listSize ];
7330
7330
for (int i =0 ; i <listSize ; i ++) {
7331
7331
java .util .List <QuadTree .XYPoint > list = new java .util .LinkedList <QuadTree .XYPoint >();
@@ -7361,13 +7361,16 @@ private static boolean testQuadTree() {
7361
7361
long afterTreeQuery ;
7362
7362
long insertTime ;
7363
7363
long queryTime ;
7364
+ long avgInsertTime ;
7365
+ long avgQueryTime ;
7364
7366
long treeMemory ;
7365
7367
long treeQuery ;
7366
7368
7367
7369
// Point based quad tree
7368
7370
{
7369
7371
QuadTree .PointQuadTree <QuadTree .XYPoint > tree = new QuadTree .PointQuadTree <QuadTree .XYPoint >(0 ,0 ,size ,size );
7370
7372
beforeMemory = DataStructures .getMemoryUse ();
7373
+ avgInsertTime = 0 ;
7371
7374
for (int i =0 ; i <listSize ; i ++) {
7372
7375
java .util .List <QuadTree .XYPoint > list = lists [i ];
7373
7376
beforeInsert = System .currentTimeMillis ();
@@ -7378,7 +7381,9 @@ private static boolean testQuadTree() {
7378
7381
7379
7382
insertTime = afterInsert - beforeInsert ;
7380
7383
System .out .println ("insertTime=" +insertTime );
7384
+ avgInsertTime += insertTime ;
7381
7385
}
7386
+ System .out .println ("avgInsertTime=" +avgInsertTime /listSize );
7382
7387
afterMemory = DataStructures .getMemoryUse ();
7383
7388
treeMemory = afterMemory - beforeMemory ;
7384
7389
System .out .println ("treeMemory=" +treeMemory );
@@ -7395,19 +7400,20 @@ private static boolean testQuadTree() {
7395
7400
}
7396
7401
7397
7402
// We should find all points here
7403
+ avgQueryTime = 0 ;
7398
7404
for (int i =0 ; i <listSize ; i ++) {
7399
7405
java .util .List <QuadTree .XYPoint > query = queries [i ];
7400
- for (int j =0 ; j <listSize ; j ++) {
7401
- beforeQuery = System .currentTimeMillis ();
7402
- for (QuadTree .XYPoint p : query ) {
7403
- tree .queryRange (p .getX (), p .getY (), 1 , 1 );
7404
- }
7405
- afterQuery = System .currentTimeMillis ();
7406
-
7407
- queryTime = afterQuery - beforeQuery ;
7408
- System .out .println ("queryTime=" +queryTime );
7406
+ beforeQuery = System .currentTimeMillis ();
7407
+ for (QuadTree .XYPoint p : query ) {
7408
+ tree .queryRange (p .getX (), p .getY (), 1 , 1 );
7409
7409
}
7410
+ afterQuery = System .currentTimeMillis ();
7411
+
7412
+ queryTime = afterQuery - beforeQuery ;
7413
+ System .out .println ("queryTime=" +queryTime );
7414
+ avgQueryTime += queryTime ;
7410
7415
}
7416
+ System .out .println ("avgQueryTime=" +avgQueryTime /listSize );
7411
7417
7412
7418
// Result set should not contain duplicates
7413
7419
beforeTreeQuery = System .currentTimeMillis ();
@@ -7427,6 +7433,7 @@ private static boolean testQuadTree() {
7427
7433
{
7428
7434
QuadTree .RectangleQuadTree <QuadTree .AxisAlignedBoundingBox > tree = new QuadTree .RectangleQuadTree <QuadTree .AxisAlignedBoundingBox >(0 ,0 ,size ,size );
7429
7435
beforeMemory = DataStructures .getMemoryUse ();
7436
+ avgInsertTime = 0 ;
7430
7437
for (int i =0 ; i <listSize ; i ++) {
7431
7438
java .util .List <QuadTree .XYPoint > list = lists [i ];
7432
7439
beforeInsert = System .currentTimeMillis ();
@@ -7437,8 +7444,9 @@ private static boolean testQuadTree() {
7437
7444
7438
7445
insertTime = afterInsert - beforeInsert ;
7439
7446
System .out .println ("insertTime=" +insertTime );
7440
-
7447
+ avgInsertTime += insertTime ;
7441
7448
}
7449
+ System .out .println ("avgInsertTime=" +avgInsertTime /listSize );
7442
7450
afterMemory = DataStructures .getMemoryUse ();
7443
7451
treeMemory = afterMemory - beforeMemory ;
7444
7452
System .out .println ("treeMemory=" +treeMemory );
@@ -7455,19 +7463,20 @@ private static boolean testQuadTree() {
7455
7463
}
7456
7464
7457
7465
// We should find all points here
7466
+ avgQueryTime = 0 ;
7458
7467
for (int i =0 ; i <listSize ; i ++) {
7459
7468
java .util .List <QuadTree .XYPoint > query = queries [i ];
7460
- for (int j =0 ; j <listSize ; j ++) {
7461
- beforeQuery = System .currentTimeMillis ();
7462
- for (QuadTree .XYPoint p : query ) {
7463
- tree .queryRange (p .getX (), p .getY (), 1 , 1 );
7464
- }
7465
- afterQuery = System .currentTimeMillis ();
7466
-
7467
- queryTime = afterQuery - beforeQuery ;
7468
- System .out .println ("queryTime=" +queryTime );
7469
+ beforeQuery = System .currentTimeMillis ();
7470
+ for (QuadTree .XYPoint p : query ) {
7471
+ tree .queryRange (p .getX (), p .getY (), 1 , 1 );
7469
7472
}
7473
+ afterQuery = System .currentTimeMillis ();
7474
+
7475
+ queryTime = afterQuery - beforeQuery ;
7476
+ System .out .println ("queryTime=" +queryTime );
7477
+ avgQueryTime += queryTime ;
7470
7478
}
7479
+ System .out .println ("avgQueryTime=" +avgQueryTime /listSize );
7471
7480
7472
7481
// Result set should not contain duplicates
7473
7482
beforeTreeQuery = System .currentTimeMillis ();
0 commit comments