什么事选择排序, 从名字来看需要选择一个数. 是的, 选择排序就是拿一个数和其他的作对比, 小的往前放.
- package bubbling;
- /**
- * 选择排序
- *
- * @author zy
- * @version 1.0
- * @since 2020/4/9
- */
- public class Selected {
- static void ari() {
- int a[] = new int[]{9, 3, 5, 7, 6, 2, 1, 4, 8};
- for (int i = 0; i < a.length; i++) {
- int v = i;// 先将数组第一个下标定义为最小数值的下标
- for (int j = i + 1; j < a.length; j++) {
- v = a[j] < a[v] ? j : v;// 将后边的值与上诉定义位置值相比较, 小的将 v 的值改变
- }
- exchange(a, i, v);// 走到这里就拿到了当前最小的值, 把最小值和前边的位置交换
- }
- print(a);
- }
- /**
- * 交换
- * @param a 要交换位置的数组
- * @param i 要交换的位置 (正确的位置)
- * @param j 最小值所在的位置
- */
- static void exchange(int[] a, int i, int j) {
- int temp = a[i];// 用 temp 最为第三方变量存储正确位置的值
- a[i] = a[j];// 将正确的值放到正确的位置
- a[j] = temp;
- }
- static void print(int a[]) {
- for (int i = 0; i < a.length; i++) {
- System.out.print(a[i] + ",");
- }
- }
- public static void main(String[] args) {
- ari();
- }
- }
到此结束, 谢谢观赏
来源: http://www.bubuko.com/infodetail-3499220.html