排序算法——选择排序(selectSort)

排序原理

    1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引处的值为最小值,最后可以找到最小值所在的索引
    2.交换第一个索引处和最小值所在的索引处的值
在这里插入图片描述

代码实现

 public static void selectSort(double a[]){
        //i为某趟要确定的索引
        for(int i=0;i<=a.length-2;i++){
            int minIndex=i;
            for (int j=i+1;j<=a.length-1;j++){
                if(a[minIndex]>a[j]){
                    minIndex=j;
                }
            }
            //交换最小元素所在的索引minIndex处的值和i处的值
            double temp=a[minIndex];
            a[minIndex]=a[i];
            a[i]=temp;
        }
    }

测试

public static void main(String[] args) {
        double arr[]={4,5,3,6,11,14,1,8};
        selectSort(arr);
        System.out.println(Arrays.toString(arr));//import java.util.Arrays;
//        for(double k:arr)
//            System.out.println(k);
//  输出:[1.0, 3.0, 4.0, 5.0, 6.0, 8.0, 11.0, 14.0]
    }

算法分析

  在这里插入图片描述
  选择排序是给每个位置选择当前元素最小的,例如有数据{5(1),8 ,5(2), 2, 9 },第一遍选择到的最小元素为2,所以5(1)会和2进行交换位置,此时5(1)到了5(2)后面,破坏了稳定性,所以选择排序是一种不稳定的排序算法。

猜你喜欢

转载自blog.csdn.net/Supreme7/article/details/106771681