python排序算法大全(附源代码)

1. 算法认识

1.算法是指解决问题的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。都说“程序=算法+数据结构”,虽然是有很多人反驳,但是也能说明算法在程序中的重要性。
2,算法五大特征:
(1)有穷性
算法的有穷性是指算法必须在执行有限个步骤之后终止;
(2)确切性
算法每一步骤必须有确切的定义;
(3)输入项
算法必须有0个或者多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定义了初始条件;
(4)输出项
算法必须有一个或者多个输出,以反映对输出的加工后的结果,没有输出的算法毫无意义;
(5)可行性
算法中执行的每一个步骤都可以被分解为基本的可执行操作步骤,即每一个计算步骤都可以在有限时间内完成;
3,算法评价
(1)时间复杂度
算法的时间复杂度是指执行算法所需的计算工作量;
常见的时间复杂度:O(1), O(n), O(n^2)
(2)空间复杂度
算法的空间复杂度是指一个算法在运行过程中临时占用存储空间大小的量度;

充分利用python代码的优势,尽可能将代码写到简洁,方便,易懂;

2. 冒泡排序

1,总结(助记)
从第一个数开始,与后面数比较,大的放后面,小的放前面,大的再与后面的数比较,依次类推,不断交换,最后将选出第一个最大的数,放在最后;
2,原理
基本原理是比较相邻两个数的大小,将两个数中比较大的那个数交换到靠后的位置,不断地交换下去就可以将最大的数放到队列的尾部,然后重新开始,直到将数列排成有序数列;
举例:
在这里插入图片描述

冒泡排序代码:
import random

def randomList(n):
    iList = []
    for i in range(n):
        iList.append(random.randrange(1000)) # append()函数用于产生随机数存入iList列表中
    return iList
iList1=randomList(20)
def bubbleSort(iList):
    """冒泡排序"""
    if len(iList1) <=1:
        return iList1
    for i in range(1,len(iList1)):
        for j in range(0,len(iList1)-i):
            if iList[j] >= iList[j+1]:

                iList1[j], iList1[j+1] = iList1[j+1], iList1[j]
        print("第%d轮排序结果为:" %i, end=" ")
        print(iList1)
    return iList
if __name__ == "__main__":
    print(iList1)
    print("冒泡排序结果:",bubbleSort(iList1))
运行代码结果展示:

在这里插入图片描述

3. 选择排序

1, 总结(助记)
某一个数为基数,遍历数列中其他的数字,找出最小的那个数,然后交换这两个数的位置,找到最小或者最大的那个数;
2,原理
冒泡排序是相邻两个数比较,而选择排序则是某个数和数列中其他所有的数进行比较,挑出最小的最小(大)的那个数就可以了;
3,举例演示:
在这里插入图片描述

选择排序算法程序
将这个数放到合适的位置,然后在抛开这个数的子数列中找找最大值,知道自数列为空为止。
"""
import random


def randomList(n):
    iList = []
    for i in 
  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏鹏写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值