选择排序的实现(Java)

原理:
选择排序的工作原理是,从待排序数据中选出最小的一个值作为序列的第一个位置,然后再从剩下的数据中选取值最小的数据放在序列的第二个位置,依次类推,Java实现如下。
代码实现:

    public static void main(String args[]){
        int a[] = new int[]{344,566,4,345,23,56673,456,34,5,78,45,23};
        int temp ;//作为中间变量交换数据;
        //选择排序
        for (int i=0;i<a.length-1;i++){ //最后一个值一定是最大的,不必再比较
            int min =a[i];//定义起始值为最小值
            int minIndex =i;//定义起始值的数组下标作为最小数组下标
            for (int j=i+1;j<a.length;j++){
               if (min>a[j]){
                   min=a[j];//第一个元素与剩下的所有元素比较,选出最小值及数组下标
                   minIndex=j;
               }
            }
            temp=a[i];  //交换元素,原数据与最小数据交换位置
            a[i]=min;
            a[minIndex]=temp;
            for (int s=0;s<a.length;s++){
                System.out.print(a[s]+" ");
            }
            System.out.println();
        }
    }

最终运行结果如下:
4 566 344 345 23 56673 456 34 5 78 45 23
4 5 344 345 23 56673 456 34 566 78 45 23
4 5 23 345 344 56673 456 34 566 78 45 23
4 5 23 23 344 56673 456 34 566 78 45 345
4 5 23 23 34 56673 456 344 566 78 45 345
4 5 23 23 34 45 456 344 566 78 56673 345
4 5 23 23 34 45 78 344 566 456 56673 345
4 5 23 23 34 45 78 344 566 456 56673 345
4 5 23 23 34 45 78 344 345 456 56673 566
4 5 23 23 34 45 78 344 345 456 56673 566
4 5 23 23 34 45 78 344 345 456 566 56673

本人初次学习,如果错误请指正,谢谢。

你可能感兴趣的:(查找算法,java,排序算法)