java常用排序算法——冒泡排序,选择排序概述

前言:

开始接触算法了,记录下心得。打好基础,daydayup! 

算法 

算法是指解决某个实际问题的过程和方法

 排序算法

排序算法指给混乱数组排序的算法。常见的有:冒泡排序,选择排序

 冒泡排序:

冒泡排序指在数组中依次俩俩对比,将较大值/较小值放在数组的后面,最终实现排列

 实验1:将混乱的数组以从小到大的位置排序

原理:第一个位置和第二个位置对比,将较大值移至后位;随后将第二位和第三位对比,将较大值移至后位...最终数组将按从小到大的顺序排序

实现:首先思考如果需要完成排列,每个位置都能够对比到需要循环几次;其次思考每个数字需要对比几次,最后思考如何把数字交换位置

操作如下:

 选择排序

选择排序指选择当前位置,遍历之后的每一个位置使最大值/最小值与当前位置交换

 实验2:将混乱的数组以从小到大的位置排序

原理:首先以第一个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位;随后以第二个位置为参照,将每个位置和第一个位置做对比,把较大值移至后位...最终数组将按从小到大的顺序排序

实现:可以理解为当前位置不动,每一个位置都要和当前位置作比较,思考每一个“当前位置”需要对比几回,随后思考每一个位置都对比完需要经过几轮

操作如下:

拓展:优化算法 

由于数字每一次交换会消耗性能,如何实现少交换?

记录索引位置即可,将当前位置设定成最小值的索引位置,随后把每一个位置的数据都和当前位置对比,最后替换最小值索引,最后把该索引的数字和当前位置的数字替换即可。

操作如下:

 

总结: 

算法是编程的灵魂。虽然条条大路通罗马,但是一个好的算法,能使运行更加快捷,要多练多思考。整理结束,撒花!!!

 

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

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

相关文章

方法中单独使用return关键字

一、return关键字的单独使用 二、示例代码 public class ReturnDemo {public static void main(String[] args) {chu(10,0);chu(10,2);}public static void chu(int a,int b){if (b 0) {System.out.println("除法出错,除数不能为零");return;}System.ou…

【MQ】消息队列概述

📝个人主页:五敷有你 🔥系列专栏:MQ ⛺️稳中求进,晒太阳 定义 消息队列:一般我们简称为MQ(Message Queue) Message Queue :消息队列中间件,很多初学者认为,MQ通过消息的发送…

ubuntu18.04编译OpenCV-3.4.19+OpenCV_contrib-3.4.19

首先确保安装了cmake工具 安装opencv依赖文件 sudo apt-get install build-essential sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev li…

分享7款前端直接使用的项目动画特效(附在线演示)

分享7款非常不错的项目动画特效 其中有jQuery特效、canvas特效、CSS动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 图片分割组合特效 首先会把图片分割成均匀的小块 之后又会将这些小块拼接组合起来 以下效…

go go.mod file not found in current directory or any parent directory

场景: 安装好 liteide 之后创建了第一个 “hello world” 的golang 项目,却报了如下错误。 原因分析: go 的环境配置问题。与 golang 的包管理有关。 解决方案: 如果你是 Windows 系统,快捷键 “WinR”&#xff0c…

吴恩达机器学习-可选实验:特征缩放和学习率(多变量)

文章目录 目标工具概念问题陈述数据集多变量梯度下降学习率a9.9e-7a9e-7a1e-7 特征缩放实现 恭喜致谢 目标 在本实验中,你将: 利用在上一个实验中开发的多变量例程对具有多个特征的数据集运行梯度下降探讨学习率alpha对梯度下降的影响通过使用z-score归一化的特征…

图论入门题题解

✨欢迎来到脑子不好的小菜鸟的文章✨ 🎈创作不易,麻烦点点赞哦🎈 所属专栏:刷题_脑子不好的小菜鸟的博客-CSDN博客 我的主页:脑子不好的小菜鸟 文章特点:关键点和步骤讲解放在 代码相应位置 拓扑排序 / 家谱…

智慧文旅|AI数字人导览:让旅游体验不再局限于传统

AI数字人导览作为一种创新的展示方式,已经逐渐成为了VR全景领域的一大亮点,不仅可以很好的嵌入在VR全景中,更是能够随时随地为观众提供一种声情并茂的讲解介绍,结合VR场景的沉浸式体验,让观众仿佛置身于真实场景之中&a…

5个实用的PyCharm插件

大家好,本文向大家推荐五个顶级插件,帮助开发人员提升PyCharm工作流程,将生产力飞升到新高度。 1.CodiumAI 安装链接:https://plugins.jetbrains.com/plugin/21206-codiumate--code-test-and-review-with-confidence--by-codium…

中医把脉笔记

目录 寸关尺对应的五脏六腑自己给自己把脉参考文章 寸关尺对应的五脏六腑 自己给自己把脉 up主道道总是睡不着的把脉教学视频 用中指按住小骨头下面一点,这是关脉,左手的关脉对应肝脏。 参考文章 中医脉诊动图(建议收藏) 最全…

linux下访问MySQL,检索数据库库表字段报错 Public Key Retrieval is not allowed(不允许公钥检索)

报错如下: 解决办法 在连接数据库的配置文件中加上&allowPublicKeyRetrievaltrue语句,如下: jdbc:mysql://localhost:3306?useUnicodetrue&zeroDateTimeBehaviorconvertToNull&autoReconnecttrue&characterEncodingutf-8&…

如何 借助 AI + bat,1分钟内建立100个自定义文件和文件夹?

01 你好,我是云桃桃。 最近,我在写web系列的知识,做的过程中遇到过不少问题。今天,就来说说,我解决的一个批量新建文件/文件夹的问题。 事情是这样的。首先,我的大纲基本在幕布里已经弄好了,…