python - 对数字进行排序的最佳算法是什么?
问题描述
所以我有一个名为 new.txt 的文档,其中包含许多 pi 数字(请参阅https://www.piday.org/million/),我想将这个数字分成一个由所有这些数字按顺序组成的列表。我的代码有效,但速度极慢,(我尝试过使用较少的 pi 位数)。
def sort(stuff):
for iter_num in range(len(stuff)-1,0,-1):
for idx in range(iter_num):
if stuff[idx]>stuff[idx+1]:
temp = stuff[idx]
stuff[idx] = stuff[idx+1]
stuff[idx+1] = temp
return stuff
a = []
with open("/Users/serax/desktop/new.txt", "r") as r:
for line in r.readlines():
for char in line:
text = a.append(char)
print(sort(a))
解决方案
感谢我编辑了我的代码的评论,这是结果。
thisdict = {
".": 0,
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
}
with open("/Users/serax/documents/new.txt", "r") as r:
for line in r.readlines():
# print(sorted(line)) # built in function that can sort str/list/tuple (works)
for char in line:
for key in thisdict:
if char == key:
thisdict[key] += 1
ordered = ""
for i in thisdict:
ordered = ordered + i*thisdict[i]
print(ordered)
推荐阅读
- php - WordPress conditional statement how to exclude several page templates and also a taxonomy archive page
- ios - MapBox Vector Tiles Overlay 在 MapKit 中使用 MKTileOverlay
- json - ConvertTo-JSON from string - 在 PowerShell 中按名称访问 JSON 字段
- node.js - IIS Node webpack-dev-server - 热模块和反向代理问题
- blogger - BLOGGER Emporio 根据标签提供颜色
- c - C异常无效输出
- php - Laravel 8,用户可以操纵会话吗?
- python - Python:简单的代码给出了“生成器对象”,为什么?
- mysql - MySql删除查询太慢,永远运行
- r - 首先根据列表按列对数据框进行排序,然后在另一列中对数字进行升序