NUMレコード配列、インデックス記録添字の値を有する2つの追加パラメータ、。
ため、パフォーマンスを向上させるために、交換機能に少しコールの数を減らし、配列の開始後最小交換価値を探します
1 パブリック クラスデモ{ 2 公共 静的 ボイドメイン(文字列[]引数){ 3。 INT [] = {54,1,23 ARR、-9,188,63 }; 4 printArry(ARR) 。5 SelectSort(ARR) 。6 printArry (ARR); 7 } 。8 パブリック 静的 ボイドスワップ(INT [] ARR、int型 I、INT J){ // 配列内のスイッチング素子 9。 int型の TEMP = ARR [I]; 10 ARR [I] = ARR [J] ; 11 ARR [j]は= TEMPと、 12 } 13 公共 静的 ボイド printArry(INT [] ARR){ // 打印数组 14 System.out.print( "[" )。 15 のためには、(int型 0 = Iと、iは<arr.length; iは++ ){ 16 であれば(I <arr.length-1 ) 17 System.out.print(ARR [I] + "" )。 18 他の 19 のSystem.out.println(ARR [I] + "]" )。 20 } 21 } 22 公共 静的 ボイドselectSort(INT [] ARR){ // 选择排序性能版 23 のために(int型 I = 0; I <arr.length-1; iは++ ){ 24 INT NUM = ARR [I]。 25 int型のインデックス= I; 26 のための(int型 J = I + 1、J <arr.length; J ++ ){ 27 であれば(NUM> ARR [J]){ 28 NUM = ARR [J]。 29 インデックス= J; 30 } 31 } 32 なら(I!= 指数) 33 スワップ(ARR、I、インデックス) 34 } 35 } 36 }
結果: