排序之冒泡排序

2023-05-16

话不多说先上代码

package main

import "fmt"

func bubleSort(arr *[5]int) {
	for i := 0; i < len(arr)-1; i++ {
		for j := 0; j < len(arr)-1-i; j++ {
			if arr[j] > arr[j+1] {
				arr[j], arr[j+1] = arr[j+1], arr[j]
			}
		}
		fmt.Printf("第%d趟排序后的结果是: %d\n", i+1, *arr)

	}
	fmt.Println("bubleSort = ", *arr)
}

func main() {
	var arr [5]int = [5]int{8, 10, 7, 5, 3}
	bubleSort(&arr)
	fmt.Println("arr = ", arr)
}

结果是

第1趟排序后的结果是: [8 7 5 3 10]

第2趟排序后的结果是: [7 5 3 8 10]

第3趟排序后的结果是: [5 3 7 8 10]

第4趟排序后的结果是: [3 5 7 8 10]

bubleSort = [3 5 7 8 10]

今天这篇排序太敷衍了,本来还有一个简单选择排序要写的,但是想想还是早点休息

冒泡排序的过程:

相邻的两个位置的数字不断进行比较,满足条件则交换,一趟排序好一个数据

注意是相邻的两个位置的数字,我个人理解觉得这样要稍微好理解点

五个int,排序4趟即可

假设数组里面有五个数字,我们要按照从小到大的顺序排序

8, 10, 7, 5, 3

第一趟 第一次比较

拿第一个位置和第二个位置的数据比较

8和10比,如果8>10则交换,但是不满足条件所以8不和10交换

第一趟 第一次比较结果是 8, 10, 7, 5, 3

第一趟 第二次比较

拿第二个位置和第三个位置的数据比较

10和7比,如果10>7则交换,满足条件所以10和7交换

第一趟 第二次比较结果是 8, 7, 10, 5, 3

第一趟 第三次比较

拿第三个位置和第四个位置的数据比较

10和5比,如果10>5则交换,满足条件所以10和5交换

第一趟 第三次比较结果是 8, 7, 5, 10, 3

第一趟 第四次比较

拿第四个位置和第五个位置的数据比较

10和3比,如果10>3则交换,满足条件所以10和3交换

第一趟 第四次比较结果是 8, 7, 5, 3, 10

至此我们发现,第一趟选出了最大的10,放到了最右边

现在的数据是 8, 7, 5, 3, 10

再来一趟~

第二趟 第一次比较

拿第一个位置和第二个位置的数据比较

8和7比,如果8>7则交换,满足条件所以8和7交换

第二趟 第一次比较结果是 7, 8, 5, 3, 10

第二趟 第二次比较

拿第二个位置和第三个位置的数据比较

8和5比,如果8>5则交换,满足条件所以8和5交换

第二趟 第二次比较结果是 7, 5, 8, 3, 10

第二趟 第三次比较

拿第三个位置和第四个位置的数据比较

8和3比,如果8>3则交换,满足条件所以8和3交换

第二趟 第三次比较结果是 7, 5, 3, 8, 10

至此我们发现,第二趟选出了剩余数字里面最大的8,放到了10的左边

第二趟我们就不需要再和10比了,因为第一趟已经确定了10是最大的,而且它已经被放到最右边,所以后面的就可以少判断一次

现在的数据是 7, 5, 3, 8, 10

。。。。。。

经过多次排序直到我们需要的结果

我们可以发现,一共进行四趟排序

第一趟排序需要进行四次比较

第二趟排序需要进行三次比较

第三趟排序需要进行二次比较

第四趟排序需要进行一次比较

就需要总结下规律了,n个数据进行冒泡排序,

需要进行 n-1 趟排序,每趟排序的比较次数比上一趟少一次

这个时候再看看代码就明白了

