选择排序是一种最简单的排序算法,其过程如下:
①找到数组中最小的那个元素,将其与数组中第一个元素交换
②再找出剩下的元素中最小的,和第二个元素交换,以此类推,找到将整个数组排序
如下面数组a = { 4, 2, 5, 7, 1, 6, 9 };
第一次找到1为最小的数,将其与第一个元素4交换位置,变为a = { 1, 2, 5, 7, 4, 6, 9 };
然后从2, 5, 7, 4, 6, 9中找到最小元素为2,不用改变位置,以此类推。。
public class Selection {
static int[] a = { 4, 2, 5, 7, 1, 6, 9 };
public static void main(String[] args) {
sort(a);
}
private static void sort(int[] a2) {
for (int i = 0; i < a.length; i++) {
int min = i;
for (int j = i + 1; j < a.length; j++) {
if (a[min] > a[j]) {
min = j;
}
}
int temp = a[min];
a[min] = a[i];
a[i] = temp;
for (int k = 0; k < a.length; k++) {
System.out.print(a[k] + " ");
}
System.out.println();
}
}
}
排序过程输出为:
1 2 5 7 4 6 9
1 2 5 7 4 6 9
1 2 4 7 5 6 9
1 2 4 5 7 6 9
1 2 4 5 6 7 9
1 2 4 5 6 7 9
1 2 4 5 6 7 9