全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Golang正整数指定规则排序算法问题分析

本文实例讲述了Golang正整数指定规则排序算法问题。分享给大家供大家参考,具体如下:

给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数

排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序

1)如果不足三位,则按照实际位数组成的整数进行比较
2)如果相等,则按照输入字符串中的原始顺序排序

说明(以下内容考生无须检查,调用者保证):

1) 字符串内正整数之间以单个空格分隔,字符串首尾没有空格
2) 正整数格式为十进制,大小:1~1000000,正整数的数字非零开始

示例:

如字符串内容

1223 22 3232 2016

按照规定排序后

2016 22 1223 3232

查询排序后的第3个数是

1223

代码实现:
复制代码 代码如下:package huawei
import (
    "errors"
    "fmt"
    "strconv"
    "strings"
)
func Test6Base() {
    s := "2115 22 2128 3115 4119 2016 2119"
    findIndex := 2
    result, err := findString(s, findIndex)
    if err == nil {
        fmt.Println("result:", result)
    } else {
        fmt.Println("Error:", err.Error())
    }
}
//将resString按照指定规则排序,然后返回索引为findIndex位置的字符串
func findString(resString string, findIndex int) (result int, err error) {
    if resString == "" {
        return -1, errors.New("Param resString is an empty string.")
    }
    numsStr := strings.Fields(resString)
    if findIndex < 0 || findIndex > len(numsStr)-1 {
        return -1, errors.New("Param findIndex is invalid.")
    }
    numsInt := convertToInt(numsStr)
    //冒泡排序(稳定)
    var change bool = false
    for i := 0; i < len(numsInt)-1; i++ {
        change = false
        for j := 1; j < len(numsInt)-i; j++ {
            if numsInt[j]%1000 < numsInt[j-1]%1000 {
                change = true
                numsInt[j], numsInt[j-1] = numsInt[j-1], numsInt[j]
            }
        }
        if !change {
            break
        }
    }
    fmt.Println(numsInt)
    return numsInt[findIndex], nil
}
//将[]string转为[]int
func convertToInt(numsStr []string) []int {
    numsInt := make([]int, len(numsStr))
    for i, v := range numsStr {
        n, err := strconv.Atoi(v)
        checkError(err, "string to integer")
        numsInt[i] = n
    }
    return numsInt
}

希望本文所述对大家Go语言程序设计有所帮助。


# Golang  # 正整数  # 指定规则  # 排序  # 算法  # Go归并排序算法的实现方法  # go实现冒泡排序算法  # JS中数据结构与算法---排序算法(Sort Algorithm)实例详解  # Go语言排序算法之插入排序与生成随机数详解  # Go语言展现快速排序算法全过程的思路及代码示例  # 深入解析快速排序算法的原理及其Go语言版实现  # go语言睡眠排序算法实例分析  # stl常用算法(Algorithms)介绍(stl排序算法、非变序型队列)  # GO语言中常见的排序算法使用示例  # 给大家  # 内有  # 所述  # 从小到大  # 格式为  # 讲述了  # 调用者  # import  # nbsp  # huawei  # span  # package  # errors  # Test6Base  # func  # fmt  # strconv  # strings  # Atoi 


相关文章: 制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  山东云建站价格为何差异显著?  Python如何创建带属性的XML节点  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  制作企业网站建设方案,怎样建设一个公司网站?  淘宝制作网站有哪些,淘宝网官网主页?  如何配置FTP站点权限与安全设置?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何配置支付宝与微信支付功能?  相册网站制作软件,图片上的网址怎么复制?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  免费视频制作网站,更新又快又好的免费电影网站?  建站之星会员如何解锁更多建站功能?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  建站之星如何实现PC+手机+微信网站五合一建站?    如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何确保西部建站助手FTP传输的安全性?  为什么Go需要go mod文件_Go go mod文件作用说明  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何在阿里云域名上完成建站全流程?  Android自定义listview布局实现上拉加载下拉刷新功能  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  北京企业网站设计制作公司,北京铁路集团官方网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  制作电商网页,电商供应链怎么做?  制作网站公司那家好,网络公司是做什么的?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  微信推文制作网站有哪些,怎么做微信推文,急?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何在香港服务器上快速搭建免备案网站?  如何通过VPS搭建网站快速盈利?  如何快速查询网站的真实建站时间?  如何在IIS中配置站点IP、端口及主机头?  建站主机选购指南与交易推荐:核心配置解析  代购小票制作网站有哪些,购物小票的简要说明?  常州自助建站费用包含哪些项目?  宝塔Windows建站如何避免显示默认IIS页面?  江苏网站制作公司有哪些,江苏书法考级官方网站?  官网网站制作腾讯审核要多久,联想路由器newifi官网  高性能网站服务器配置指南:安全稳定与高效建站核心方案  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  详解jQuery停止动画——stop()方法的使用  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何在Windows 2008云服务器安全搭建网站?  建站VPS选购需注意哪些关键参数?  成都响应式网站开发,dw怎么把手机适应页面变成网页? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。