选择排序是有三个记录值,其中一个记录值标记着需要比较的数组的第一个值,也是变换后的最小值。其中两个记录值记录需要比较的两个对象,而且记录临时最小值的位置和记录另一个还未比较的数据。

public class ArraySel {private long a[];private int nElems;public ArraySel(int maxSize) {a=new long[maxSize];nElems=0;}//插入public void insert(long value) {a[nElems++]=value;}//显示public void display() {for(int j=0;j<nElems;j++)System.out.print(a[j]+" ");System.out.println();}//排序public void selectionSort() {int out,in,min;for(out=0;out<nElems;out++) {min=out;//每一次循环,out与min的位置都一样//需要比较的另一个对象的开始位置是第二个,即out+1或者min+1for(in=out+1;in<nElems;in++) {if(a[in]<a[min])min=in;}//比较循环完成后,就找到一次外层循环的最小值
            swap(out, min);}}private void swap(int one,int two) {long temp=a[one];a[one]=a[two];a[two]=temp;}}

public class Test {public static void main(String[] args) {int maxSize=100;ArraySel arrayBub=new ArraySel(maxSize);arrayBub.insert(77);arrayBub.insert(99);arrayBub.insert(44);arrayBub.insert(55);arrayBub.insert(22);arrayBub.insert(88);arrayBub.insert(11);arrayBub.insert(0);arrayBub.insert(66);arrayBub.insert(33);arrayBub.display();arrayBub.selectionSort();arrayBub.display();}}

转载于:https://www.cnblogs.com/S-Mustard/p/8097434.html

排序_简单排序_选择排序相关推荐

  1. [ 数据结构 -- 手撕排序算法第四篇 ] 选择排序

    手撕排序算法系列之第四篇:选择排序. 从本篇文章开始,我会介绍并分析常见的几种排序,大致包括直接插入排序,冒泡排序,希尔排序,选择排序,堆排序,快速排序,归并排序等. 大家可以点击此链接阅读其他排序算 ...

  2. c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

  3. C语言排序算法(一)——选择排序实现

    C语言排序算法(一)--选择排序实现 编写程序,实现从键盘输入10个数,并用选择法从小到大排序. 简单选择排序的基本思想:第1趟,在待排序记录r[1]r[n]中选出最小的记录,将它与r[1]交换:第2 ...

  4. 计算机编程语言排序,计算机入门必备算法——选择排序法

    引言 昨天我们学习了二分查找法,但是二分查找法使用的前提必须是有序的数组或者列表,(当然很多的算法都是仅在数据有序的前提下才能使用) 但是在实际工作中,我们接收到的数组不可能都是有序的,那怎么办呢?于 ...

  5. 加标志量的选择排序算法c语言,置换选择排序算法详解(C语言实现)

    上一节介绍了增加 k-路归并排序中的 k 值来提高外部排序效率的方法,而除此之外,还有另外一条路可走,即减少初始归并段的个数,也就是本章第一节中提到的减小 m 的值. m 的求值方法为:m=⌈n/l⌉ ...

  6. 选择排序(1)------直接选择排序

    选择排序: 每一次(第i次)循环时,在后面待排序的元素中选择排序码最小的元素,把它放在这次有序序列的第i个位置.当第n-2次循环时,只有一个元素未排序,就可以终止循环. 接下来介绍一种比较常用的选择排 ...

  7. python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...

    最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...

  8. 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序

    简介 插入排序和比较排序是排序算法中比较基础和简单的两种,其时间复杂度均为 ,在分析算法时间复杂度时,我们往往会只会分析比较开销,但是交换开销也确实存在.这里我将综合比较开销和交换开销,来分析一下插入 ...

  9. 简单写一下选择排序算法

    #include<stdio.h> #include<stdlib.h> #define M 10 //随机生成数组中的元素 void input(int *s, int si ...

  10. java 排序_Java中常见的排序算法有哪些?---选择排序

    排序相关的的基本概念 排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域, 即多个数据 ...

最新文章

  1. 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
  2. Netty源码分析第1章(Netty启动流程)----第4节: 注册多路复用
  3. 批量处理---提高处理速度
  4. 浅谈-tomcat中的项目之间的访问
  5. 运营商取消不限量套餐 网友:这是变相涨价
  6. 字符串匹配之PabinKarp(模式匹配)
  7. ant nutch mysql_ant编译apache-nutch-2.2.1结合mysql实现爬虫的安装配置全过程
  8. 网站云服务器 网络拓扑,云服务器网络结构拓扑图
  9. 【沃顿商学院学习笔记】宏观经济学——09欧元区Euro Zone
  10. 基于docker的test-containers环境百宝箱
  11. 不来了解下JVM支持的语言有哪些?
  12. Spring Cloud(14)——Function
  13. linux下configure命令详细介绍
  14. 数据库系统原理 - - (1)数据库系统概论
  15. 计算机博士论文 评阅意见,博士论文评阅意见
  16. 我的世界服务器无限背包,我的世界无限背包存档
  17. Linux系统NAT实现机制的升级改进
  18. 中国数学家秦九韶算法示例
  19. 太原理工大学计算机学院王华,王华(首都师范大学信息工程学院教授)_百度百科...
  20. python线程创建对象_python线程池菜鸟教程

热门文章

  1. C++设计模式——适配器模式(对象适配器、类适配器)
  2. linkText()的用法
  3. PHP curl_setopt函数用法介绍中篇
  4. 高效的沟通方式-会议
  5. 每瓶汽水一元,两个空瓶可以置换一瓶汽水,现有N元,最多能喝多少瓶?
  6. 省AK赛——J - Happy Great BG
  7. 对象不支持“handleError”属性或方法 ajaxfileupload.js
  8. Windows server 2003 关于DNS的配置以及区域复制测试
  9. 设计模式之一:单例模式(Singleton Pattern)
  10. 开源分布式中间件 DBLE Schema.xml 配置解析