本文实例讲述了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小时内与您取得联系。