01 //MySort.java --- sample using Arrays.sort( )
02 // @CopyLeft by tsaiwn@cs.nctu.edu.tw
03 import java.applet.*;
04 import java.util.*;
05 import java.io.*;
06 public class MySort extends Applet {
07 static java.io.PrintStream cout=System.out;
08 public static void main(String gg[ ]) {
09 MySort me = new MySort( );
10 me.init( ); me.start( );
11 me.test( );
12 cout.println("Thank you and Bye!");
13 }//main(
14 void test( ) {
15 cout.println("Before sort Array a:");
16 printAry(a);
17 Arrays.sort(a);
18 cout.println("After sort:");
19 printAry(a);
20 reverse(a);
21 cout.println("After Reverse it:");
22 printAry(a);
23 //////
24 cout.println("======\nBefore sort Array b:");
25 printAry(b);
26 Arrays.sort(b);
27 cout.println("After sort:");
28 printAry(b);
29 }// test(
30 ////// template function 無法用於 基礎型別的陣列(Primitive Array)
31 void printAry(int y[ ]) {
32 for(int x: y) { // 陣列 y[ ] 中每個 x
33 cout.print(" "+x);
34 }//for
35 cout.println( ); // 換一列 NewLine
36 }// printAry(
37 void printAry(double y[ ]) {
38 for(double x: y) { // 陣列 y[ ] 中每個 x
39 cout.print(" "+x);
40 }//for
41 cout.println( ); // 換一列 NewLine
42 }// printAry(
43 void reverse(int x[ ]) {
44 int i=0, k = x.length - 1;
45 int tmp;
46 for( ;; ) {
47 if(i >= k) return;
48 tmp=x[i]; x[i]=x[k]; x[k]=tmp;
49 i++; --k;
50 }// for
51 }//
52 int a[ ] = { 33, 88, 55, 66, 123, 99, 22, 77};
53 double b[ ] = { 38.49, 55.66, 66.5, 25
54 , 168, 99.5, 85.25, 13.38, 77.5};
55 } // class
56 /******
57 D:\jtest> path "c:\Program Files\Java\jdk1.6.0_23\bin";%path%
58
59 D:\jtest> javac MySort.java
60
61 D:\jtest> java MySort
62 Before sort Array a:
63 33 88 55 66 123 99 22 77
64 After sort:
65 22 33 55 66 77 88 99 123
66 After Reverse it:
67 123 99 88 77 66 55 33 22
68 ======
69 Before sort Array b:
70 38.49 55.66 66.5 25.0 168.0 99.5 85.25 13.38 77.5
71 After sort:
72 13.38 25.0 38.49 55.66 66.5 77.5 85.25 99.5 168.0
73 Thank you and Bye!
74
75 D:\jtest>
76 ******/