ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/extra166y/PAS.java
(Generate patch)

Comparing jsr166/src/extra166y/PAS.java (file contents):
Revision 1.1 by dl, Tue Jan 6 14:30:57 2009 UTC vs.
Revision 1.2 by dl, Mon Jan 12 17:16:36 2009 UTC

# Line 1879 | Line 1879 | class PAS {
1879              this.left = left; this.right = right; this.merger = merger;
1880          }
1881          public void compute() {
1882 <            invokeAll(left, right);
1882 >            right.fork();
1883 >            left.invoke();
1884 >            right.join();
1885              merger.invoke();
1886          }
1887      }
# Line 2346 | Line 2348 | class PAS {
2348                  else break;
2349              }
2350  
2351 <            oquickSort(a, cmp, lo, left);
2352 <            lo = left + 1;
2351 >            if (left - lo <= hi - right) {
2352 >                oquickSort(a, cmp, lo, left);
2353 >                lo = left + 1;
2354 >            }              
2355 >            else {
2356 >                oquickSort(a, cmp, right, hi);
2357 >                hi = left;
2358 >            }
2359          }
2360      }
2361  
# Line 2392 | Line 2400 | class PAS {
2400                  else break;
2401              }
2402  
2403 <            ocquickSort(a, lo, left);
2404 <            lo = left + 1;
2403 >            if (left - lo <= hi - right) {
2404 >                ocquickSort(a, lo, left);
2405 >                lo = left + 1;
2406 >            }
2407 >            else {
2408 >                ocquickSort(a, right, hi);
2409 >                hi = left;
2410 >            }
2411          }
2412      }
2413  
# Line 2438 | Line 2452 | class PAS {
2452                  else break;
2453              }
2454  
2455 <            dquickSort(a, cmp, lo, left);
2456 <            lo = left + 1;
2455 >            if (left - lo <= hi - right) {
2456 >                dquickSort(a, cmp, lo, left);
2457 >                lo = left + 1;
2458 >            }              
2459 >            else {
2460 >                dquickSort(a, cmp, right, hi);
2461 >                hi = left;
2462 >            }
2463          }
2464      }
2465  
# Line 2484 | Line 2504 | class PAS {
2504                  else break;
2505              }
2506  
2507 <            dcquickSort(a, lo, left);
2508 <            lo = left + 1;
2507 >            if (left - lo <= hi - right) {
2508 >                dcquickSort(a, lo, left);
2509 >                lo = left + 1;
2510 >            }
2511 >            else {
2512 >                dcquickSort(a, right, hi);
2513 >                hi = left;
2514 >            }
2515          }
2516      }
2517  
# Line 2530 | Line 2556 | class PAS {
2556                  else break;
2557              }
2558  
2559 <            lquickSort(a, cmp, lo, left);
2560 <            lo = left + 1;
2559 >            if (left - lo <= hi - right) {
2560 >                lquickSort(a, cmp, lo, left);
2561 >                lo = left + 1;
2562 >            }              
2563 >            else {
2564 >                lquickSort(a, cmp, right, hi);
2565 >                hi = left;
2566 >            }
2567          }
2568      }
2569  
# Line 2576 | Line 2608 | class PAS {
2608                  else break;
2609              }
2610  
2611 <            lcquickSort(a, lo, left);
2612 <            lo = left + 1;
2611 >            if (left - lo <= hi - right) {
2612 >                lcquickSort(a, lo, left);
2613 >                lo = left + 1;
2614 >            }
2615 >            else {
2616 >                lcquickSort(a, right, hi);
2617 >                hi = left;
2618 >            }
2619          }
2620      }
2621  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines