美文网首页
Java——简单选择排序

Java——简单选择排序

作者: 牧歌_东 | 来源:发表于2019-01-07 13:58 被阅读0次
简单选择排序基本思想:第一趟,从n个元素中找出关键字最小的元素与第一个元素交换;第二趟,在从第二个元素开始的n-1个元素中在选出关键字最小的元素与第二个元素交换;如此,第k趟,则从第k个元素开始的n-k+1个元素中选出关键字最小的元素与第k个元素交换,直到整个序列按关键字有序。
public static void test2(int[] r) {
        for(int i = 1;i < r.length;i++) {
            int j = i - 1;
            int min = r[j]; //默认第一项是最小的元素
            for(;j<r.length;j++) {
                if(min > r[j]) {//查找剩下的元素的最小值
                    int temp = min;
                    min = r[j];
                    r[j] = temp;
                }
            }
            r[i-1] = min; //把最小值赋值给第一项
        }
    }

空间效率:显然简单选择排序是需要一个辅助空间

时间效率:再简单选择排序中,所需移动元素的次数较少,在排序序列已经有序的情况下,简单选择排序不需要移动元素,在最坏的情况下,即待排序序列本身是逆序时,则移动元素的次数为3(n-1).然而无论简单选择排序过程中移动元素的次数多少,在任何情况下,简单选择排序都需要进行n(n-1)/2次比较操作,因此简单选择排序的时间复杂度O(n2)

其实,基于这个简单选择排序,我们可以深入思考一下,这个算法的改进空间。。后期我会跟进的。。。。

相关文章

  • 排序算法

    常见排序算法及JAVA实现 简单选择排序(SelectSort) 选择排序思想很简单,对所有元素进行遍历,选出最小...

  • 排序算法的实现

    用java对常用内部排序算法的实现。 对冒泡排序,简单选择排序,直接插入排序,希尔排序,归并排序的简单实现(缺少快...

  • 五种常见排序算法实现(Java)

    Java-五种排序算法实现 前言及准备 这篇我们会介绍比较简单的五种排序算法:插入排序、冒泡排序、快速排序、选择排...

  • java-四种排序算法

    复习java基础的时候,顺手写的。代码比较丑……1、直接插入排序 2、希尔排序 3、简单选择排序 4、堆排序

  • 数据结构与算法-选择排序&堆排序

    简单选择排序 排序思想:每次选出最小值与对应位置记录交换,直至序列有序。 Java实现: 堆排序 排序思想:将待排...

  • 冒泡排序 选择排序

    冒泡排序 java 实现 C 实现 选择排序 java 实现 C 实现

  • 【算法】排序(一)选择排序

    在排序算法中,最简单的莫过于选择排序了。 本文将介绍以下内容 排序思路算法实现(JAVA)测试阶段算法分析 排序思...

  • (306)排序-java实现的选择/插入/希尔排序

    引言 用java实现的选择排序、插入排序、希尔排序。 代码(java) 运行结果

  • 简单选择排序(java)

    从数组中找到最小的一个数字,和数组第一个数字交换,如此反复操作即可实现排序。时间复杂度O(n^2),是稳定的排序算...

  • Java——简单选择排序

    简单选择排序基本思想:第一趟,从n个元素中找出关键字最小的元素与第一个元素交换;第二趟,在从第二个元素开始的n-1...

网友评论

      本文标题:Java——简单选择排序

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