zoukankan      html  css  js  c++  java
  • [Go] Golang练习项目-GO实现冒泡排序以及优化算法

    核心原理:

    比较相邻的两个元素,较大的一个交换移动到右边

    优化:

    已经排好序的元素不再进行比较,减少比较次数

    下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历

    变量lastSwapIndex ,记录最后一次发生交换的位置,后续元素不再进行比较

    //冒泡排序
    func BubbleSort(arr *[]int){
        flag:=true
        lastSwapIndex:=0
        for i:=0;i<len(*arr)-1;i++{
            sortBorder:=len(*arr)-1-i
            for j:=0;j<sortBorder;j++{
                if (*arr)[j]>(*arr)[j+1]{
                    temp:=(*arr)[j]
                    (*arr)[j]=(*arr)[j+1]
                    (*arr)[j+1]=temp
                    flag=false
                    lastSwapIndex=j
                }
            }
            sortBorder=lastSwapIndex
            if flag{
                break
            }
        }
    }

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    Java 之Integer相等比较
    Java 之HashMap.values()方法误用
    Java 异常归纳总结
    MySQL之GROUP BY用法误解
    Java 类的成员初始化顺序
    十三、java_GUI
    十二、java_网络编程
    十一、java线程
    十、java_IO
    九、java容器
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13545158.html
Copyright © 2011-2022 走看看