数组排序算法

news2024/11/24 19:25:20

数组排序算法

  • 一、冒泡排序算法
  • 二、直接选择排序
  • 三、插入排序
  • 四、反转排序

一、冒泡排序算法

冒泡排序算法:
类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断向前移动。
基本思想:
冒泡排序的基本思想是对比相邻的两个元素值,如果条件满足就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。
算法思路:
冒泡算法由双层循环实现,其中外部循环用于控制排序轮数,一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内部循环主要用于对比数据中每个相邻元素的大小,以确定是否交换位置,对比和交换次数排序轮数而减少。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、直接选择排序

与冒泡排序相比,直接选择排序的交换次数更少,所以速度更快些。
基本思想:
将指定排序位置与其他数组元素分别对比,如果条件满足就交换元素值,注意这里区别冒泡排序,不说交换相邻元素,而是把满足条件的元素与指定的排序位置交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后整个数组都成为已排好的格式。
在这里插入图片描述
在这里插入图片描述

三、插入排序

插入排序,又叫直接插入排序。实际中,我们玩扑克牌的时候,就用了插入排序的思想
基本思想:
在待排序的元素中,假设前n-1元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序,按照此法对所有的元素进行插入,直到整个序列有序。
但是我们并不能确定待安排元素中究竟哪儿一部分是有序的,所以我们一开始只能认为第一个元素是有序的,一次将后的元素插入到这个有序序列中来,直到整个序列有序为止。
在这里插入图片描述
在这里插入图片描述

四、反转排序

以相反的顺序把原有的数组内容重新排序
基本思想:
把数组最后一个元素与第一个元素替换,倒数第一个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。

在这里插入图片描述
在这里插入图片描述

排序的方法还有很多,感兴趣的伙伴可以了解了解,但是一般情况下我们只需要记住一个方式就可以,并且排序的方法也是可以用命令来完成,不一定必须使用脚本的形式。下一篇就分析如何使用命令行完成数组的排序方法。

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

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

相关文章

并发编程(二) — 内存可见性问题

目录 前言 内存可见性问题 synchronized volatile CAS算法 CAS算法原理 CAS算法应用场景 CAS算法代码实现 参考目录 前言 在谈共享变量的内存可见性问题之前,先谈谈线程安全问题 ,线程安全问题是指当多个线程同时读写一个共享资源并且没有任何同…

c高级day4作业

有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下使用break关键字打印九九乘法表,提示:printf "%d * %d %d" $i $j $((i*j)) #!/bin/bash for i in m1 m2 m3 m4 do#文件夹…

只限今日免费,Midjourney 5.1震撼更新!逼真到给跪,中国情侣细节惊艳,3D视频大片马上来

来源 | 新智元 微信号:AI-era 【导读】全新升级的Midjourney让全网又疯狂了,创造力解禁,出图更逼真。重要的是,限时免费到今天,要玩的抓紧了。 一个月前,Midjourney V5画的一对中国完美情侣在网上爆火&am…

涅槃重生,BitKeep如何闯出千万用户新起点

在全球,BitKeep钱包现在已经有超过千万用户在使用。 当我得知这个数据的时候,有些惊讶,也有点意料之中。关注BitKeep这几年,真心看得出这家公司的发展之迅速。还记得2018年他们推出第一个版本时,小而美,简洁…

python和pycharm的安装(安装包免费下载共享)

说明: 本文内容包括Python和Pycharm安装。 一、python安装: python是一门编程语言,安装python是为了能在电脑上使用这门语言。 1、python下载 下载链接:https://pan.baidu.com/s/1mWsJjO8HngNQtINCzu0bBA 提取码:9…

又又又发现了一个 AI 插件神器 TeamSmart

简介 TeamSmart AI 是最近比较火的 Chrome 插件,它是基于 ChatGPT 集成的 AI 助手团队工具 对,没错,是一个团队。这个团队里面有许多不同角色的成员,每隔成员都有自己的专业领域,比如商业、市场营销、灵魂写手、程序…

批量查看域名历史软件-网站老域名批量查询注册

未注册备案域名批量扫描软件 未注册备案域名批量扫描软件是专门用于批量扫描未备案的域名的一种工具。它可以快速识别未备案的域名,并帮助用户抓住还未被注册的值得备案的域名,以便用户及时注册备案并使用。 该软件主要具有以下几个优点: 高…

【小程序】输入框检验姓名、身份证(正则表达式)并提交

