01 //MySort.java --- sample using java.util.Arrays.sort( ) 02 // @CopyLeft by tsaiwn@cs.nctu.edu.tw 03 // Modified by xxxxyyyy(你的學號姓名) ! 注意至少加入三個整數五個實數!! 04 import java.applet.*; 05 import java.util.*; 06 import java.io.*; 07 public class MySort extends Applet { 08 static java.io.PrintStream cout=System.out; 09 public static final String myName="你的學號姓名"; 10 public static void main(String argv[ ]) { 11 MySort me = new MySort( ); 12 me.init( ); me.start( ); 13 me.test( ); 14 cout.println("Thank you and Bye!\nThe program:"); 15 me.prtProg( ); // to print myself 16 }//main( 17 public MySort( ) { 18 }// 19 20 void prtProg( ) { try{ new PrintMe( getClass( ) ); }catch(Exception e){;} } ///***** 21 22 void test( ) { 23 cout.println("Test sorting...modified by " + myName); 24 cout.println("Before sort Array a:"); 25 printAry(a); 26 java.util.Arrays.sort(a); // 可以寫全名 !!!!!! java.util.* 裡面很多好東西 ! 27 cout.println("After sort:"); 28 printAry(a); 29 reverse(a); 30 cout.println("After Reverse it:"); 31 printAry(a); 32 ////// 測試 sort 實數陣列(double array) 33 cout.println("======\nBefore sort Array b:"); 34 printAry(b); 35 Arrays.sort(b); // 這樣也可以, 因為已經有 import java.util.*; 36 cout.println("After sort:"); 37 printAry(b); 38 // cout.println("After Reverse it:"); 39 // reverse(b); // 須再寫一個 void reverse(double 陣列) { } 40 // cout.println("After Reverse it:"); 41 }// test( 42 43 ////// template function 無法用於 基礎型別的陣列(Primitive Array) 44 void printAry(int y[ ]) { 45 for(int x: y) { // 陣列 y[ ] 中每個 x 46 cout.print(" "+x); 47 }//for 48 cout.println( ); // 換一列 NewLine 49 }// printAry( 50 51 void printAry(double y[ ]) { 52 int i=0; // index 索引, 註標(Subscript) 53 double x; // 以下寫法是傳統的 Loop 迴圈; 注意 Java 的 array 陣列長度用 .length 54 for(i=0; i < y.length; ++i) { // 陣列 y[ ] 中每個 x 55 x = y[i]; 56 cout.print(" "+x); 57 }//for 58 cout.println( ); // 換一列 NewLine 59 }// printAry( 60 61 void reverse(int x[ ]) { // 把 array 左右對調(顛倒過來 !) 62 int i=0, k = x.length - 1; 63 int tmp; 64 for( ;; ) { 65 if(i >= k) return; // i 跑到 k 右邊去了就是做完了 ! 66 tmp=x[i]; x[i]=x[k]; x[k]=tmp; 67 i++; --k; // i 往右邊, k 往左邊; 總有一天會交錯而過 ! 68 }// for 69 }// 70 // 須再寫一個 void reverse(double 陣列) { } 71 int a[ ] = { 33, 88, 55, 66, 123, 99, 22, 77}; 72 double b[ ] = { 38.49, 55.66, 66.5, 25 73 , 168, 99.5, 85.25, 13.38, 77.5}; 74 } // class 75 /****** 76 D:\jtest> path "c:\Program Files\Java\jdk1.6.0_23\bin";%path% 77 78 D:\jtest> javac MySort.java 79 80 D:\jtest> java MySort 81 Test sorting...modified by 你的學號姓名 82 Before sort Array a: 83 33 88 55 66 123 99 22 77 84 After sort: 85 22 33 55 66 77 88 99 123 86 After Reverse it: 87 123 99 88 77 66 55 33 22 88 ====== 89 Before sort Array b: 90 38.49 55.66 66.5 25.0 168.0 99.5 85.25 13.38 77.5 91 After sort: 92 13.38 25.0 38.49 55.66 66.5 77.5 85.25 99.5 168.0 93 Thank you and Bye! 94 The program: 95 D:\jtest> 96 ******/