MoreRSS

site iconJustYY | 小赖子修改

小赖子的英国生活和资讯,以及投资和个人生活。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

JustYY | 小赖子的 RSS 预览

废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive)

2025-10-02 21:03:43


“用树莓派打造家庭 2TB 网络硬盘”

“树莓派 + WD 硬盘:轻松为孩子的 Mac 提供共享存储”

“家庭文件共享不再难:自制树莓派网络硬盘”

“让树莓派变身 2TB 家庭共享硬盘”

“为孩子的 Mac 节省空间:树莓派网络硬盘实战”

前两年,我给两个孩子各买了一台 MacBook Pro。弟弟的那台当时大概六百多买的,SSD 只有 256GB,所以经常硬盘爆满,只能不断删除下载的文件、dmg 安装包之类的。用了一段时间后,MBP 的 ~/Caches 目录也会变得很大,虽然可以临时清理,但这只是治标不治本。

我就跟孩子说,你可以把一些文件放到云盘上,比如 OneDrive、Google Drive,或者我给你接个 USB 硬盘挂到电脑上。OneDrive 有“本地不占空间、数据存到云端”的模式,很省地方,但免费空间只有 5GB。Google Drive 免费空间是 15GB,可用于邮件、照片和 Drive 共享。

孩子不太喜欢用 USB 硬盘,一方面得接电源,另一方面得用 Type-C 转 USB 接口,很麻烦,也不想总插着。

我想到家里有树莓派,可以接一个移动硬盘,通过文件共享,把家里几台电脑都挂接成网络硬盘(Map Network Drive)。于是,我找了几个抽屉,找到一个 2TB 的西部数据(WD)硬盘,3.5 寸的,需要外接硬盘盒,正好前几个月折腾数据时买了一个。

之前挂在HPZ800服务器的D盘。

found-2-tb-wd-drive-2025-10-01-09.12.09 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

这个硬盘用了两年多,当时应该是HPZ800服务器的D盘(可以接四个硬盘)

添加网络硬盘:树莓派通过SAMBA挂接移动硬盘

为了确保硬盘没坏道,我用 CrystalDiskInfo 检查了一下,还让 ChatGPT 帮我看了健康状态——2.3 年通电时间,没有坏道,一切正常。

crystaldiskinfo-wd-2tb-drive 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

2TB的西数硬盘还可以再战几年!

准备挂接硬盘

第一步,把硬盘接到树莓派上,直接用 USB,但需要额外电源。我找了一个插座,勉强可以在鞋柜里塞下两个插头:一个 3.5 寸硬盘盒和树莓派 4B。

df-raspberrypi-2025-10-01-12.35.41 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

先用df命令看看USB有没有被系统认到。

然后 SSH 登录树莓派,发现硬盘是 NTFS 格式,需要挂载一下:

mkdir /mnt/usb
mount -t ntfs-3g /dev/sdb1 /mnt/usb

其中 /mnt/usb 是挂载目标目录,需要先创建。

如果想开机自动挂载,只需在 /etc/fstab 添加一行:

UUID=<ID> /mnt/usb ntfs-3g defaults,uid=1000,gid=1000,umask=0000,nofail,x-systemd.device-timeout=10 0 0

<ID> 是硬盘的 UUID,可以通过 lsblk -f 查到。

SAMBA网络硬盘

文件共享最简单的方法是安装 Samba:

sudo apt install -y samba

安装完成后,编辑 /etc/samba/smb.conf 添加以下内容:

[usb2share]
   path = /mnt/usb
   browseable = yes
   writable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = pi

valid users 可以写多个用户,用空格分隔,也可以用 @ 表示群组。用户必须是 Linux 本身存在的账号。

设置 SMB 密码:

sudo smbpasswd -a pi

重启服务:

sudo systemctl restart smbd

添加网络硬盘

在 Windows 上,可以在“此电脑”里右键“添加网络驱动器”,输入地址:

\\192.168.IP地址\usb2share

