selectsort排序方法反思

重点:引用类型变量的数组如何交换

错误代码:

 for(int index = 0;index < shapes.length - 1 ;index++){
            // int aimNum = shapes[index].getC();
             Shape aimShape = shapes[index];
             for(int scan = index + 1;scan < shapes.length;scan++){
                 if(compare(aimShape ,shapes[scan])){
                     aimShape = shapes[scan];
                     
                 }
             }//如何进行交换
             temp = shapes[index];
             shapes[index] = aimShape;
             aimShape = temp;

错误原因:选出最小值后,要进行交换,没搞清楚引用类型的交换是对象地址的交换,根源上还是要进行数组索引处的交换,最后要回到数组上

 for(int index = 0;index < shapes.length - 1 ;index++){
            // int aimNum = shapes[index].getC();
             minIndex = index;
             Shape aimShape = shapes[index];
             for(int scan = index + 1;scan < shapes.length;scan++){
                 if(compare(aimShape ,shapes[scan])){
                     aimShape = shapes[scan];
                    minIndex = scan;
                 }
             }//如何进行交换
             temp = shapes[index];
             shapes[index] = aimShape;
             shapes[minIndex] = temp;
}
}

对数组对象的改变:最终一定要回答数组上,通过指针(index)实现对数组对象的改变

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值