Java选择排序
算法描述:
- 在一个长度为 N 的无序数组中,第一次遍历 n-1 个数找到最小的和第一个数交换。
- 第二次从下一个数开始遍历 n-2 个数,找到最小的数和第二个数交换。
- 重复以上操作直到第 n-1 次遍历最小的数和第 n-1 个数交换,排序完成。
代码实现
public void SelectSort(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
int minValue = i;
for (int j = i + 1; j < arr.length - 1 - i; j++) {
if (arr[minValue] > arr[j]) {
minValue = j;
}
}
if (minValue != i) {
int temp = arr[minValue];
arr[minValue] = arr[i];
arr[i] = temp;
}
}
}
图片演示:(图片来源:https://zhuanlan.zhihu.com/p/42541704)