开发者社区> 天飞> 正文

JAVA数组之选择排序算法

简介:
+关注继续查看

注意选择排序和冒泡排序的异同点:

它们两者比较的次数一样,O【N^2】的时间。

但选择排序的交换次数要比冒泡少。我想是因为它在每次循环之前,就设计了一个锚点。(如下面的MIN),这样就避免了已排序好的元素再交换。其适用于排序量少而交换多。

复制代码
public void insert(long value)
      {
          int j;
          int i;
          long temp;
          long min;
          a[nElems] = value;
          nElems++;
          for(j = 0; j < nElems; j++){
              min = a[j];
              for(i = j; i < nElems; i++){
                  if (a[j] > a[i]){
                      min = a[i];
                      temp = a[i];
                      a[i] = a[j];
                      a[j] = temp;
                  }
              }
            }

          System.out.print("Insert  value: " + value);
          System.out.println("");
      }
复制代码


输出没有差别

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JavaScript ~ 排序算法(选择排序)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link type="text/css" rel="stylesheet" href="style/flex.
968 0
javascript: 带分组数据的Table表头排序
如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足“分组支持”,贴在这里备份 1 DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.
1017 0
《排序算法》——堆排序(大顶堆,小顶堆,Java)
十大算法之堆排序:堆的定义如下:   n个元素的序列{k0,k1,...,ki,…,k(n-1)}当且仅当满足下关系时,称之为堆。   " ki=k2i+1.(i=1,2,…,[n/2])"   若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,   则完全二叉树中每一个节点的值的都大于或等于任意一个字节的值(如果有的话),称之为大顶堆。
1717 0
python实现选择排序算法
选择排序,简单而直观,其原理是把序列中的最小值或者最大值找出来放在起始位置,然后再从剩下的序列中找出极值放到起始位置之后,以此类推最后就完成排序。 完成这个过程大致思想:首先需要一个记录器,记录排序排到第几个位置了,然后在剩余的序列中找到极值下标,最后将记录器位置和极值位置元素交换,完成本次选择排序。
1255 0
【算法导论】选择排序法
选择排序法         选择排序其实是冒泡法的一种改进,其基本思路也是:先确定最小元素,再找次最小元素,最后确定最大元素。         它与冒泡排序的最大区别在于:冒泡排序是只要碰见比它大的元素就交换,而选择排序是直接将元素放在最终的确定位置,从而避免了多次交换过程。
963 0
ML/DL:关于机器学习、深度学习算法模型的选择
ML/DL:关于机器学习、深度学习算法模型的选择
60 0
+关注
天飞
一个运维老同志
1512
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载