资讯专栏INFORMATION COLUMN

java实现选择排序

morgan / 2270人阅读

摘要:选择排序就是把最大或者最小的数找出来后,从数组边缘开始逐个地放置好。选择排序的时间复杂度为这是一种不稳定的排序。代码实现如下记录下最小值的位置交换两个位置的值

选择排序就是把最大或者最小的数找出来后,从数组边缘开始逐个地放置好。

如下图(这里我以找出最小的数字为例):

这种方法的基本步骤如下:
1.先从第一个元素开始,相邻的两个元素进行比较,最后得出第一次比较中最小的元素;
2.记录好这个最小元素的位置,并把这个元素与第一个元素互换位置;
3.接着再从第二个元素开始,相邻的两个元素再进行比较,得出第二次比较中最小的元素;
4.记录好这个最小元素的位置,并把这个元素与第二个元素互换位置;
5.如此类推......最终实现有序排列。

选择排序的时间复杂度为O(N^2),这是一种不稳定的排序。

代码实现如下:

public static void selectionSort(int[] nums) {

for(int i = 0; i < nums.length-1; i++) {
    int location = i;
    for(int j = i; j < nums.length-1; j++) {
        if(nums[j+1] < nums[location]) {
            location = j+1;//记录下最小值的位置
        }
    }
    //交换两个位置的值
    if(location != i) {
        int temp = nums[i];
        nums[i] = nums[location];
        nums[location] = temp;
    }
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71313.html

相关文章

  • 基本排序 - Algorithms, Part I, week 2 ELEMENTARY SORTS

    摘要:我们讨论比较排序算法的理论基础,并结合本章应用排序和优先级队列算法。基本排序引入了选择排序,插入排序和。描述了,一种保证在线性时间内运行的排序算法。当我们后续实现排序算法时,我们实际上将这个机制隐藏在我们的实现下面。 前言 上一篇:栈和队列下一篇:归并排序 排序是重新排列一系列对象以便按照某种逻辑顺序排列的过程。排序在商业数据处理和现代科学计算中起着重要作用。在交易处理,组合优化,天体...

    BLUE 评论0 收藏0
  • 【算法日积月累】1-选择排序

    摘要:选择排序算法实现实现选择排序,记录最小元素的索引,最后才交换位置说明交换两个数组中的元素,在中有更简单的写法,这是的语法糖,其它语言中是没有的。和语言中比较器的实现前面我们说到了,我们为了突出排序算法的思想,将所有的例子仅限在数组排序中。 showImg(https://segmentfault.com/img/remote/1460000017909538?w=1949&h=1080...

    neuSnail 评论0 收藏0
  • 八大排序算法Java实现

    摘要:向后移动位简单选择排序基本思想常用于取序列中最大最小的几个数时。代码实现循环次数选出最小的值和位置交换位置堆排序基本思想对简单选择排序的优化。 概述 常见的八大排序算法,它们之间的关系如下: showImg(https://segmentfault.com/img/remote/1460000011395738?w=880&h=671); 直接插入排序 希尔排序 简单选择排序 堆排序...

    Coly 评论0 收藏0
  • Java常用的八种排序算法与代码实现精解

    摘要:直接插入排序的算法重点在于寻找插入位置。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。简单选择排序常用于取序列中最大最小的几个数时。将新构成的所有的数的十位数取出,按照十位数进行排序,构成一个序列。 1.直接插入排序 直接插入排序算法是排序算法中最简单的,但在寻找插入位置时的效率不高。基本思想就是将一个待排序的数字在已经排序的序列中寻找找到一个插...

    2501207950 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<