选择排序

原创 2018年04月17日 17:08:38

选择排序:遍历整个列表的元素,找出最大的(最小的),并将其添加到一个新的列表里,然后找出第二大的(第二小的)放在新列表里,知道得到一个元素相同的有序列表。
java代码如下:

 public static Integer[] selectionSort(Integer[] list){
        if(list == null){
            return null;
        }
        for (int i = 0; i < list.length; i++) {
            //临时变量值
            int temp = list[i];
            //临时变量索引位
            int index = i;
            //拿第一个元素跟其他元素比较大小
            for (int j = i+1; j < list.length; j++) {
                //list[j] < temp是从小到大排序,list[j] > temp 从大到小排序
                if(list[j] < temp){
                    //存储临时变量
                    temp = list[j];
                    //存储临时索引位
                    index = j;
                }
            }
            //如果不一样,说明位置需要改变
            if(index != i){
                list[index] = list[i];
                list[i] = temp;
            }
        }
        return list;
    }

算法规则:拿到列表第一个元素与其他元素比较,每一次比较后决定是否替换元素,重复下去直到与所有元素排序完。
算法时间:平均每次检查的元素为1/2*n,运行的次数为n次,运行时间为O(n x 1/2 x n)。大O表示法会省略常数。简写为O(n^2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HUandroid/article/details/79975210

Java语言中字符的处理

----摘要:本文主要讨论了Java语言中字符的特殊表达形式,尤其是中文信息的表达处理,阐述了字符处理的关键是要将十六位Unicode字符,转换为本地下层平台,也就是运行Java虚拟处理机的平台能够理...
  • wxyxl
  • wxyxl
  • 2001-05-15 16:15:00
  • 7434

对选择排序的理解

以下任何言论都完全是个人的理解,如有雷同纯属巧合,如有错误,希望大家多多指出,共同学习!谢谢!...
  • EvanWang1987
  • EvanWang1987
  • 2014-07-21 17:18:30
  • 993

选择排序及其优化

选择排序是八大内部排序方法中的一种,选择排序的整体的思想就是,我们在一个序列当中选出一个最大的(升序为最小的),然后和第一个元素交换,然后后面再在剩下的找最大的,再和第二个元素交换。这样最终就可以得到...
  • qq_26768741
  • qq_26768741
  • 2016-11-23 22:22:22
  • 1555

排序算法(四)选择排序及优化版本

选择排序,是通过每次选择最小的数或者最大的数,然后将它放在它应该出现的位置上。 具体实现过程:将0号下标的数据保存,在之后的数中选择一个最小的数,如果最小的数不是0号数,则将最小的数与0号下标的数进...
  • peiyao456
  • peiyao456
  • 2016-11-20 13:40:24
  • 3168

详解选择排序和对其优化

选择排序是每次从未排序的队列中取出最小值,然后插到已排序队列的尾部。 例子: 12, 78, 9,7,25;待排序的数组元素 [7] [78, 9, 12, 25]  进行第一次排序时,min = 7...
  • q745401990
  • q745401990
  • 2013-11-07 19:58:46
  • 1348

【算法】插入排序/冒泡排序/选择排序

插入排序 插入排序的思想为:从数组的第二个元素开始遍历整个数组。针对每个元素,依次将其前面的所有元素和他进行比较,大于它的元素均向后移动,最后将该元素插入。 插入排序是一种稳定的排序算法。 时间...
  • cauchyweierstrass
  • cauchyweierstrass
  • 2015-11-10 20:33:52
  • 1973

基础排序总结(冒泡排序、选择排序、插入排序)

1、冒泡排序1.1、简介与原理冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。冒泡排序原理即:从数组下标为0的位置开始,比较下标...
  • u013249965
  • u013249965
  • 2016-09-18 16:08:55
  • 4639

选择排序--递归实现

#include #include #include using namespace std;void selectionSort( int [], int );int main() { ...
  • myonelotus
  • myonelotus
  • 2016-02-28 21:09:41
  • 2038

JAVA中常见的四种排序--冒泡排序、选择排序、插入排序和快速排序 详解

1、排序的介绍 排序是将一群数据,按照指定的顺序进行排列的过程。 2、排序的分类 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序、选择排序和插入排序) 外部排序:数据量...
  • zyj0813
  • zyj0813
  • 2017-10-20 16:20:24
  • 274

选择排序----直接选择排序----java实现

思路: 第一趟比较:程序将记录定位在数组的第一个位置,拿第一个数据与后面的每个数据对比, 用一个变量mix记录比第一个数小的数据的索引,通过比较不断更新mix,最后得到整个数组中最小的元素的索引,将第...
  • snow_7
  • snow_7
  • 2016-07-11 15:19:15
  • 2189
收藏助手
不良信息举报
您举报文章:选择排序
举报原因:
原因补充:

(最多只允许输入30个字)