JAVA-选择排序

Posted yjl_2130

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA-选择排序相关的知识,希望对你有一定的参考价值。

选择排序:

选择排序是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元
素排完。

步骤如下:

  • 从待排序序列中,找到关键字最小的元素

  • 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换

  • 从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束

  • 持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较

在这里插入图片描述

代码
 public static void main(String[] args) {
        int[] array= {4,2,8,9,5,7,6,1,3};
        System.out.println("未排序数组排列:");
        display(array);
        System.out.println("------------------------------");
        sort(array);
        System.out.println("------------------------------");
        System.out.println("排序后数组排列:");
        display(array);
    }

   public static int[] sort(int[] array){
       //总共要经过N‐1轮比较
       for (int i = 0; i < array.length - 1; i++) {
           int min = i;
           //每轮需要比较的次数
           for (int j = i+1; j < array.length; j++) {
               if (array[j] < array[min]){
                   //记录目前能找到的最小值元素的下标
                   min = j;
               }
           }

           if ( i != min){
               int temp = array[i];
               array[i] = array[min];
               array[min] = temp;
           }
           System.out.print("第"+(i+1)+"轮排序后的结果为:");
           display(array);
       }
       return array;
   }
    //遍历显示数组
    public static void display(int[] array){
        for (int i = 0; i <array.length ; i++) {
            System.out.print(array[i]+"");
        }
        System.out.println();
    }

输出结果:

在这里插入图片描述

选择排序性能分析:

选择排序和冒泡排序执行了相同次数的比较:N*(N-1)/2,但是至多只进行了N次交换。
当 N 值很大时,比较次数是主要的,所以和冒泡排序一样,用大O表示是O(N2) 时间级别。但是由于选择排序
交换的次数少,所以选择排序无疑是比冒泡排序快的。当 N 值较小时,如果交换时间比选择时间大的多,那么选
择排序是相当快的。

以上是关于JAVA-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

Java数据结构—排序算法

7种基本排序算法的Java实现

Java选择排序

Java选择排序