go实现冒泡排序的示例代码

 更新时间:2021年01月15日 14:31:54   作者:Gabriel  
这篇文章主要介绍了go实现冒泡排序的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

冒泡排序: (Bubble Sorting)基本思想是通过对待排序序列从后向前(从下标较大的元素开始)以此比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后补移向前部(从下标较大的单元移向单位较小的单元),就像水底的气泡一样逐渐向上冒。

因为排序的过程中,各元素不断的接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换,从而减少不必要的比较(优化)。

BubleSort.go

package main;

import "fmt"

func main() {
 array := []int{5,4,3,4,2}
 res := bubleSort(array)
 fmt.Println(res)
}

func bubleSort(array []int) []int {
 length :=len(array)
 //isChange :=false

 for i:=0;i<length;i++ {
  for j:=0;j<length-i-1;j++ {
  // j <= length-i-1 这个是关键,每次 i ,少比较最后一位数组
   if array[j] > array[j+1] {
    array[j+1],array[j] = array[j],array[j+1]
    //isChange = true
   }
  }
  // 直接跳下次循环
  // if !isChange {
  //  break;
  // }
 }
 return array;
}

冒泡冒泡,就是每次循环都将最大的值,冒泡到数组最后,第二次冒泡也是从数组下标0位置开始。

到此这篇关于go实现冒泡排序的示例代码的文章就介绍到这了,更多相关go 冒泡排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang实现HTTP编程请求和响应

    Golang实现HTTP编程请求和响应

    本文主要介绍了Golang实现HTTP编程请求和响应,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 自己动手用Golang实现约瑟夫环算法的示例

    自己动手用Golang实现约瑟夫环算法的示例

    这篇文章主要介绍了自己动手用Golang实现约瑟夫环算法的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 浅析Go语言中的缓冲区及其在fmt包中的应用

    浅析Go语言中的缓冲区及其在fmt包中的应用

    这篇文章主要为大家详细介绍了Go语言中的缓冲区及其在fmt包中的应用的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-01-01
  • 使用 go 实现多线程下载器的方法

    使用 go 实现多线程下载器的方法

    本篇文章带领大家学习使用go实现一个简单的多线程下载器,给她家详细介绍了多线程下载原理及实例代码,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • Golang编程实现删除字符串中出现次数最少字符的方法

    Golang编程实现删除字符串中出现次数最少字符的方法

    这篇文章主要介绍了Golang编程实现删除字符串中出现次数最少字符的方法,涉及Go语言字符串遍历与运算相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Go编写定时器与定时任务详解(附第三方库gocron用法)

    Go编写定时器与定时任务详解(附第三方库gocron用法)

    当需要每天执行定时任务的时候就需要定时器来处理了,周期任务,倒计时任务,定点任务等,下面这篇文章主要给大家介绍了关于Go编写定时器与定时任务的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 一篇文章说清楚 go get 使用私有库的方法

    一篇文章说清楚 go get 使用私有库的方法

    这篇文章主要介绍了go get 如何使用私有库,本文会明确指出Git 、golang的配置项,附送TortoiseGit + Git混合配置,需要的朋友可以参考下
    2022-09-09
  • 超全讲解Golang中defer关键字的用法

    超全讲解Golang中defer关键字的用法

    本文将从一个资源回收问题引入,引出defer关键字,并对其进行基本介绍,从而让大家对Go语言中的defer有更深入的了解,需要的小伙伴可以学习一下
    2023-05-05
  • 详解Go语言如何使用标准库sort对切片进行排序

    详解Go语言如何使用标准库sort对切片进行排序

    Sort 标准库提供了对基本数据类型的切片和自定义类型的切片进行排序的函数。今天主要分享的内容是使用 Go 标准库 sort 对切片进行排序,感兴趣的可以了解一下
    2022-12-12
  • golang copy函数使用的坑

    golang copy函数使用的坑

    本文主要介绍了golang copy函数使用的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论