输入用户名和密码,勾选“记住密码”即可添加网络硬盘,用起来跟本地硬盘差不多。

在 Mac 上,可以在 Finder 按 Command + K 添加服务器,同样输入 树莓派的IP地址、用户名和密码即可。

我给两个孩子和老婆各建了一个目录,让他们把数据放到自己的目录下,2TB 够用一段时间了。

有了这个网络硬盘,分享数据也方便多了(电影、照片等),再也不用通过 WeChat、Whatsapp 或 Google Drive 分享——这些方式要么不方便查找历史文件,要么照片会被压缩

真好,一下子又让树莓派多了一个用途,不再是积灰的机器了。

add-usb-to-raspberry-pi-server-2025-10-01-12.34.43 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

目测还有空间,还可以再加一个树莓派/硬盘等。

usb-drive-2025-10-01-12.34.47-scaled 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

把硬盘塞到门口的鞋柜里,电线好乱,还好门一关,媳妇看不见。

samba-access2025-10-01-12.35.43 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

第一次连接需要用户名/密码

network-drives-this-pc 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

网络硬盘成功的成了本地资源的一部分。

network-drive-2025-10-01-12.35.45 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

可以像本地硬盘一下查看属性:使用空间/剩余空间等。

network-drive-2025-10-01-12.35.38 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机

输入IP地址即可访问网络硬盘。选择要挂接的盘符。一般网络硬盘都是从Z往前用。

英文:Found a 2TB Old Hard Drive – Still Young and Healthy

英国高科技树莓派 Raspberry Pi

本文一共 1296 个汉字, 你数一下对不对.
废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) 小技巧 树莓派 Raspberry Pi 硬件 硬盘 计算机
The post 废物利用, 找出2TB的WD硬盘外接硬盘盒挂到树莓派当网络硬盘(Raspberry Pi Network Drive) first appeared on 小赖子的英国生活和资讯.

风雨无阻早起送娃去坐校车

2025-10-01 04:00:35


从这个月开始,娃正式入读了剑桥最“卷”的私校 —— Perse(学术实力特别强)。学校在市中心,上下班高峰期堵得厉害,原本二十分钟的路程,经常能堵成一个多小时。幸好学校有校车,不过是要收费的,一学期大约300英镑,折合下来单程2.5英镑,其实也算合理。相比之下,公校的校车是免费的,由政府出资。

Perse的校车有两条路线,其中一条会经过Madingley Park & Ride,早上7点35分发车。所以我每天早上7点就得起床,先叫娃,再收拾一下,大概7点20准时出门。有一次是媳妇送的,结果只晚了一分钟,最后只能自己开车把娃送到学校。还好她上班方向顺路,不算太麻烦。

下午放学接娃的时间是4点50分左右,有时候会晚几分钟。不过下午不像早上那样紧张,最大的压力还是每天早上怕赶不上校车。

记得第一天接娃的时候,迟迟不见他下车。后来司机示意我上车找,才发现娃还不知道该什么时候下车。幸亏司机眼神好,看出我在等人,不然下一站就是Cambourne了,要是去那边接,可得多花半小时车程。

每天早上大巴一到,就能看到一群娃从车里下来。天气冷了,他们基本都会待在车里等,不会提前下车。

一想到接下来的五年,几乎每天都要这样早晚接送,就觉得挺辛苦的。每天早上被强制开机还是挺难受的。

perse-school-bus-andrew-2025-09-19-07.33.00-scaled 风雨无阻早起送娃去坐校车 学校 教育 生活 私校 资讯

每天早上送娃去坐校车/私校/Perse

perse-school-bus-andrew-2025-09-26-07.31.58-scaled 风雨无阻早起送娃去坐校车 学校 教育 生活 私校 资讯

每天早上送娃去坐校车/私校/Perse

perse-school-bus-andrew-2025-09-19-07.33.12 风雨无阻早起送娃去坐校车 学校 教育 生活 私校 资讯

每天早上送娃去坐校车/私校/Perse

