Java-算法之选择排序

来源:互联网 发布:十万块钱知乎 编辑:程序博客网 时间:2024/05/16 13:50

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

这里写图片描述

代码

package top.jzdxjzf.arithmetic;import java.util.Random;/** * 选择排序(Selection sort) * 是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置 ,直到全部待排序的数据元素排完。 * 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。 *  * @author Java_feng *  *         2016年7月17日-下午9:54:29 */public class SelectionSortDemo {    public static void main(String[] args) {        // 待排序的数组        int[] number = new int[10];        Random rand = new Random();        // 给数组赋值        for (int i = 0; i < 10; i++) {            number[i] = rand.nextInt(100);        }        System.out.print("长度为: " + number.length + " 的原数组: ");        // 输出数组        printf(number);        // 选择排序        selectionSort(number);        printf(number);    }    /**     * 打印数组     *      * @param number     *            待打印的数组     */    private static void printf(int[] number) {        for (int i = 0; i < number.length; i++) {            System.out.print(number[i]);            if (i != number.length - 1) {                System.out.print(" , ");            }        }        System.out.print("\n");    }    /**     * 选择排序     *      * @param number     * @return     */    private static int selectionSort(int[] number) {        if (number == null || number.length == 0) {            return -1;        }        int index = 0;        int temp = 0;        for (int i = 0; i < number.length; i++) {            index = i;            for (int j = i; j < number.length; j++) {                if (number[j] < number[index]) {                    index = j;                }            }            if (i != index) {                temp = number[i];                number[i] = number[index];                number[index] = temp;            }        }        return 1;    }}
0 0
原创粉丝点击