自学内容网 自学内容网

八大排序--选择排序

目录

什么是选择排序?        

算法步骤

举例说明

动图演示


什么是选择排序?        

        选择排序是一种简单直观的排序算法,它的基本思想是在每一次遍历中找到最小(或最大)的元素,将其放置到序列的起始位置。这个过程会不断重复,直到所有的元素都被排序。尽管选择排序的时间复杂度为O(n^2),它的优点在于不占用额外的内存空间。

算法步骤

1、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

3、重复第二步,直到所有元素均排序完毕。



举例说明

数组:1,5,9,2,4,3,8

第一次:选择为排序的序列中最小的为1,把1放到到第一个位置(1,5,9,2,4,3,8)

第二次:未排序的(1,5,9,2,4,3,8),最小的为2,                        (1,2,9,5,4,3,8)

第三次:未排序的(1,2,9,5,4,3,8),最小的为3,                                (1,2,3,5,4,9,8)

第四次:未排序的(1,2,3,5,4,9,8),最小的为4,                                (1,2,3,4,5,9,8)

第五次:未排序的(1,2,3,4,5,9,8),最小的为5.                                   (1,2,3,4,5,9,8)

第六次:略

最终结果为(1,2,3,4,5,8,9

动图演示

(来源1.2 选择排序 | 菜鸟教程

代码实现(Java)

public class choose {
    public static void main(String[] args) {
        int[] a= new int[]{1,5,9,2,4,3,8};
        for (int j = 0;j<a.length-1;j++){
            int num = j;
            int min = a[j];
            for (int i =j+1;i<a.length;i++){
                if(a[i]<min){
                    min = a[i];
                    num = i;
                }
            }
            a[num]=a[j];
            a[j]=min;
        }
        System.out.println(Arrays.toString(a));

    }
}

如果存在问题请及时指正,谢谢!


原文地址:https://blog.csdn.net/a13641376265/article/details/145244815

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!