冒泡排序比较简单,性能也比较低,就当是给我数据结构一个开端了,好低端,弟弟开局

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排序之冒泡排序 的相关文章

  • 第1章 Rust安装

    Rust是一门安全的语言 xff0c 最近也加入到Linux内核中 xff0c 因此后续这门语言会越来越流行 xff0c 所以准备学习下 xff0c 本篇介绍Rust在Window平台上的安装过程 目录 安装步骤 1 到官网下载安装包 2
  • Proxmox VE 7.0升级到Proxmox VE 7.1虚拟机重启失败

    一单节点pve xff0c 版本为7 0 xff0c 顺手刷了一下更新 xff0c 升级到版本7 1 因为对其中的一个Centos 7虚拟机执行了yum update 重启此虚拟机 xff0c 启动失败 xff0c 尝试多次皆如此 kvm
  • Proxmox VE 修改集群名称

    作者 xff1a 田逸 xff08 formyz Proxmox VE集群一旦创建 xff0c 其集群的名称就固定下来 在Proxmox VE Web管理后台 xff0c 没有相应的菜单或按钮对应与集群名称的修改 xff08 仅仅发现修改虚
  • 第3章 高可用负载均衡集群规划

    作者 xff1a 田逸 xff08 formyz xff09 开篇之初 xff0c 先举几个反例 xff0c 来说明事前规划的重要性 案例一 xff1a 某广告媒体公司 xff0c 需要部署一套媒体播放系统 xff0c 由一台应用服务器和一
  • 《企业级Linux高可用负载均衡集群实践真传》目录

    第1章 关于负载均衡 2 1 1 负载均衡定义 2 1 2 负载均衡在生产环境中的基本要求 3 1 2 1 在线可扩展性 3 1 2 2 高可用性 3 1 2 3 多服务性 4 1 3 负载均衡基本功能 4 1 3 1 负载均衡 4 1 3
  • 4.3 实施部署Nginx 高可用负载均衡集群

    作者 xff1a 田逸 xff08 formyz xff09 部署大致可分为 xff1a 准备工作 配置 验证与交付几个步骤 xff0c 接下来按顺序逐一介绍 4 3 1 准备工作 Nginx高可以负载均衡集群准备工作分两个层面 xff1a
  • xrdp设置开机自启动 update-rc.d xrdp enable

    xrdp设置开机自启动 update rc d xrdp enable
  • FreeRDP 编译和使用介绍

    FreeRDP 编译和使用介绍 FreeRDP是开源的 xff0c 免费的RemoteDesktop Protocol RDP 执行版本 xff0c 它支持多个操作系统平台如Windows xff0c Linux和Android 源代码下载
  • CCF201809-3 元素选择器

    试题编号 xff1a 201809 3试题名称 xff1a 元素选择器时间限制 xff1a 1 0s内存限制 xff1a 256 0MB问题描述 xff1a 版本一 xff08 时间 xff1a 2018 10 23 xff09 xff08
  • CCF201812-4 数据中心

    试题编号 xff1a 201812 4试题名称 xff1a 数据中心时间限制 xff1a 1 0s内存限制 xff1a 512 0MB问题描述 xff1a 样例输入 4 5 1 1 2 3 1 3 4 1 4 5 2 3 8 3 4 2 样
  • R语言一次性更新全部packages

    install packages lib 61 lib lt libPaths 1 pkgs 61 as data frame installed packages lib stringsAsFactors 61 FALSE Package
  • ArchLinux详细安装及配置过程

    总结一下archlinux的安装过程 xff0c 也作为以后安装的参考 xff08 本篇细节内容有待完善 xff0c 目前仅供参考 xff09 可参考archlinux的官方安装教程 xff1a https wiki archlinux o
  • 虚拟机Linux扩容

    查看初始空间 查看分区 扩容 xff1a 1 磁盘分区 root 64 ecs 7837 fdisk dev sda WARNING DOS compatible mode is deprecated It s strongly recom
  • MySQL数据库优化的八种方式(经典必看)

    引言 xff1a 关于数据库优化 xff0c 网上有不少资料和方法 xff0c 但是不少质量参差不齐 xff0c 有些总结的不够到位 xff0c 内容冗杂 偶尔发现了这篇文章 xff0c 总结得很经典 xff0c 文章流量也很大 xff0c
  • .Net Core·寄托于IIS的REST服务405的问题

    Net Core WebAPI寄托于IIS xff0c 使用Put Delete谓词进行访问返回 34 HTTP Error 405 0 Method Not Allowed 34 的错误 IIS7 5中集成了名为 34 WebDAV 34
  • BruteXSS安装和使用

    1 安装Python2 7版本 https www python org downloads windows 使用版本V2 7 13 2 下载BurteXSS https sourceforge net projects brutexss
  • Linux环境CentOS安装xrdp,实现RDP连接(工具MobaXterm)

    root 64 localhost root yum install xrdp Repository extras is listed more than once in the configuration Last metadata ex
  • Linux环境安装iperf3(网络性能测试工具)

    root 64 localhost yum search iperf 已加载插件 xff1a fastestmirror Loading mirror speeds from cached hostfile base mirrors tun
  • C++教程

    C 43 43 教程 xff1a 源码 参考网址 xff1a C 43 43 简介 编程宝库 1 include lt iostream gt 2 using namespace std 3 4 int main 5 6 cout lt l

