Go语言冒泡排序(全网最详细)_深漂小码哥的博客-CSDN博客_go冒泡排序


本站和网页 https://blog.csdn.net/qq2942713658/article/details/113029588 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Go语言冒泡排序(全网最详细)_深漂小码哥的博客-CSDN博客_go冒泡排序
Go语言冒泡排序(全网最详细)
深漂小码哥
于 2021-01-23 10:58:03 发布
1508
收藏
分类专栏:
数据结构与算法
文章标签:
冒泡排序
Go语言冒泡排序
算法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq2942713658/article/details/113029588
版权
数据结构与算法
专栏收录该内容
15 篇文章
0 订阅
订阅专栏
冒泡排序的基本思想:通过对排序序列从后向前,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后往前移动,就像水底的气泡一样向上冒
案例演示:
假设一个数组为:24,69,80,57,13
第1轮:
第1次排序后:(24与69进行比较)
24,69,80,57,13
第2次排序后:(69与80进行比较)
24,69,80,57,13
第3次排序后:(80与57进行比较,交换)
24,69,57,80,13
第4次排序后:(80与13进行比较,交换)
24,69,57,13,80
第2轮:
第1次排序后:(24与69进行比较)
24,69,57,13,80
第2次排序后:(69与57进行比较,交换)
24,57,69,13,80
第3次排序后:(69与13比较,交换)
24,57,13,69,80
第3轮:
第1次排序后:(24与57进行比较)
24,57,13,69,80
第1次排序后:(57与13进行比较,交换)
24,13,57,69,80
第4轮:
第1次排序后:(24与13进行比较,交换)
13,24,57,69,80
每轮实现:
第1轮:
package main
import "fmt"
// 冒泡排序
func bubbleSort(arr *[5]int) {
for j := 0; j < 4; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第1轮排序后:", (*arr))
func main() {
arr := [5]int{24,69,80,57,13}
bubbleSort(&arr)
第2轮:
package main
import "fmt"
// 冒泡排序
func bubbleSort(arr *[5]int) {
for j := 0; j < 4; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第1轮排序后:", (*arr))
for j := 0; j < 3; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第2轮排序后:", (*arr))
func main() {
arr := [5]int{24,69,80,57,13}
bubbleSort(&arr)
第3轮:
package main
import "fmt"
// 冒泡排序
func bubbleSort(arr *[5]int) {
for j := 0; j < 4; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第1轮排序后:", (*arr))
for j := 0; j < 3; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第2轮排序后:", (*arr))
for j := 0; j < 2; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第3轮排序后:", (*arr))
func main() {
arr := [5]int{24,69,80,57,13}
bubbleSort(&arr)
第4轮:
package main
import "fmt"
// 冒泡排序
func bubbleSort(arr *[5]int) {
for j := 0; j < 4; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第1轮排序后:", (*arr))
for j := 0; j < 3; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第2轮排序后:", (*arr))
for j := 0; j < 2; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第3轮排序后:", (*arr))
for j := 0; j < 1; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("第4轮排序后:", (*arr))
func main() {
arr := [5]int{24,69,80,57,13}
bubbleSort(&arr)
总结规律得出最终代码:
package main
import "fmt"
// 冒泡排序
func bubbleSort(arr *[5]int) {
fmt.Println("排序前:", (*arr))
// 总结规律:先内层(每一轮)再外层,内层n-1-i次,外层n-1
for i := 0; i < len(*arr)-1; i++ {
for j := 0; j < len(*arr)-1-i; j++ {
temp := 0
if (*arr)[j] > (*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j+1]
(*arr)[j+1] = temp
fmt.Println("排序后:", (*arr))
func main() {
arr := [5]int{24, 69, 80, 57, 13}
bubbleSort(&arr)
深漂小码哥
关注
关注
点赞
收藏
打赏
评论
Go语言冒泡排序(全网最详细)
冒泡排序的基本思想:通过对排序序列从后向前,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后往前移动,就像水底的气泡一样向上冒案例演示:假设一个数组为:24,69,80,57,13第1轮:第1次排序后:(24与69进行比较)24,69,80,57,13第2次排序后:(69与80进行比较)24,69,80,57,13第3次排序后:(80与57进行比较,交换)24,69,57,80,13第4次排序后:(80与13进行比较,交换)24,69,57,
复制链接
扫一扫
专栏目录
Go语言实现冒泡排序
weixin_51195721的博客
05-04
192
冒泡排序
冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。
一次冒泡排序的过程
六次冒泡排序的全过程
改进冒泡排序过程
当某次冒泡操作已经没有数据交换时,说明已经达到完全有序,不用再继续执行后续的冒泡操作。我这里还有另外一个例子,这里面给 6 个元素排序,只需要 4 次冒泡操作就可以了。
实现代码
func Bubb
冒泡排序(Golang实现)
zhuoxoyu
06-29
81
使用Golang实现冒泡排序
参与评论
您还未登录,请先
登录
后发表或查看评论
Go语言(Golang)冒泡排序
weixin_34208283的博客
12-08
181
package main
import (
"fmt"
func BubbleSort(arr *[5]int) {
for i := 0; i < len(arr); i++ {
for j := i + 1; j < len(arr); j++ {
if arr[i] > arr[j] {
arr[i], arr[j] =...
Go实现冒泡排序
weixin_33744141的博客
03-09
1218
排序:排序是将一组数据,按照一定的顺序进行排列的过程。排序分类: 内部排序:指将需要处理的所有数据都加载到内存存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法)。 外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储进行排序,包括(合并排序法和直接合并排序法)。冒泡排序: (Bubble Sorting)基本思想是通过对待排序序列从后向前...
Golang 实现冒泡排序
neweastsun的专栏
07-12
862
Golang 实现冒泡排序
本文实现冒泡排序,充分利用Go语言特性。
1. 冒泡排序
冒泡排序循环集合n次的排序算法,每次遍历一次集合。其检查第一个元素和第二个元素,如果第一个大于第二个则交换它们,整个过程重复执行该动作。
该算法时间复杂度为O(n*n),n为待排序元素个数,最坏情况是下面示例:
[9,8,7,6,5,4,3,2,1,0]
对于完全是逆序数组,冒泡排序需要迭代10次。最好场景是O(n), 在这之间可考虑优化,第一次迭代之后,最大的已经排好序,下次就可以不比较它;这样每次遍历之后总长度就少一
【Go】go实现 — 冒泡排序算法
Fanjufei的博客
03-14
995
目录
1、基本思想
2、算法步骤
第一轮开始排序:
第二轮开始排序:
第三轮开始排序:
第四轮开始排序:
3、算法实现
结果展示:
1、基本思想
通过对待排序序列从后向前,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素从后部移向前部,就像水底气泡一样逐渐向上冒。
通俗点说就是:数组中前一个元素和后一个元素进行比较如果大于或者小于前者就进行交换,最终返回最大或者最小都冒到数组的最后序列时间复杂度为O(n^2).
比较的次数为:
从比较次数上可以看出,是一个...
Go_冒泡排序
weixin_46412888的博客
05-20
190
GO_冒泡排序
package main
import (
"fmt"
// 冒泡排序
func bubble(arre *[5]int){
fmt.Printf("排序前 = %v",*arre)
for i := 0; i < 4; i++ {
for j := 0; j < len(arre)-1 -i ; j++{
if arre[j] > arre[j+1] {
arre[j], arre[j+1] = arre[j+1], arre[j]
Go 冒泡排序 ( Bubble Sort )
weixin_34186931的博客
07-17
64
冒泡排序
冒泡排序 ( Bubble Sort ),是排序算法中最简单的一种
一般都是我们新了解一门语言时拿来练手使用
今天也不例外,虽然用 C# 写过无数次的冒泡排序,但是毕竟换了一门语言,所以有必要再来实现一次
原理
1.冒泡
既然决定写文章记录,那么就要好好的写
我们说冒泡排序简单,那么为什么简单呢?就是因为容易理解
冒泡 Bubb...
冒泡排序——Golang实现
95年的巨蟹
08-19
343
冒泡排序——Golang实现1.冒泡排序介绍2.代码实现2.1 基础冒泡排序2.2 优化版冒泡排序3.结果测试test01:test02:
1.冒泡排序介绍
2.代码实现
2.1 基础冒泡排序
代码如下:
package main
import (
"fmt"
func main() {
//1.定义测试数组
// var intArr = [...]int {10,5,11,9,0} //test01
var intArr = [...]int {1,0,2,3} //test02
用go实现冒泡排序
eight_eyes的博客
07-28
36
package main
import (
"fmt"
func main() {
values := []int{8, 100, 3, 88, 33, 37, 90, 93, 27, 66}
fmt.Println(values)
for i := 0; i < len(values); i++ {
for j := i + 1; j < len(values); j++ {
if values[i] > values[j] {
values[i], v
Go语言实现冒泡排序-附优化
HONG的个人博客
03-20
307
冒泡排序很多时候我们会被面试问到。了解并清楚冒泡算法原理是非常有必要的,冒泡的含义简而言之就是交换拍排序。轻(小)的元素像泡泡一样浮起来。这样就能做到排序了
package main
import "fmt"
//冒泡排序
func main(){
slice := []int{50,16,10,8,6}
BubblingSort(slice)
fmt.Println(slice)
func BubblingSort(arr []int){
var a int
flag := .
用Go实现的冒泡排序算法——几种不同形式的冒泡
斧冰
09-13
87
冒泡排序一直都是基础排序算法之一,在学习Go语言的时候,顺便把数据结构复习一下。
package main
import "fmt"
func main() {
arr := []int{8, 4, 2, 9, 10, -3, 3, 20, 15, -1}
BubbleSort3(arr)
fmt.Println(arr)
func BubbleSort(arr []int)...
go算法排序系列-002冒泡排序
漫漫行程路
07-22
40
go算法冒泡排序
go实现冒泡排序
qq_42123832的博客
07-07
94
冒泡排序的每次外层循环都将当前最大值(最小值)排列到相应位置。
例如给数组data[10]进行从小到大的冒泡排序
第一次循环将最大值存放到data[9]的位置上
第二次循环将剩余的最大值存放到data[8]的位置上
package main
import (
"fmt"
"math/rand"
"time"
//从小到大排列
func bubbleSort(data []int) {
size := len(data)
/*
外层循环,依次针对从最右到最左的每个位置进行内层循环的冒泡
Go-冒泡排序
网络资源
12-19
109
排序
冒泡排序
思路:前一个和后一个比较,如果前一个大于后一个则互换值,
第一轮把最大的值放到右边,
第二轮把第二大的值放到右边第二个,
一直到最后一轮,没有换值则表明已经排好
数组:{14, 13, 12}
第一轮
先拿14和3比较,大于所以换值,现在数组成了{13,14,12}
然后14和12比较,大于就换值,现在数组成了{13,12,14}
第二轮
13和12比较,大于换值,现在数...
go语言 冒泡排序原理
m0_38068812的博客
12-13
179
一、概述
go语言中的冒泡排序和java中的冒泡排序的原理一样,如果你懂得java的冒泡排序,那么go只是换了一种写法而已。冒泡,简而言之,就是相邻的两个数据进行比较,进行移位,向冒泡一样。例如一个集合有n个数,那么排序的次数就是n-1次排序,每次排序的过程中,这次排序需要进行n-1-i此移位。就是两个for循环,外循环小于n-1,内循环小于n-1-i
二、代码示例
packa...
Go语言学习笔记【12】 排序算法之冒泡、选择排序
最新发布
LC520730的博客
08-12
98
go语言实现冒泡排序及其两种改进算法、选择排序及其两种改进算法
Go语言之冒泡排序
元宝的博客
08-16
70
Go语言之冒泡排序
package main
import (
"fmt"
"math/rand"
"time"
/*
冒泡排序:
从小到大排序
*/
func bubbleSort(arr []int) []int {
for i := 0;i < len(arr) - 1;i++{
for j := 0;j < len(arr)-1-i;j++{
if arr[j] > arr[j +1]{
tmp := arr[j]
arr[j] =
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:书香水墨
设计师:CSDN官方博客
返回首页
深漂小码哥
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
1370
原创
7810
周排名
1531
总排名
106万+
访问
等级
1万+
积分
193
粉丝
214
获赞
220
评论
819
收藏
私信
关注
热门文章
Go语言十大主流微服务框架
49928
VM27 WAService.js:2 TypeError: Cannot read property ‘forceUpdate‘ of undefined
39502
MongoDB常用命令大全
14174
使用git提交时报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity
14019
Go语言GOPROXY设置
11932
分类专栏
Go-by-example
53篇
微服务
20篇
RocketMQ
8篇
Java错误百科
8篇
Mybatis
24篇
Dubbo
1篇
Zookeeper
2篇
Nacos
11篇
Spring
18篇
Spring Cloud
3篇
Spring Boot
28篇
Golang
100篇
Golang源码阅读
7篇
Redis
78篇
RabbitMQ
20篇
MySQL
7篇
Docker/K8S
15篇
Elasticsearch
100篇
MongoDB
2篇
数据结构与算法
15篇
设计模式
29篇
Laravel
179篇
Swoole
29篇
SAAS
9篇
Workerman
21篇
Yii
3篇
ThinkPHP
4篇
Magento
64篇
Opencart
52篇
Uniapp
40篇
Vue
17篇
Java
151篇
PHP
28篇
区块链
11篇
Html/CSS/Js/Jq
38篇
Rust
14篇
网络安全
1篇
ELK
3篇
PHP面试宝典1000题
26篇
优秀网站收集
1篇
宝塔面板
2篇
C++
38篇
Linux运维
21篇
开发工具
20篇
以太坊开发
2篇
架构技术
15篇
支付接口
10篇
Git
9篇
微信公众号
2篇
最新评论
NAVICATE 修改存储过程提示PROCEDURE _Navicat_Temp_Stored_Proc already exists 解决方法
bhhjrryz789:
在哪drop啊
nacos获取配置快速入门
不会打篮球的程序员不是个好厨师:
博主你用的nacos版本有到2吗?我使用2.0.0以后的版本,都不可以,我用1.1.0的版本是可以的
Go语言六大主流web框架
IT邦德:
Go语言五大主流web框架,学习了
Go语言六大主流web框架
经海路大白狗:
我原来也想着去学go来着,但培训班价格稍微高点,后来还是屈服于现实,搞了前端和后端,就是KOA,但我也一直想学习go来着,昨晚搭了一个koa + vue的架子,准备借鉴点go的东西来着 https://blog.csdn.net/xingyu_qie/article/details/127740071
Go语言六大主流web框架
Jiangxl~:
优质好文通俗易懂
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Golang xml
Golang json
Golang 正则表达式
2022
12月
4篇
11月
50篇
10月
2篇
07月
1篇
06月
1篇
05月
1篇
04月
30篇
03月
20篇
02月
25篇
01月
31篇
2021年794篇
2020年78篇
2019年16篇
2018年341篇
目录
目录
分类专栏
Go-by-example
53篇
微服务
20篇
RocketMQ
8篇
Java错误百科
8篇
Mybatis
24篇
Dubbo
1篇
Zookeeper
2篇
Nacos
11篇
Spring
18篇
Spring Cloud
3篇
Spring Boot
28篇
Golang
100篇
Golang源码阅读
7篇
Redis
78篇
RabbitMQ
20篇
MySQL
7篇
Docker/K8S
15篇
Elasticsearch
100篇
MongoDB
2篇
数据结构与算法
15篇
设计模式
29篇
Laravel
179篇
Swoole
29篇
SAAS
9篇
Workerman
21篇
Yii
3篇
ThinkPHP
4篇
Magento
64篇
Opencart
52篇
Uniapp
40篇
Vue
17篇
Java
151篇
PHP
28篇
区块链
11篇
Html/CSS/Js/Jq
38篇
Rust
14篇
网络安全
1篇
ELK
3篇
PHP面试宝典1000题
26篇
优秀网站收集
1篇
宝塔面板
2篇
C++
38篇
Linux运维
21篇
开发工具
20篇
以太坊开发
2篇
架构技术
15篇
支付接口
10篇
Git
9篇
微信公众号
2篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
深漂小码哥
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值