算法之选择排序

来源:互联网 发布:javascript小游戏 编辑:程序博客网 时间:2024/05/21 21:36

选择排序是从无序区选一个最小的元素直接放到有序区的最后,即是第i次循环,选择第i小的数放入前边有序区最后。

设数组为a[0…n-1]。

1.      初始时,数组全为无序区为a[0..n-1]。令i=0

2.      在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。交换之后a[0…i]就形成了一个有序区。

3.      i++并重复第二步直到i==n-1。排序完成。

public static void selectSort (int[] a, int n) {int indexOfMin = 0;int j;for (int i = 0; i < n; i++) {int tmp = a[i];indexOfMin = i;for (j = i + 1; j < n; j ++) {//寻找最小的值if (a[j] < a[indexOfMin]) {indexOfMin = j;}}if (i != indexOfMin) {a[i] = a[indexOfMin];//交换a[indexOfMin] = tmp;}}}




0 0