//选择排序
int[] ss = new int[]{2, 5, 2, 99, 43, 44, 56, 25};
selectSort(ss);
System.out.println(Arrays.toString(ss));
}
public static void selectSort(int[] a) {
//选择排序是在数组中,首先定义两个变量
int temp = 0;//为了存选择的最小的数组中的数字
int index = 0;//这个是记录数组中数字的下标,这里不是做冒泡,所以需要一个变量存起来做记录
for (int i = 0; i < a.length - 1; i++) {//外层需要-1是因为:用的小于号,需要比下标位置-1, 最后一个不需要插入的,已经是最大的了
index = i;//每次循环都要排除已经插入的下标,所以先index=i
for (int j = i + 1; j < a.length; j++) {//i的数字+1,两个下标做对比,j++
if (a[j] < a[i]) {//如果j下标小于i
index = j;//把j的值赋值给index,记录最小数字的下标
}
}
temp = a[index];//按照最小数字的下标取到数字,存到temp变量中
a[index] = a[i];//把做比较的大的下标i的数字放到最小下标的位子上
a[i] = temp;//把取到的最小的值放到最前面i的位子上
//完成替换
}
}
网友评论