go语言实现冒泡排序和选择排序(冒泡排序和选择排序代码)

createh52个月前 (05-04)技术教程19

冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序。
选择排序的平均时间复杂度比冒泡排序稍高,下面我们使用GO语言进行编写

冒泡排序

func bubble(num []int64) []int64 {
    flag := true
    for i := len(num) - 1; i >= 0; i-- {
        for j := 0; j < i; j++ {
            //冒泡,泡沫往上越大,较大的数上移
            if num[j] > num[j + 1] {
                Swap(num, j, j + 1)
                flag=false
            }
        }
        //优化不必要的交换
        if flag {
            break
        }
    }

    return num
}



func Swap(num []int64, i int, j int) {
    temp := num[i]
    num[i] = num[j]
    num[j] = temp
}

选择排序

func Select(num []int64) []int64 {
    for i := 0; i < len(num) - 2; i++ {
        min:=num[i]
        local:= i
        for j := i + 1; j <= len(num)-1; j++ {
            if min>num[j] {
                min=num[j]
                local=j
            }
        }
        Swap(num,local,i)
    }
    return num
}

func Swap(num []int64, i int, j int) {
    temp := num[i]
    num[i] = num[j]
    num[j] = temp
}
package main

import "fmt"
import "./sel"
//变量在前,类型在后
func main() {
    num :=[]int64{11, 5, 25, 3, 42, 27,53,82,11, 2}
    //bub.bubble(num)
    sel.Select(num)
    for i ,_:=range num {
        fmt.Print(i)
    }
}

相关文章

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

C++ 初学阶段-冒泡法排序(c++冒泡排序模板)

#头条创作挑战赛#学程序重要的思维,冒泡法排序冒泡法排序,从第一个数值开始分别与后面的数值对比大小。大与就互换位置,直到换到最后一个数字。排序前数组:10,47,3,82,55,90,38,60,21...

冒泡、插入、选择排序(C语言)(c语言冒泡排序需要注意什么)

以下排序算法默认从小到大的升序排序。冒泡排序思路从数组的第一个数a[0]开始,向后遍历,每次比较a[i]和a[i+1]的值若a[i]大于a[i+1],就交换两个位置的数的值。重复上述1和2的操作至a[...

C语言的十大组数之冒泡排序法的应用

情景回顾上节回顾:C语言的数组:跨越一个阶梯,如何用一种数据结构存储无限多的数据?本节重点本节重点:冒泡排序法关注不迷路微信公众号:工控小新学习工控知识就来工控小新,为你提供工控笔记知识:EPLAN电...

[西门子PLC] 冒泡排序、选择排序算法——西门子1200FB块的封装

在讨论如何使用西门子S7-1200 PLC中的功能块(FB,Function Block)来实现冒泡排序或选择排序之前,我们需要了解几个关键点:PLC编程环境:通常使用的是TIA Portal软件,它...

面试题系列常用排序算法之:(一)“冒泡排序”

#头条创作挑战赛#冒泡排序是一种简单的比较排序算法,它通过多次比较相邻元素的大小,并根据比较结果交换它们的位置,从而将较大(或较小)的元素“冒泡”到数组的一端。本文将介绍冒泡排序的基本原理、实现方式、...

一文解读Python嵌套循环实现冒泡排序

冒泡排序是数据结构中的一种经典算法,手工地实现冒泡排序,对于锻炼自己的编程逻辑有很大的帮助,本节就带领大家用循环结构实现冒泡排序算法。冒泡排序算法的实现思想遵循以下几步:1、比较相邻的元素,如果第一个...