cam-perse-school-school-bus2025-10-01-07.33.21-scaled 风雨无阻早起送娃去坐校车 学校 教育 生活 私校 资讯

剑桥Perse私校每天校车

英国私校

本文一共 542 个汉字, 你数一下对不对.
风雨无阻早起送娃去坐校车. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 风雨无阻早起送娃去坐校车 学校 教育 生活 私校 资讯
The post 风雨无阻早起送娃去坐校车 first appeared on 小赖子的英国生活和资讯.

微软股东大会: 拒绝将比特币纳入公司资产负债表

2025-09-29 19:07:26


每年我都会收到微软的来信,因为我持有几股微软股票(RSU),所以也是股东。信中会邀请我参加微软的年度股东大会,并列出需要讨论的一些决议,同时包含股东提出的建议,例如“支持”或“反对”。上一次收到的信中,其中有一项议题是关于是否将比特币纳入公司资产负债表。可惜的是,微软股东投票决定不采纳这一提案。

btc-price-2025-09-29-bitcoin 微软股东大会: 拒绝将比特币纳入公司资产负债表 加密货币 区块链 微软 比特币 BTC 比特币 BTC/Bitcoin 资讯 金融

比特币有所回落,11万美元

msft-share-price-2025-09-29 微软股东大会: 拒绝将比特币纳入公司资产负债表 加密货币 区块链 微软 比特币 BTC 比特币 BTC/Bitcoin 资讯 金融

微软股票2025节节高升。

在2024年12月10日举行的微软年度股东大会上,股东们以压倒性多数投票反对将比特币纳入公司资产负债表的提案。该提案由保守派智库“公共政策研究中心”(National Center for Public Policy Research)提出,建议微软将1%至5%的现金储备投资于比特币,以对抗通货膨胀并实现资产多元化。

尽管比特币价格在投票前一周突破了10万美元大关,微软董事会仍坚持反对该提案,理由是比特币的高波动性不符合公司对流动性和稳定性的需求。微软首席财务官艾米·胡德(Amy Hood)在会议中表示,公司已经在持续评估包括加密货币在内的多种资产类别,但比特币目前不适合用于公司财务管理。

提案的支持者中,包括MicroStrategy公司董事长迈克尔·塞勒(Michael Saylor),他在会议前发布了一段视频,强调比特币作为“数字黄金”的潜力,并建议微软将现金流、股息回购和债务等转化为比特币,以增加公司市值。

然而,根据Decrypt的报道,最终只有约2823万股微软股份支持该提案,占投票总数的不到1%,而超过51亿股股份投了反对票。微软在提交给美国证券交易委员会的文件中表示,股东投票结果将很快公布。

根据GeekWire消息,尽管微软拒绝了将比特币纳入资产负债表的提案,但公司并未完全排除未来投资加密货币的可能性。微软董事会在声明中提到,虽然当前不适合将比特币纳入公司资产,但将继续关注加密货币的发展,以便在未来做出明智的决策。

这一投票结果反映了企业在考虑是否将比特币纳入资产负债表时,仍需权衡其高波动性与潜在收益之间的风险。尽管一些企业已开始将比特币作为资产储备的一部分,但微软的决定表明,主流科技公司在这一问题上仍持谨慎态度。

微软股东大会的这一决定可能对其他大型企业产生示范作用,尤其是在加密货币市场仍面临监管不确定性的背景下。未来,随着市场和监管环境的变化,更多企业可能会重新评估是否将比特币纳入其资产负债表。

microsoft 微软股东大会: 拒绝将比特币纳入公司资产负债表 加密货币 区块链 微软 比特币 BTC 比特币 BTC/Bitcoin 资讯 金融

Microsoft/微软/巨硬

新闻/实事/经济

英文:Microsoft Shareholders Reject Proposal to Add Bitcoin to Balance Sheet

