选择排序(SelectionSort Java实现)
选择排序:选择排序是一个n^2级别的排序算法,实现起来相对简单的,关键在于理解算法思想,代码不难。
选择排序算法思想:在当前还未排序的数组中找到最小(或最大)的元素,然后放到第一个当前还未排序数组的第一个元素的位置,然后循环往复即可,关键在于如何维护算法运行过程中对元素索引正确的定义。
代码:
private static void selectSort(int[] arr) {
//选择排序
for (int i = 0; i < arr.length;i++) {
int min = i; //初始化最小值的下标为i
for (int j = i+1; j < arr.length; j++) {
//内循环
if(arr[j] < arr[min]) {
//比较出最小值
min = j;
//把比较出的最小值的下标赋值给min变量
}
}
//替换,为了提高算法效率,同元素则不进行替换
if(arr[i] != arr[min]) {
//写在外循环中,在比较完且赋值之后再进行替换,外循环每循环一次就替换一次
//如果写在内循环则会每次都替换,会导致排序失败
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}