[排序算法]:冒泡排序
python 和 golang 实现 bubble sort
冒泡排序:对于列表中相邻的2个数,比较大小,将较大的那个数放到后面,这样每跑一趟就能从无序区拿到1个最大的数(类似于冒了一个气泡上来)。这样我们只需要跑 n-1 趟,就能完成所有数的排列。
> python
def bubble_sort_up(data_list):
""" 冒泡排序,升序版 """
for i in range(1, len(data_list), 1): # 一共 n-1 趟
for j in range(0, len(data_list) - i, 1): # 前数的下标从 0 - (n-1)-j
if data_list[j] > data_list[j + 1]:
data_list[j], data_list[j + 1] = data_list[j + 1], data_list[j]
else:
continue
return data_list
# 元素数据
temp = [273, 21, 31, 7, 9, 0, 93, -12, 3]
# 排序后的数据
print(bubble_sort_up(temp))
# [运行结果如下]:#####################
"""
[-12, 0, 3, 7, 9, 21, 31, 93, 273]
"""
# ####################################
def bubble_sort_down(data_list):
""" 冒泡排序,降序版 """
for i in range(1, len(data_list), 1): # 一共 n-1 趟
for j in range(0, len(data_list) - i, 1): # 前数的下标从 0 - (n-1)-j
if data_list[j] < data_list[j + 1]:
data_list[j], data_list[j + 1] = data_list[j + 1], data_list[j]
else:
continue
return data_list
# 原始数据
temp = [273, 21, 31, 7, 9, 0, 93, -12, 3]
# 排序后的数据
print(bubble_sort_down(temp))
# [运行结果如下]:#####################
"""
[273, 93, 31, 21, 9, 7, 3, 0, -12]
"""
# ####################################
> golang
package main
import (
"fmt"
)
func BubbleSortUp(datalist []int) []int {
// 升序版
for i := 1; i < len(datalist); i++ {
for j := 0; j < len(datalist)-i; j++ {
if datalist[j] > datalist[j+1] {
temp := datalist[j]
datalist[j] = datalist[j+1]
datalist[j+1] = temp
} else {
continue
}
}
}
return datalist
}
func main() {
// 定义一个切片
temp := []int{273, 21, 31, 7, 9, 0, 93, -12, 3}
// 排序
BubbleSortUp(temp)
// 打印排序后的数据
for _, value := range temp {
fmt.Printf("%d ", value)
}
}
/* [运行结果如下]:########################
-12 0 3 7 9 21 31 93 273
####################################### */
本文来自博客园,作者:渝北小站,转载请注明原文链接:https://www.cnblogs.com/timgunt/p/15786440.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通