Go语言的冒泡排序(附:深拷贝与浅拷贝)
冒泡排序算是大家学习算法的入门第一课了,很好理解,类似湖面看到的水泡,因为体积轻,然后就慢慢往上浮上来
比如数组[33, 8, 12, 7, 6],我们在第一轮比较之后,会发现最大数沉底了,到了最后,第二轮比较之后,第二大的数字也沉到倒数第二的位置了,相反的小的就慢慢的浮上来了。
[8 12 7 6 33]
[8 7 6 12 33]
[7 6 8 12 33]
[6 7 8 12 33]
5个数字经过4轮之后,排序就做好了,那代码就很简单了,两个for循环,外循环就是0到4,内循环就是随着每一轮递减一次循环即可,因为每一轮已经将大的数字放到后面了,就不需要再次比较了。
代码:
package main
import "fmt"
func bubbleSort(arr []int) []int {
len := len(arr) - 1
for i := 0; i < len; i++ {
for j := 0; j < len-i; j++ {
//如果比相邻的大就交换位置
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
return arr
}
func main() {
arr1 := []int{33, 8, 12, 7, 6}
arr2 := make([]int, len(arr1))
copy(arr2, arr1)
arr3 := bubbleSort(arr2)
fmt.Printf("%v=>%v\n", arr1, arr3) //[33 8 12 7 6]=>[6 7 8 12 33]
fmt.Printf("%p,%p", arr1, arr3) //0xc00000e3f0,0xc00000e420
}
另外为了更清晰的表示前后数组(切片)的变化,使用了copy深拷贝,这种拷贝可以拷贝里面的值,如果是arr2:=arr1这样的赋值,是一种浅拷贝,也就是说拷贝的是引用,是一个地址,共享同一地址,这样你修改了arr1也会修改arr2
相关推荐
Python自动化数据处理程序-V2
Python自动化数据处理程序-V2
外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货 数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识 部分品种还提
外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货。数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识。部分品种还提供盘口五档或十档挂单数据。所有数据按交易日压缩打包,解压后为CSV格式,便于直接读取分析。 数据源:CMES金融数据库
印尼语AI应用商店评论情感数据集29198条8款应用
印尼语用户评论情感分析数据集,包含29198条来自印尼区Google Play商店的AI应用评论,覆盖8款主流生成式AI助手:ChatGPT、Google Gemini、DeepSeek、Character.AI、Claude、Microsoft Copilot、Perplexity与Grok。采样采用平衡评分配额策略,防止类别不平衡偏置。文件为UTF-8编码的CSV,提供印尼语与英语双份情感标签:sentiment(1至2星为负面、3星为中性、4至5星为正面)与sentiment_en。适合印尼语文本分类、俚语与非规范文本处理、IndoBERT与IndoRoBERTa等本地Transformer微调、基于方面的情感分析(价格、内容过滤、幻觉、应用稳定性等维度)与技术接受度TAM研究。适用于自然语言处理教学、小语种情感分析与AI产品用户反馈研究。数据许可:MIT。
双闭环PWM整流器VOC控制 +SVPWM调制仿真(Simulink仿真实现)
内容概要:本文详细介绍了基于Simulink的三相PWM整流器双闭环控制系统仿真模型的设计与实现,重点融合了虚拟阻抗控制(VOC)策略与空间矢量脉宽调制(SVPWM)技术。通过构建电压外环与电流内环协同工作的双闭环控制结构,有效提升了系统的动态响应速度、运行稳定性和抗干扰能力,实现了单位功率因数整流和直流侧电压的高精度调节。文档系统阐述了控制原理、关键模块搭建流程、SVPWM算法实现机制,并提供了完整的仿真验证过程,充分展示了VOC在改善系统阻尼特性与抑制谐振方面的优势,适用于电力电子变换器的高性能控制研究与工程实践。; 适合人群:电气工程、自动化、新能源等相关专业的本科生、研究生以及从事电力电子与电力系统研发的工程技术人员。; 使用场景及目标:①深入理解PWM整流器双闭环控制机制及其在Simulink中的建模方法;②掌握VOC控制策略与SVPWM调制技术的原理及其实现方式;③应用于课程设计、毕业设计、科研项目中的系统仿真、性能分析与优化设计。; 阅读建议:建议结合Simulink环境边学边练,按照文档步骤逐步搭建模型,重点关注控制器参数整定、坐标变换、PI调节器设计及SVPWM模块逻辑实现,通过仿真结果对比分析验证控制策略的有效性与鲁棒性。
北师大英语词汇练习助手练习版-win通用
最适合白板下的英语词汇PK工具 【百度网盘APP】北师大版英语词汇助手win10,11版本 3MB 链接:https://pan.baidu.com/s/1VO6vXt-ICCh-kAPstX8LcA 提取码:chen 【百度网盘】北师大版英语词汇助手 win 7,8,10,11可通用 60MB 链接:https://pan.baidu.com/s/15z5YN5GvvAZERqhitQcu1g 提取码:chen



