代码块:
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:16 [ main:0 ] - [ INFO ] suanfa test start.
2020-04-12 13:14:16 [ main:3 ] - [ INFO ] start kuaisu suanfa.
2020-04-12 13:14:16 [ main:4 ] - [ INFO ] XuanZe realise start.
2020-04-12 13:14:16 [ main:4 ] - [ INFO ] 第1次得到最小值为:1
2020-04-12 13:14:16 [ main:5 ] - [ INFO ] 最小值 1 将与第1 个数 6 比较大小。
2020-04-12 13:14:16 [ main:5 ] - [ INFO ] 当前数列为: [1, 6, 22, 7, 9, 33, 98, 55, 23, 78, 48]
2020-04-12 13:14:16 [ main:7 ] - [ INFO ] 第2次得到最小值为:6
2020-04-12 13:14:16 [ main:7 ] - [ INFO ] 最小值 6 将与第2 个数 6 比较大小。
2020-04-12 13:14:16 [ main:7 ] - [ INFO ] 当前数列为: [1, 6, 22, 7, 9, 33, 98, 55, 23, 78, 48]
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 第3次得到最小值为:7
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 最小值 7 将与第3 个数 22 比较大小。
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 当前数列为: [1, 6, 7, 22, 9, 33, 98, 55, 23, 78, 48]
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 第4次得到最小值为:9
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 最小值 9 将与第4 个数 22 比较大小。
2020-04-12 13:14:16 [ main:8 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 33, 98, 55, 23, 78, 48]
2020-04-12 13:14:16 [ main:9 ] - [ INFO ] 第5次得到最小值为:22
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 最小值 22 将与第5 个数 22 比较大小。
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 33, 98, 55, 23, 78, 48]
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 第6次得到最小值为:23
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 最小值 23 将与第6 个数 33 比较大小。
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 23, 98, 55, 33, 78, 48]
2020-04-12 13:14:16 [ main:10 ] - [ INFO ] 第7次得到最小值为:33
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 最小值 33 将与第7 个数 98 比较大小。
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 23, 33, 55, 98, 78, 48]
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 第8次得到最小值为:48
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 最小值 48 将与第8 个数 55 比较大小。
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 23, 33, 48, 98, 78, 55]
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 第9次得到最小值为:55
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 最小值 55 将与第9 个数 98 比较大小。
2020-04-12 13:14:16 [ main:11 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 23, 33, 48, 55, 78, 98]
2020-04-12 13:14:16 [ main:12 ] - [ INFO ] 第10次得到最小值为:78
2020-04-12 13:14:16 [ main:12 ] - [ INFO ] 最小值 78 将与第10 个数 78 比较大小。
2020-04-12 13:14:16 [ main:12 ] - [ INFO ] 当前数列为: [1, 6, 7, 9, 22, 23, 33, 48, 55, 78, 98]
2020-04-12 13:14:16 [ main:12 ] - [ DEBUG ] [1, 6, 7, 9, 22, 23, 33, 48, 55, 78, 98]