本文一共 900 个汉字, 你数一下对不对.
微软股东大会: 拒绝将比特币纳入公司资产负债表. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 微软股东大会: 拒绝将比特币纳入公司资产负债表 加密货币 区块链 微软 比特币 BTC 比特币 BTC/Bitcoin 资讯 金融
The post 微软股东大会: 拒绝将比特币纳入公司资产负债表 first appeared on 小赖子的英国生活和资讯.

GE Vernova: AI淘金热里的“卖铲子”, 从没落到翻倍大赢家

2025-09-29 06:18:26


《GE Vernova:AI淘金热里的“卖铲子”,从没落到翻倍大赢家》

《从帝国余晖到AI电力新贵:GE Vernova股价暴涨背后的逻辑》

《AI电力危机来临,GE Vernova如何逆袭成最大赢家?》

《GE 拆分后的惊喜:Vernova搭上AI能源超级周期》

《卖铲子的人最赚钱:GE Vernova与AI时代的电力生意》

过去很长一段时间,美国通用电气(GE)被视为一个“没落的工业帝国”——从最辉煌的道琼斯成份股,到因为业务庞杂、管理僵化而被迫瘦身、拆分。

但是,谁能想到呢?当年大家对 GE 的衰落唏嘘不已,如今它拆分出来的三家公司(GE Aerospace、GE Healthcare、GE Vernova)却纷纷股价大涨,尤其是 GE Vernova ——在过去一两年股价暴涨,成为资本市场追逐的明星。

我去年装修房子时把手里的 GE 股票都清仓了,现在一看真是拍大腿:要是继续持有,今天至少能翻倍。

ge-vernova-stock-2025-09 GE Vernova: AI淘金热里的“卖铲子”, 从没落到翻倍大赢家 美国通用电气 股市 股票 资讯

美国通用电气GE拆分后每一个股价都大涨

为什么 GE Vernova 会成为大赢家?

表面看,它只是一个传统的能源与电力设备公司,和 AI、芯片这些热门科技股似乎八竿子打不着。

但其实,AI 的快速发展,正在引爆全球对电力的需求。

AI 模型训练和数据中心:每一家大模型公司(OpenAI、Google、Meta 等)都在疯狂扩建数据中心。一个数据中心耗电量可以等于一个中等城市。

电力基础设施短缺:美国本就存在电网老化问题,如今突然叠加 AI 需求,出现所谓的“电力危机”。

新能源转型加速:各国承诺碳中和,风电、太阳能需求激增,而 GE Vernova 正是新能源装备、电网解决方案的重要供应商。

一句话:没有足够的电力,就没有 AI 的未来。而 GE Vernova,恰恰卡在了这个时代风口。

GE 拆分的意义

当年 GE 拆分时,很多人觉得这是“卖家求生”,没什么前景。

但事实证明,这种“聚焦战略”让每个子公司都能专注在自己最有优势的赛道:

  • GE Aerospace:专注航空发动机,赶上了航空业复苏。
  • GE Healthcare:医疗影像、诊断设备需求稳定。
  • GE Vernova:能源、电网、可再生领域,正好迎来 AI 驱动的电力超级周期。GE在这波AI里也算个卖铲子的。

从资本市场的表现来看,拆分不仅没有让价值缩水,反而释放了更大的潜力。

我的感慨:

  • 投资最难的,其实不是看不懂趋势,而是守不住耐心。
  • 当初我清掉 GE 股票,只是为了装修房子腾点现金。
  • 现在回头看,如果当时“死拿不动”,今天至少可以翻倍。

当然,股市永远没有“早知道”,但 GE Vernova 的故事再次说明:趋势真的比个股更重要。

当一个时代需要电力,电力公司自然就会被重新估值。而 GE,这个一度被认为“老掉牙”的名字,如今又一次走在了浪潮前沿。

GE 在这波 AI 浪潮里,也算是个“卖铲子的”。别人忙着挖金矿(训练大模型、建 AI 应用),而 GE Vernova 提供电力和能源基础设施,就像淘金热里卖铲子的人,最后往往稳赚不赔。

美国通用电气 General Electric

