选择排序
思路
- 思路:
数组中得到最大的值,放在数组的最后一位,
再次循环得到数组中最大的值(不算上一次的),放在数组的最后一位(不算上面的);
实现
private static void paixu(int[] arrs) {
int max;//记录当前趟数的最大值的下标,默认为第一个
int temp;
for (int i=0;i<arrs.length-1;i++){//只需要循环判断长度减一次
max =0;//每次循环完毕,最大值的坐标归0
for (int j=0;j<arrs.length-i;j++){//当外层循环了多上次,就已经查出来 了多少个最大值,不需要判断后面的
//当后面的值比最大值大,就将最大值保存,
if (arrs[j]>arrs[max]){
max = j;//最大值的下标改成当前位置的下标
}
}
//循环完成之后,将数组最后一位和数组最大值交换
temp = arrs[arrs.length-1-i];
arrs[arrs.length-1-i] = arrs[max];
arrs[max] = temp;
}
}
网友评论