选择排序算法

来源:互联网 发布:阴司守门人网络剧资源 编辑:程序博客网 时间:2024/06/08 09:58

定义

选择排序(Selection sort)是一种简单直观的排序算法。
工作原理:是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法!

例题

随意定义十个数字的数组 int[] numbers = {12,45,15,16,48,11,91,54,65,19}。

分析:
第一趟: [11] {12,15,16,19,45,48,54,65,91}
第二趟: [11,12] {15,16,19,45,48,54,65,91}
第三趟: [11,12,15] {16,19,45,48,54,65,91}
…..
第(N-1)趟: [11 12 15 16 19 45 48 54 65 91]

/* * 选择排序算法 * */public class SelectionSort {    public static void main(String[] args) {        //定义十个数        int[] numbers = {12,45,15,16,48,11,91,54,65,19};        //一共需要比较n-1趟        for (int i = 0; i < numbers.length-1; i++) {            //找最小            int min = numbers[i];            //可能比较n-1次            for (int j = i+1; j < numbers.length; j++) {                if(min > numbers[j]){                    min = numbers[j];                }            }            //判断最小的数出现在什么位置            int j;            for (j = i; j < numbers.length; j++) {                if(numbers[j] == min){                    break;                }            }            //j的位置最小,交换位置            if(j > i){                int temp = numbers[j];                numbers[j] = numbers[i];                numbers[i] = temp;            }        }        //循环输出        for (int i = 0; i < numbers.length; i++) {            System.out.print(numbers[i]+"\t");        }    }}
0 0
原创粉丝点击