本文一共 903 个汉字, 你数一下对不对.
GE Vernova: AI淘金热里的“卖铲子”, 从没落到翻倍大赢家. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c GE Vernova: AI淘金热里的“卖铲子”, 从没落到翻倍大赢家 美国通用电气 股市 股票 资讯
The post GE Vernova: AI淘金热里的“卖铲子”, 从没落到翻倍大赢家 first appeared on 小赖子的英国生活和资讯.

微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。

2025-09-27 03:22:38


微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。[捂脸]

Chessly是英短,虽然毛并短,估计不是纯的英短/British Short Hairs(杂交来的)。

chessly-classified-as-a-persian-cat-2025-09-26-13.36.36-scaled 微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。 人工智能 (AI) 学习笔记 宠物 微软 机器学习 照片 生活 看图说话 计算机

Chessly是英短/确被AI认为是波斯猫

在Chessly的每年疫苗本上写的是英短,但是她的毛很长,更像是英长/British Long Hairs。

ResNet-50 简介

ResNet(残差网络)由微软研究院在 2015 年提出。它通过残差结构解决了深层神经网络中的退化问题。

ResNet-50 是其中一个常用版本,总共有 50 层。

核心思想

残差模块的计算方式是:
tex_1a0056cf1f96e647d7797d91d5e07560 微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。 人工智能 (AI) 学习笔记 宠物 微软 机器学习 照片 生活 看图说话 计算机

这种跳跃连接(shortcut connection)可以避免梯度消失,让更深的网络更容易训练。

网络结构

输入图像大小通常为 224×224。

主要阶段:

  1. 7×7 卷积 + 最大池化
  2. Conv2_x: 3 个 bottleneck 块
  3. Conv3_x: 4 个 bottleneck 块
  4. Conv4_x: 6 个 bottleneck 块
  5. Conv5_x: 3 个 bottleneck 块
  6. 全局平均池化
  7. 全连接层 + Softmax 分类

特点

  • 更容易训练,梯度稳定
  • 在 ImageNet 上表现优秀(Top-5 错误率约 5%)
  • 参数量约 2550 万
  • 常用作目标检测、分割等任务的 backbone

应用场景

  • 图像分类任务
  • 特征提取
  • 迁移学习(医疗影像、卫星图像、工业检测等)

英文:Chessly (British Short Hairs) Classified as Persian Cat by ResNet-50

本文一共 353 个汉字, 你数一下对不对.
微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。 人工智能 (AI) 学习笔记 宠物 微软 机器学习 照片 生活 看图说话 计算机
The post 微软研究院十年前的 ResNet图片识别模型把Chessly识别成波斯猫。 first appeared on 小赖子的英国生活和资讯.

Python Radix Sort 教程: 整数、负数和浮点数排序

2025-09-22 18:23:14


Python 基础排序算法:基数排序详解与示例

Python Radix Sort 教程:整数、负数和浮点数排序

Python 数字排序指南:从整数到浮点的基数排序实现

高效排序算法讲解:Python 中的基数排序应用

Python 排序算法全解析:Radix Sort 的用法与实例

Python 基数排序简介

基数排序是一种非比较型排序算法,它通过按位对数字进行排序来完成排序。与直接比较整个数字(如快速排序或归并排序)不同,基数排序将元素根据其数字或字符分配到“桶”中,然后逐位处理。

对于整数,基数排序通常从最低有效位(LSD)到最高有效位(MSD)进行排序。这样可以保证稳定性,在处理完所有位后得到有序数组。

基数排序的工作原理

  • 找到数组中的最大值,以确定需要处理的位数。
  • 对每一位(个位、十位、百位等)使用稳定排序(如计数排序)。
  • 重复此过程直到处理完所有位。

示例:对数组 [170, 45, 75, 90, 802, 24, 2, 66] 进行排序:

  • 按个位排序 → [170, 90, 802, 2, 24, 45, 75, 66]
  • 按十位排序 → [802, 2, 24, 45, 66, 170, 75, 90]
  • 按百位排序 → [2, 24, 45, 66, 75, 90, 170, 802]

