美文网首页大数据
算法很难?三分钟带你掌握经典算法「选择排序」

算法很难?三分钟带你掌握经典算法「选择排序」

作者: 该用户已秃头 | 来源:发表于2020-02-16 22:15 被阅读0次

    一、选择排序介绍

    选择排序(Selection sort)是一种简单直观的排序算法。

    二、算法思想

    第 1 趟 从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置;

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

    以此类推,直到全部待排序的数据元素的个数为零,元素全部有序。

    三、实现过程

    规律:

    第 1 趟:从n个数据中找出最小的数据和第一个数据交换;

    第 2 趟:从第二个数据开始的n-1个数据中再选出最小的数据与第二个数据交换;

    以此类推…

    第 i 趟,则从第 i 个数据开始的 n-i+1 个数据中选出最小的数据与第i个数据交换,直到整个序列有序。

    四、代码实现

    publicclass SelectSort {publicstaticvoidmain(String[] args) {        System.out.println("输入要排序的值,输入的每个值用逗号隔开:");        Scanner input =newScanner(System.in);Stringstr = input.nextLine();// 将字符串按照","拆分成字符串数组String[] strArray = str.split(",");// 新建数组用来存储拆分出来的每个值int[]array=newint[strArray.length];// 给数组循环遍历赋值for(inti =0; i < strArray.length; i++) {array[i] = Integer.parseInt(strArray[i]);        }        System.out.println("排序前的数组:"+ Arrays.toString(array));// 排序selectSort(array);        System.out.println("排序后的数组:"+ Arrays.toString(array));    }/**

        * 选择排序

        *

        * @param array 待排序的数组

        */privatestaticvoidselectSort(int[]array) {//判断数组为空或为一个元素的情况if(null ==array||array.length <=1) {return;        }for(inti =0; i array[j]) {                    temp =array[j];                    tempIndex = j;                }            }// 如果临时变量发生改变,则说明有比当前外层循环位置更小的元素,需要将这两个元素交换位置if(tempIndex != i) {array[tempIndex] =array[i];array[i] = temp;            }            System.out.println("  第"+ (i +1) +"趟后:"+ Arrays.toString(array));        }    }}

    五、执行结果:

    六、更多算法学习

    帮忙转发文章后,关注私信回复【学习】即可获取算法相关视频及文档

    相关文章

      网友评论

        本文标题:算法很难?三分钟带你掌握经典算法「选择排序」

        本文链接:https://www.haomeiwen.com/subject/zjfvfhtx.html