数据结构和算法之排序五:选择排序

  我们上一篇谈到了冒泡排序,其实我也说了,这两个排序方式何其相似,如果掌握了冒泡排序再来进行选择排序的理解我觉得完全没有太大的问题。那么什么叫做选择排序呢?我们可以理解为矮子里面挑高个,比如说呀有一个富翁来到了一个村庄,看见一群女的,这时候他是不是会把自己的老婆拿出来比较,遇到更好看的是不是要带走,直到比较一圈下来,他手里的那个妹子是不是最漂亮的,这时候他消停一下,过段时间觉得腻味了是不是又要出来换了,这时候他把那个妹子放在家里,在从头开始寻找,你说找到的是不是又会是最漂亮的。整个N-1次,那是不是这样妹子的漂亮榜单是不是就有序了。话不多说,看图理解下我讲的故事:

  

 

  所以说呀这就是强盗行为,遇到自己想的就拿过来,还有比这更强盗的么。上代码表示敬意:

public static void selectSort(int arr[]){//外层循环控制我们将要确定的数据for(int i = 0;i < arr.length - 1;i++){//里层循环控制比较的数据for(int j = i + 1;j < arr.length;j++){if(arr[i] < arr[j]){int key = arr[i];arr[i] = arr[j];arr[j] = key;  }}}
}

   我们可以看见我们控制次数的时候进行了-1的操作,这时因为你都保证前边所有的数据都通过排序处理好了,那么最后一个可不就是无冕之王,待着最后了呗。里层循环+i的原因是因为我们在经历过i次循环以后是不是前面的i个数据都已经默认有序了,还去搞别人干嘛。所以为了优化,我们可以+i。所以在这里我们可以简单看出来冒泡和选择,冒泡就是两个邻居之间进行比较,进行值传递,保证最后一个数据的最大或者最小。选择排序就是第一个数据拿着万贯家财挑美女,最好看的带回家先,保证每次带回家的都是剩下的一堆中自己最想要的。

转载于:https://www.cnblogs.com/zslli/p/7932849.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio Code使用问题

1、打开vscode黑屏 右击vscode快捷方式–>属性–>兼容性—>兼容模式打钩 重启vscode就可以了。 2、vscode终端没有显示路径&#xff0c;不能输入 显示如下图 则关闭VS Code ,右键单击VS Code 图标&#xff0c;选择属性->兼容性&#xff0c;取消勾选 已兼容模式运…

Java社区调查结果:74%的开发人员希望减少详细程度

一个新的JDK增强建议&#xff08;JEP&#xff09;在Java社区中风起云涌&#xff1a;JEP286。该建议建议在Java的未来版本中引入局部变量类型推断&#xff0c;以简化Java应用程序的编写。 在下面的文章中&#xff0c;我们将解释它的含义以及它将如何影响您的代码。 新帖&#…

coherence安装_Oracle Coherence:分布式数据管理

coherence安装本文介绍如何使用Oracle Coherence提供分布式&#xff08;分区&#xff09;数据管理。 在下面的示例应用程序中&#xff0c;创建了一个名为OTV的新集群&#xff0c;并且在该集群的两个成员之间分配了一个名为user-map的缓存对象。 二手技术&#xff1a; JDK 1.6.…

JavaFX技巧来节省内存! 属性和可观察物的阴影场

在 JavaFX的世界中&#xff0c; Properties API允许UI开发人员将值绑定到UI控件。 这种功能非常容易&#xff0c;但是当对象模型经常使用属性时&#xff0c;应用程序可能会很快耗尽内存。 我通常会编写两个单独的对象&#xff0c;例如pojo类和表示模型对象。 此技术通常在基于S…

如何在Hibernate Search 5.5.2 / Apache Lucene 5.4.x中处理停用词?

停用词&#xff0c;例如[“ a”&#xff0c;“ an”&#xff0c;“ and”&#xff0c;“ are”&#xff0c;“ as”&#xff0c;“ at”&#xff0c;“ be”&#xff0c;“ but”&#xff0c;“ by”&#xff0c;“ for”&#xff0c;“ if”&#xff0c;“在”&#xff0c;“成…

Java----前端验证之验证码额实现

验证码是常用的登录验证方式之一,最大的作用就是保证安全,验证码的生成在java中实现的方式有很多种,比如后台生成传输到前端页面,在前台直接生成进行验证,下面写一个最简单实现验证码验证登录的例子. 生成验证码: 验证码验证逻辑: From表单登录: 没错,就这么的简单.在scripts生…

使用Spring Boot隔离集成测试和模拟依赖项

集成测试可能很慢且不可靠&#xff0c;因为它们依赖于系统中过多的组件。 在某种程度上&#xff0c;这是不可避免的&#xff1a;这里的集成测试是为了验证系统的每个部分如何与其他内部或外部组件一起玩。 但是&#xff0c;我们可以通过仅分解所需的依赖关系而不是整个系统来改…

Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4

