javaの一般的なアルゴリズムの交換順序---並べ替えを選択します。
コードブロック:
public class XuanZe implements SuanFa {
private static Logger logger = Logger.getLogger(XuanZe.class);
@Override
//
// a b ;
// b a, ;
// c d ;
// d c, ;
// 。。。
//
public void suanFaRealise(int data[])
{
logger.info("XuanZe realise start.");
int dataSize = data.length;
int minkey, temp;
for (int i = 0; i < dataSize - 1; i++)
{
// 。
minkey = i;
// i 。
for (int j = i + 1; j < dataSize; j++)
{
if (data[j] < data[minkey])
{
minkey = j;
}
}
logger.info(" " + (i + 1) + " :" + data[minkey]);
logger.info(" " + data[minkey] + " " + (i + 1) + " " + data[i] + " 。");
temp = data[i];
data[i] = data[minkey];
data[minkey] = temp;
logger.info(" : " + UtilTool.toString(data));
}
}
}
テストクラス:public class Test {
private static Logger logger = Logger.getLogger(Test.class);
public static void main(String args[])
{
int[] test = {6, 1, 22, 7, 9, 33, 98, 55, 23, 78, 48};
logger.info("suanfa test start.");
//SuanFa suanfa = SuanFaFactory.getMaoPao();
SuanFa suanfa = SuanFaFactory.getKuaiSu();
suanfa.suanFaRealise(test);
logger.debug(UtilTool.toString(test));
}
}
実行プロセス:2020-04-12 13:14[main:0]-[INFO]suanfa test start.2020-04-12 13:14:16[main:3]-[INFO]start kuais suanfa.2020-04-12 13:16[man:4]-[INFO]XuuunZreisstart.2014回目の値は2014:20-20-14回目の値[INFO-14:14:16:20:16:20:16:16:20:16:16:16:0-18 18 18 18 18 18:18 18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:18:FO最小値1は、1番目の数6と比較されます。2020-04-12 13:16[main:5]-[INFO]の現在の数列は、[1,6,22,7,9,33,98,55,23,78,48]2020-04-12 13:16[main:7]-[INFO]の2回目の最小値は、6 2020-04-12:16[main:16]の最小値と比較されます。2020-04-12 13:16[main:7]-[INFO]の現在の数列は、[1,6,22,7,9,33,98,55,23,78,48]2020-04-12 13:16[main:8]-[INFO]の3回目の最小値は、7 2020-04-12:16[main:16]の最小値と比較されます。2020-04-12 13:16[main:8]-[INFO]の現在の数列は、[1,6,7,22,9,33,98,55,23,78,48]2020-04-12 13:16[main:8]-[INFO]の第4回の最小値は、9 2020-04-12:16[main:16]の最小値と比較します。2020-04-12 13:16[main:8]-[INFO]の現在の数列は、[1,6,7,9,22,33,98,55,23,78,48]2020-04-12 13:16[main:9]-[INFO]の5回目の最小値は、22-04-12:16[main:16]の最小値と比較します。2020-04-12 13:16[main:10]-[INFO]の現在の数列は、[1,6,7,9,22,33,98,55,23,78,48]2020-04-12 13:16[main:10]-[INFO]の6回目の最小値は、23-04-12:16[main:16]の最小値と比較します。2020-04-12 13:16[main:10]-[INFO]の現在の数列は、[1,6,7,9,22,23,98,55,33,78,48]2020-04-12 13:16[main:10]-[INFO]の7回目の最小値は、33,2020-04-12:16[main:16]の最小値と比較します。2020-04-12 13:16[main:11]-[INFO]の現在の数列は、[1,6,7,9,22,23,33,55,98,78]2020-04-12 13:16[main:11]-[INFO]の8回目の最小値は、48 2020-04-12:16[main:16]の最小値と比較します。2020-04-12 13:16[main:11]-[INFO]の現在の数列は、[1,6,7,9,22,23,33,48,78,55]2020-04-12 13:16[main:11]-[INFO]の9番目の最小値は、55-04-12:16[main:16]の最小値と比較されます。2020-04-12 13:16[main:11]-[INFO]の現在の数列は、[1,6,7,9,22,23,33,48,55,78]2020-04-12 13:16[main:12]-[INFO]の10番目の最小値は、78,2020-04-12:16[main:16]の最小値と比較されます。2020-04-12 13:16[main:12]-[INFO]の現在の数は:[1,6,7,9,22,23,33,48,55,78,98]2020-04-12 13:16[main:12]-[DEBUG][1,6,7,9,22,23,33,48,78,98]です。