此时数组已经排序完成。

Python 正整数基数排序实现

def counting_sort(arr, exp):
    n = len(arr)
    output = [0] * n
    count = [0] * 10

    for num in arr:
        index = (num // exp) % 10
        count[index] += 1

    for i in range(1, 10):
        count[i] += count[i - 1]

    for i in range(n - 1, -1, -1):
        index = (arr[i] // exp) % 10
        output[count[index] - 1] = arr[i]
        count[index] -= 1

    for i in range(n):
        arr[i] = output[i]


def radix_sort(arr):
    if not arr:
        return arr

    max_num = max(arr)
    exp = 1
    while max_num // exp > 0:
        counting_sort(arr, exp)
        exp *= 10


# 示例
arr = [170, 45, 75, 90, 802, 24, 2, 66]
radix_sort(arr)
print("排序后的数组:", arr)

输出

排序后的数组: [2, 24, 45, 66, 75, 90, 170, 802]

支持负整数的扩展

  • 将负数和非负数分开。
  • 将负数取绝对值转换为正数。
  • 分别对两部分应用基数排序。
  • 对负数结果进行翻转(绝对值大的负数排在前面)。
  • 合并负数和非负数得到最终有序数组
def radix_sort_positive(arr):
    if not arr:
        return arr
    max_num = max(arr)
    exp = 1
    while max_num // exp > 0:
        counting_sort(arr, exp)
        exp *= 10


def radix_sort(arr):
    negatives = [-x for x in arr if x = 0]

    radix_sort_positive(negatives)
    radix_sort_positive(non_negatives)

    negatives = [-x for x in reversed(negatives)]
    return negatives + non_negatives


# 示例
arr = [170, -45, 75, -90, 802, 24, -2, 66]
sorted_arr = radix_sort(arr)
print("排序后的数组:", sorted_arr)

浮点数排序

浮点数也可以通过将它们转换为整数来使用基数排序。常用方法:

  • 缩放:将所有浮点数乘以 10 的幂,将其转换为整数(适用于固定精度浮点数)。
  • 位重解释:将 IEEE 754 浮点数按位当作整数处理,并对负数进行调整以保持顺序。

以下示例使用**缩放法**对正浮点数进行排序:

def radix_sort_floats(arr, precision=2):
    # 将浮点数缩放为整数
    factor = 10 ** precision
    int_arr = [int(x * factor) for x in arr]

    radix_sort(int_arr)

    # 转回浮点数
    return [x / factor for x in int_arr]


# 示例
arr = [3.14, 2.71, 1.41, 0.99, 2.0]
sorted_arr = radix_sort_floats(arr)
print("排序后的浮点数:", sorted_arr)

输出

排序后的浮点数: [0.99, 1.41, 2.0, 2.71, 3.14]

何时使用基数排序

  • 当需要排序大量整数且最大值相对较小时。
  • 对固定长度字符串进行高效排序。
  • 在固定宽度整数或缩放浮点数的情况下需要线性时间排序。

局限性

  • 不是通用排序算法,仅适用于整数或固定长度键。
  • 需要额外的桶空间(不是原地排序)。
  • 对于任意浮点数或混合类型,基于比较的排序(如 Python 内置 Timsort)更安全。

总结

基数排序是一种快速的按位排序算法,可以处理整数、负数和固定精度浮点数。在适用场景下,它能提供线性时间性能。通过对浮点数进行适当转换,基数排序的适用范围可以扩展到整数之外。

英文: A Complete Guide to Radix Sort in Python with Examples

本文一共 796 个汉字, 你数一下对不对.
Python Radix Sort 教程: 整数、负数和浮点数排序. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Python Radix Sort 教程: 整数、负数和浮点数排序 Python 学习笔记 排序 Sorting 数据结构与算法 计算机
The post Python Radix Sort 教程: 整数、负数和浮点数排序 first appeared on 小赖子的英国生活和资讯.