说明&#xff1a; 1、使用的Wine版本是深度出品&#xff08;Deepin&#xff09;&#xff0c;已经精简了很多没用的配置&#xff0c;使启动能非常快&#xff0c;占用资源小。 2、由于Xshell 5的C库无法在这个Wine版本运行&#xff0c;即使升级官方原版的2版本也无法解决&#xf…

电脑缺失MSVCP110.dll文件

安装某软件显示如下错误。 错误&#xff1a; 原因&#xff1a;电脑缺少MSVCP110.dll系统文件。C:\Windows\System32目录下没有此文件。 解决&#xff1a; 下载vcredist_x64直接双击安装&#xff0c;安装完成后就可以继续安装之前安装不了的软件了。。 这里是我下载的&#…

在WildFly的REST Web服务中与Jackson的双向关系

这是使用Jackson的REST Web服务中Java实体之间的双向关系的示例。 假设我们在两个实体Parent和Child之间存在双向关系。 使用MySQL工作台为这两个表生成SQL模式文件。 DROP SCHEMA IF EXISTS bidirectional_schema ; CREATE SCHEMA IF NOT EXISTS bidirectional_schema DEFA…

Postman安装与使用(网络请求神器)--post、get请求

安装 1、Postman最早是作用chrome浏览器插件存在的&#xff0c;所以&#xff0c;你可以到chrome商店搜索下载安装&#xff0c;因为重所周知的原因&#xff0c;所以&#xff0c;大家都会找别人共享的postman插件文件来安装。由于2018年初Chrome停止对Chrome应用程序的支持。 官…

openshift用户管理_OpenShift Express Web管理控制台:入门

openshift用户管理本周&#xff0c; 最新版本的OpenShift为已经很棒的PaaS Cloud提供商带来了两个非常好的功能。 首先&#xff0c;JBoss AS已从7.0升级到7.1&#xff0c;并且所有新的Express Web Management Console已作为预览发布。 在本文中&#xff0c;我们将研究如何使用此…

linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件

1、环境: window操作系统中安装FlashFXP 软件或xftp&#xff1b; 服务器端的操作系统为centos8&#xff1b; 2、检查安装vsftpd软件 查看所有的安装的软件包 并在结果中查找包含vsftp 的文件 rpm -qa | grep vsftpd如果没有装则使用yum命令安装 yum -y install vsftpd3、创…

Openshift源中的高可用性Drools无状态服务

嗨&#xff0c;大家好&#xff01; 在这篇博客文章中&#xff0c;我想举一个简单的例子&#xff0c;展示使用Openshift 3&#xff08;Docker和Kubernetes&#xff09;扩展Drools Stateless服务有多么容易。 我将展示如何通过按需提供新实例来扩展我们的服务&#xff0c;以及如何…

jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

jpa jsf我们创建了这篇文章&#xff0c;将展示如何使用以下工具创建完整的Web应用程序&#xff1a;Tomcat7&#xff0c;带有Primefaces的JSF2&#xff08;Facelets和Libraries&#xff09;&#xff08;具有AutoComplete&#xff09;&#xff0c;JPA / Hibernate&#xff08;具有…

错题

1. 本题考查String对象的声明和赋值方式。C#中没有new String() 这种方式来构造字符串。故选 AC 2. 在CSS中&#xff0c;控制列表样式的属性有&#xff1a;list-style-type&#xff0c;list-style-position&#xff0c;list-style-image&#xff0c;list-style equals比较的是像…

javascript-发布订阅模式

说明&#xff1a;本篇文章转载自小火柴的蓝色理想的一篇博文。原文地址&#xff1a;http://www.cnblogs.com/xiaohuochai/p/8031564.html 发布—订阅模式又叫观察者模式&#xff0c;它定义对象间的一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖…

python-列表list和元组tuple

list Python内置的一种数据类型是列表&#xff1a;list。list是一种有序的集合&#xff0c;可以随时添加和删除其中的元素。 比如&#xff0c;列出班里所有同学的名字&#xff0c;就可以用一个list表示&#xff1a; >>> classmates [Michael, Bob, Tracy] >>&g…

jsf表单验证_动态表单,JSF世界期待已久

jsf表单验证新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件。 通常&#xff0c;如果知道行/列的数量&#xff0c;元素的位置等&#xff0c;则可以通过h&#xff1a;panelGrid或p&#xff1a;panelGrid构建非常简单的表单。 静态表单是正确的。 但是&#xff0c;如果在运行…

转载黑客是如何黑到你手机的?绝对涨姿势,一位黑客的Wi-Fi入侵实录!

声明&#xff1a;这是一虚构的故事&#xff0c;因此对图片均进行了模糊化处理。内容整理自网络&#xff01; 故事的主人公小黑是一名从事IT相关工作的技术宅男。五一长假来临&#xff0c;宅在家中的他相当无聊&#xff0c;打开手机上的Wi-Fi模块&#xff0c;发现附近有将近10个…