目标 输入绑定姓名、身份证号并进行校验若未填或校验不通过则显示绑定失败的轻提示若通过校验并提交则显示绑定成功 使用Vant Weapp (gitee.io)库。 思路与代码 html: wx:model绑定输入框输入的值data-key是一个属性,在js中的e.currentTarget.datase…

【新星计划-2023】ARP“攻击”与“欺骗”的原理讲解

网络管理员在网络维护阶段需要处理各种各样的故障,出现最多的就是网络通信问题。除物理原因外,这种现象一般是ARP攻击或ARP欺骗导致的。无论是ARP攻击还是ARP欺骗,它们都是通过伪造ARP应答来实现的。 一、ARP攻击原理 一般情况下&#xff0…

TypeScript语言编译命令

1. 安装 npm install -g typescript2. 编译 tsc工具是TypeScript编译器的控制台接口,它可以将TypeScript文件编译成JavaScript文件; 编译文件: tsc [options] [file ...]查看编译命令的帮助信息: tsc --help或者 tsc -h或者 tsc…

微服架构基础设施环境平台搭建 -(一)基础环境准备

微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动…

【Java AWT 图形界面编程】IntelliJ IDEA 乱码问题最佳配置方案 ( 配置文件编码 | 配置编译器编码参数 | 配置运行时编码参数 )

文章目录 一、IntelliJ IDEA 乱码问题二、IntelliJ IDEA 乱码问题最佳配置方案1、文件编码设置成 UTF-82、编译器编码参数设置成 UTF-83、 配置运行时编码参数为 GBK 一、IntelliJ IDEA 乱码问题 在 IntelliJ IDEA 中开发 AWT / Swing 图形界面程序 , 经常遇到乱码问题 ; 文件…

博文的跑路笔记

HTML CSS Flex布局 使用flex布局 容器 .box {display: flex; }行内元素 .box {display: inline-flex; }flex布局后,float、vertical-align、clear失效。 容器属性 flex-direction:主轴方向 属性值 row:子元素起点在左,左到右。…

初级面试问到rabbitMQ,看这一篇文章就够了!

一、rabbitMQ的基础要点回顾 1.使用场景 1)解耦:使用消息队列避免模块间的直接调用。将所需共享的数据放在消息队列中,对于新增的业务模块,只要对该类消息感兴趣就可以订阅该消息,对原有系统无影响,降低了…

防范化解灾害风险,科技筑牢安全城墙

气象灾害:大气圈变异活动会对人类生命财产和国民经济及国防建设等造成的直接或间接损害。我国气象灾害种类繁多,不仅包括台风、暴雨、冰雹、大风、雷暴、暴风雪等天气灾害,还包括干旱、洪涝、持续高温、雪灾等气候灾害。此外,与气…

Docker中部署监控

Docker概念 一、部署Prometheus+grafana环境 1.1 、部署Prometheus+grafana环境 docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0 docker tag registry.cn-hangzhou.aliyuncs.com/lhrbest/lhrprometheus:1.0 lhrbest/lhrprometheus:1.01.2 、创建镜…

【分布式事务】Seata 之 @GlobalTransactional 在TM侧的核心逻辑

文章目录 一、概述二、GlobalTransactional核心逻辑三、GlobalTransactional核心源码解读四、事务能力的启停运行期的开关变更 一、概述 Seata 依赖 Spring 的注解机制,实现声明式事务,即开发者给 Bean 使用GlobalTransactional注解 ,Seata …

深度学习03-卷积神经网络(CNN)

简介 CNN,即卷积神经网络(Convolutional Neural Network),是一种常用于图像和视频处理的深度学习模型。与传统神经网络相比,CNN 有着更好的处理图像和序列数据的能力,因为它能够自动学习图像中的特征&…

GIS 根据投影坐标点获取投影坐标所属的投影坐标系EPSG

什么是EPSG? EPSG(The European Petroleum Survey Group,官网 http://www.epsg.org/)维护着空间参照对象的数据集,OGC标准中空间参照系统的SRID(Spatial Reference System Identifier)与EPSG的空间参照系统ID相一致。…

冒泡数组实现和冒泡数组的改进以及插入法排序

概念 在数组排序的过程中&#xff0c;每次比较相邻的两个数&#xff0c;并且把大的数放在后面 例如{1&#xff0c;3&#xff0c;5&#xff0c;7&#xff0c;9&#xff0c;2&#xff0c;4&#xff0c;6&#xff0c;8&#xff0c;10} 实现 #include<iostream> using names…