首页 > 其他分享 >1、冒泡排序——Go语言版

1、冒泡排序——Go语言版

时间:2022-10-10 00:11:38浏览次数:73  
标签:arr int 元素 冒泡排序 Go 排序 语言版

前情提示
Go语言学习者,文章若有不妥之处,感谢指正。
本文参考: https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

关于排序算法相关的Golang代码,为了便于下载和整理,都已开源放在:
https://github.com/honlu/GoDailyCode
本项目一直在更新,也在学习和编写《代码随想录》Go版代码,Go设计模式等!
欢迎star、fork,一起学习和交流!

冒泡排序

描述:(无序区,有序区)

从无序区透过交换找到最大元素放到有序区前端。
重复地走访要排序地数列,一次比较两个元素,如果它们的顺序错误就把它们交换。
走访数列的工作是重复地进行直到没有再需要交换。

算法步骤:

1、比较相邻地元素。如果第一个比第二个大,就交换它们两个。
2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,这样结束一次循环后最后的元素就是最大的数。
3、除了最后一个元素,再次针对所有的元素重复以上的步骤。
4、重复1-3,直到排序完成

稳定性

稳定

时间复杂度:

最好:O(n)
最坏:O(n^2)
平均:O(n^2)

什么时候最快?

当要排序的序列已经是正序。

什么时候最好?

当输入的数据是反序时

代码实现

package main
func bubbleSort(arr []int) []int {
	length := len(arr)
	// 第一层循环代表:要‘循环’的次数
	for i := 0; i < length; i++ {
		// 第二层循环:一次‘循环比较’中要比较的次数
		for j := 0; j < length-1-i; j++ {
			if arr[j] > arr[j+1] { // 升序
				arr[j], arr[j+1] = arr[j+1], arr[j]
			}
		}
	}
	return arr
}

func main() {
	var arr []int
	arr = []int{1, 5, 3, 6}
	arr = bubbleSort(arr)
	fmt.Println(arr)
}

标签:arr,int,元素,冒泡排序,Go,排序,语言版
From: https://www.cnblogs.com/Lusai/p/16774185.html

相关文章

  • GoLand 和 Pycharm的 快捷键设置与常用插件
    GoLand插件Gopher美化进度条,让等待更优雅。CodeGlancepro旁边浏览框。快捷键设置删除行:ctrl+L重新格式化代码ctrl+K开始新行ctrl+enter终端:......
  • Go语言编程 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/14cOX1SocrtvZI_PbqK-nhw点击这里获取提取码 ......
  • Go语言核心编程 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1EV1O5Ff1yctrx4cIonZYcQ点击这里获取提取码 ......
  • Django-debug-toolbar的使用
    Django-debug-toolbar,该工具为我们提供了更加丰富的调试信息,如sql语句,信号,缓存等数据查询。install: pipinstalldjango-debug-toolbar usage:基本配置:1、先......
  • Go的接口
    理解Go的接口在Go中其实更好理解接口的定义,接口就是对一类结构体的规范,属于这个接口的结构体都实现了一些方法但是在Go中其实是一种隐式的方法,并没有像Java一样用impleme......
  • Go Mutex 源码详解
    前言在上一篇文章中,我们一起学习了如何使用​​Go​​​中的互斥锁​​Mutex​​​,那么本篇文章,我们就一起来探究下​​Mutex​​底层是如何实现的,知其然,更要知其所以......
  • [Algorithm] DP - Min Number of Jumps
    You'regivenanon-emptyarrayofpositiveintegerswhereeachintegerrepresentsthemaximumnumberofstepsyoucantakeforwardinthearray.Forexa......
  • 分享Go书籍-《Go Web编程》
    大家好,我是沙漠尽头的狼。最近几天在看一本Go的书籍,看了100来页,感觉不错,分享给大家。书籍基本信息书籍信息:书名:GoWeb编程作者:(新加坡)郑兆雄(SauSheongChang)著;黄健......
  • 国庆学go,完成了博客基本功能,迫不及待的发布上线了
    大家好,我是沙漠尽头的狼。国庆7天,利用带娃之余的空闲时间学习了go,并做了一个不是很完善的博客前台网站。网站发布地址:​​https://go.dotnet9.com​​源码边做边上传Github,......
  • Go 异常处理流程
    前言有这样一段代码:funcmain(){ //捕捉异常 deferfunc(){ iferr:=recover();err!=nil{ fmt.Println(err) } }() gofunc(){ fmt.Println("st......