/**
* 选择排序
* 1.找到数组中最小的元素;
* 2.将它和数组的第一个元素交换位置;
* 3.再剩下的元素中找到最小的元素;
* 4.将它与第二个元素交换位置;
* 5.如此往复,直到将整个数组排序
*/
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {3, 7, 5, 6, 4, 9, 2, 1, 8};
int len = arr.length;
for(int i = 0; i < len - 1; i++) {
int minIndex = i;
// 寻找数组中最小的元素
for(int j = i + 1; j < len; j++ ) {
if(arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if(minIndex != i) {
// 交换位置
swap(arr, i, minIndex);
}
System.out.println("第" + (i+1) + "遍比较后结果");
print(arr);
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void print(int[] arr) {
for(int i = 0, len = arr.length; i < len; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
学习算法-选择排序
最新推荐文章于 2020-12-07 23:33:36 发布