python---常见的排序算法--持续更新

请参考动图:https://forum.mianbaoban.cn/data/attachment/forum/201803/20/140153i7562exzjrnagaja.gif
动图:https://blog.csdn.net/weixin_41571493/article/details/81875088
参考:https://www.cnblogs.com/zhizhan/p/4549099.html

1.冒泡排序

总结:冒泡排序,从第一个数开始,比较相邻两个数的大小,若第一个数比第二个数大,那么就交换他俩的位置,当我们完成一次冒泡排序时,最大的数已经出现在数组的最后一个位置上,南无我们重复执行这样的操作,将前边的大的数往后排。

def maopao(num_list):
    n = len(num_list)
    for i in range(n-1,0,-1):   #防止出现索引超过列表限制的错误(使用倒序,从列表的n-1个数到第一个数,0不算)
        for j in range(0,i):
            if num_list[j] > num_list[j+1]:
                num_list[j],num_list[j+1]=num_list[j+1],num_list[j]
    return num_list
num1=[6,8,6,47,13,5,34,47]
print(maopao(num1))

2.选择排序

总结:规定一个已排序数列,在未排序数列中进行选举找到最小的,将最小的提取出来放在已排序数列的末尾,从而实现从小到大排序。

def choose(num_list):
    n=len(num_list)
    for i in range(0,n):
        min = i              #自定义一个最小的值
        for j in range(i+1,n):
            if num_list[j] < num_list[min]:     #与未比较的数进行比较,循环找到最小的j的值,进行数值交换
                num_list[min],num_list[j]=num_list[j],num_list[min]
    return  num_list
num1=[6,8,6,47,13,5,34,47]
print(choose(num1))

3.插入排序

总结:将第一个元素指定为已插入元素,取第二个数开始与他前边的数进行比较,若他比前边的数小,则前边的数后移一位,知道在前边的数中遇见比他还小的,则把它放在这个数后面。

def charu(num_list):
    n = len(num_list)
    for i in (1,n):
        if num_list[i] < num_list[i-1]:
            temp = num_list[i]
            index = i
            for j in (i-1,-1,-1):
                if num_list[j] > temp:   #若最小数的前边的数比他大,那么前边的数后移,最小数加到这个索引所在的位置
                    num_list[j+1]=num_list[j] 
                    index = j
                else:
                    break
            num_list[index]=temp
    return num_list
num1=[6,8,6,47,13,5,34,47]
print(charu(num1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个Python算法工程师,以下是一些必备的知识点: 1. 数据结构和算法:熟悉常见的数据结构,如数组、链表、栈、队列、树等,并能够理解它们的底层实现和操作。同时需要掌握常见的算法,如排序、查找、递归、动态规划等。 2. 编程基础:熟练掌握Python语言的基础知识,包括变量、数据类型、条件语句、循环语句、函数、类等。了解Python的内置函数和标准库,以及常用的第三方库,如NumPy、Pandas等。 3. 算法设计与分析:能够设计高效的算法解决实际问题,并理解算法的时间复杂度和空间复杂度。熟悉常用的算法设计技巧,如贪心算法、分治法、回溯法等。 4. 数据处理与分析:具备数据处理和分析的能力,能够使用Python进行数据清洗、特征提取、数据可视化等工作。熟悉常用的数据处理库,如Pandas、Numpy等。 5. 机器学习与深度学习:了解机器学习和深度学习的基本原理和常见算法,如线性回归、逻辑回归、决策树、支持向量机、神经网络等。熟悉常用的机器学习和深度学习库,如Scikit-learn、TensorFlow、PyTorch等。 6. 算法优化与并行计算:具备算法优化和并行计算的能力,能够使用并行计算框架如MPI、OpenMP等,提升算法的计算性能。 7. 数据库和SQL:熟悉常见的数据库系统,如MySQL、PostgreSQL等,并能够编写高效的SQL查询语句。 8. 编码规范和调试技巧:遵循良好的编码规范,写出可读性高、可维护性强的代码。具备良好的调试技巧,能够快速定位和解决问题。 9. 系统设计与架构:具备系统设计和架构的能力,能够设计高可用、高性能的分布式系统或服务。 10. 持续学习和自我提升:保持持续学习的态度,关注最新的技术趋势和行业动态。参与开源项目、参加技术交流活动,不断提升自己的技术水平。 这些是Python算法工程师必备的知识点,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值