一、选择排序

什么事选择排序,从名字来看需要选择一个数。是的,选择排序就是拿一个数和其他的作对比,小的往前放。

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();
    }
}

到此结束,谢谢观赏

 

posted @ 2020-04-09 12:10  葬月!  阅读(118)  评论(0编辑  收藏  举报