排序算法(Python)

选择排序

python 复制代码
def selection_sort(a):
    n=len(a)
    for i in range(n-1):
        min=i
        for j in range(i+1,n):
            if a[j]<a[min]:
                min=j
        a[i],a[min]=a[min],a[i]
a=[125,142,23,654,454,1,456]
selection_sort(a)
print(a)

简而概之,逐个比较,交换顺序

结合字典序进行排序

python 复制代码
import os
import sys

# 请在此输入您的代码
n=int(input())  # 输入要排序的数字数量

m=input().split()  # 输入待排序的数字,以空格分隔,存储为列表 m

#输入

for i in range(n-1):
  for j in range(i+1,n):
    if m[i]+m[j]<m[j]+m[i]:  # 如果将第 j 个数字与第 i 个数字连接后字典序更小
      m[i],m[j]=m[j],m[i]  # 则交换这两个数字的位置
# 采用交换排序的方式,将数字按照连接后的字符串字典序从小到大排序

print(''.join(m))  # 将排好序的数字列表连接成一个字符串并输出
# 一个输出方法

这道题我开始时考虑复杂了,考虑直接求出对应最高位数的数值,然后进行求解,忽略低位数值的大小影响,不如上面这种方法,直接进行全部位数排序。

此外,我还不知道可以从字典序的角度进行考虑

字典序(dictionary order),又称 字母序(alphabetical order),原意是表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。

英文中的 字母表(Alphabet) 按照如下的顺序排列:

ABCDEFG HIJKLMN OPQRST UVWXYZ

abcdefg hijklmn opqrst uvwxyz

数字的字典序同理。结合字典序,大幅减少运算。

相关推荐
星空露珠24 分钟前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字28 分钟前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
手写码匠36 分钟前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
luj_17681 小时前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
青风971 小时前
16-ADAPTRACK:基于自适应阈值的多目标跟踪匹配算法
人工智能·算法·目标跟踪
汤姆yu1 小时前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
Sam09271 小时前
【AI 算法精讲 14】TF-IDF:词频与逆文档频率
人工智能·python·算法·ai
东华万里1 小时前
第31篇 数据结构入门:顺序表
数据结构·大学生专区
AI科技星2 小时前
拓扑生命系统确定性理论:基于32维流形的遗传密码起源与衰老动力学( 中英双语顶刊终稿·标准数学符号)
开发语言·网络·人工智能·算法·机器学习·乖乖数学·全域数学
编程圈子2 小时前
电机驱动开发学习18. SVPWM空间矢量调制算法详解与实现
驱动开发·学习·算法