选择排序学习及java代码实现

来源:互联网 发布:先知者软件怎么安装 编辑:程序博客网 时间:2024/05/22 16:59

1,算法思路:

选择排序是复杂度为O(n*n)的排序算法,原理是从n个数之中寻找最小的数放在最前面,然后在剩下的n-1个数之中寻找最小的数,放在上一次最小的数的后面。

2,算法实现:

package com.test;/** * java代码实现直接选择排序 *  * @author liu * */public class SelectSort {    public static void main(String[] args) {        /*         * 定义一个int类型的数组。         */        int[] arr = { 2, 4, 6, 1, 3, 5 };        /*         * 定义一个变量min,用于存储遍历一次的最小值。         */        int min = 0;        /*         * 第一层循环,代表将循环比较的出的最小的那个数,放在哪个位置。         */        for (int i = 0; i < arr.length - 1; i++) {            /*             * min = i是为了让左侧已经完成排序的数不被影响。             */            min = i;            /*             * 第i个数循环和后面的数进行比较。             */            for (int j = i + 1; j < arr.length; j++) {                /*                 * 如果第i个数小于第j个数,min最小值不变,否则min=j。                 */                min = arr[min] < arr[j] ? min : j;            }            /*             * 交换arr数组中i和min的值             */            swap(arr, i, min);        }        printArray(arr);    }    /**     * 打印数组中的值     *      * @param arr     */    private static void printArray(int[] arr) {        for (int i = 0; i < arr.length; i++) {            System.out.print(arr[i] + " ");        }    }    /**     * 交换数组中两个值     *      * @param arr     * @param index1     * @param index2     */    public static void swap(int[] arr, int index1, int index2) {        int tmp = arr[index1];        arr[index1] = arr[index2];        arr[index2] = tmp;    }}
0 0