随机推荐

  • Linux命令执行命令自动输入y

    echo y rm i cc root 64 bogon shell touck cc bash touck 未找到命令 root 64 bogon shell touch cc root 64 bogon shell ll cc rw r
  • 查看Oracle数据库版本号

    Oracle 1 select from v version 2 select from product component version 3 set serveroutput on exec dbms output put line d
  • SQL Server2008官方下载地址

    官网地址 xff1a https www microsoft com zh cn download details aspx id 61 30438
  • C#+vs2019windos窗口实现数字图像基础处理(灰度化,二值化,对比度,亮度)

    目录 一 灰度化二 亮度三 对比度四 可变阈值二值化五 自适应二值化 一 灰度化 在三原色理论中 xff0c 所有颜色都是以红 绿 蓝三原色按不同比例混合构成的 xff0c 不同的红 绿 蓝三原色比例构成了不同的颜色 而灰度数字图像指的是图
  • 达梦数据库常见问题总结

    http www itpub net forum php mod 61 viewthread amp tid 61 1557982
  • Linux命令手动清除缓存echo 3 > /proc/sys/vm/drop_caches

    缓存cache占用过大 CPU达到85 以上 释放掉被系统Cache占用的数据命令 xff1a echo 3 gt proc sys vm drop caches 第一行 xff1a 从操作系统 OS 来看 xff1a 计算机共计 4040
  • MIB Browser failed to register OCX components..解决方法

    1 关闭操作系统的防火墙 xff0c 或者在高级选项里添加入站规则 xff0c 允许UDP 162端口消息进入即可 2 以管理员身份运行 bin mgmibbpe exe
  • Navicat For MongoDB安装及破解

    安装包转载网址 xff1a https blog csdn net qq 40737025 article details 82919700 baidu云 请求头自己加上中间有中文就自己去掉 xff0c 防止屏蔽 pan baidu com
  • C# Winform应用程序调用Microsoft RDP client control实现远程连接(VS2013)

    试了好一会 xff0c 终于成功了 xff01 先说问题 xff1a 1 控件已成功添加到工具箱中 但未在活动设计器中启用 注册控件 xff1a regsvr32 C Windows System32 mstscax dll VS2013提
  • C++中枚举enum详解

    转载博客地址 xff1a https blog csdn net bruce 0712 article details 54984371 众所周知 xff0c C C 43 43 语言可以使用 define和const创建符号常量 xff0
  • Android Rust JNI系列教程(一) 环境配置

    序 本系列文章将从rust环境搭建开始 逐步带大家了解使用rust进行Android JNI开发的基本技能 相关文章共分为如下几步 Rust JNI环境搭建 创建第一个Rust JNI项目Rust与Android互相调用Rust 调用And
  • 私人网盘nextcloud配置问题解决

    安装流程 配置流程非常简单 xff0c 主要是参考了下面这篇博文配置 xff0c 在宝塔面板下安装nextcloud xff0c 非常简单 博文跳转 https www vpsss net 5780 html 大概总结以下步骤 xff1a
  • Linux下使用rclone挂载网盘到本地

    Linux下使用rclone挂载网盘到本地 Rclone是一个支持挂载多数国外网盘的工具 Rclone官网传送们 目前Rclone支持挂载的网盘有 xff1a Google Drive Dropbox Google Cloud Storag
  • kvm 虚拟化安装 Ubuntu 18.04 server

    本文续上篇 裸金属服务器 kvm 虚拟化安装 win10 继续记录使用 KVM 在 Centos 7 5 裸金属服务器上安装 Ubuntu 18 04 Server的过程及遇到的问题 资源准备 首先要配置好 KVM 环境 xff0c 上文已
  • 创建回调函数

    1 新建一个空的工程 xff0c 在工程中随便创建一个类 xff0c 比如 h文件 import lt UIKit UIKit h gt typedef void resultBlock void 64 interface MyView U
  • 虚拟机的复制

    虚拟机的复制 xff08 1 xff09 虚拟机复制需要的两个重要文件 etc libvirt qemu xml文件 虚拟机的配置文件 xff0c 前端管理文件 xff0c 可以使用前端文件回到相应位置寻找后端硬盘文件 var lib li
  • 关于C++循环依赖问题的理解

    简介 如果有两个类 xff0c 类A和类B xff0c A类中有一个B类的对象b作为数据成员 xff0c B类中又有一个A类对象a作为数据成员 xff0c 像这样的情况就叫做循环依赖 那么如何解决类之间的循环依赖问题呢 xff1f 代码实例
  • AndroidStudio配置maven阿里云镜像

    写1行不行 xff0c 要写5行 xff0c 不要写 jcenter google xff0c 半天完不了 Android配置maven阿里云镜像 海阔天空185的博客 CSDN博客 android maven 阿里云 buildscrip
  • Android获取设备唯一标识

    一 IMEI xff1a 国际移动设备识别码的缩写 xff0c 其总长为15位 xff0c 每位数字仅使用0 xff5e 9的数字 双卡双待会有两个IMEI值 xff0c 并且在Android10以后就无法获取到了 xff0c 而且在模拟器
  • 排序之冒泡排序

    话不多说先上代码 package main import 34 fmt 34 func bubleSort arr 5 int for i 61 0 i lt len arr 1 i 43 43 for j 61 0 j lt len ar