ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1、python冒泡排序、快排

2021-08-02 09:34:44  阅读:218  来源: 互联网

标签:sort 27 20 基准值 python list1 冒泡排序 快排 88


冒泡排序原理: 比较相邻的两个元素,如果顺序有误则把他们交换位置。直到最后一个是最大的。就像气泡一样,小的向上浮。

list1 = [20,15,88,97,76,13,27,49] 
def bubble_sort(list1):
    count = len(list1)
    for i in range(0,count):
        for j in range(i+1,count):
            if list1[i] > list1 [j]:
                list1[i],list1[j] = list1[j],list1[i]
    return list1 
aaa = bubble_sort(list1) 
print(aaa)

[13, 15, 20, 27, 49, 76, 88, 97]

 

快速排序(快排)的原理:
1、在数列之中,选择第一个元素作为”基准”。
2、数列中所有元素都和这个基准值进行比较,如果比基准值小就移到基准值的左边,如果比基准值大就移到基准值的右边
3、以基准值左右两边的子列作为新数列,不断重复第一步和第二步,递归完成时,就是排序结束时。

递归:不断重复这个循环,就是递归。哪个循环?(从一个地方出发,回到了出发的地方)
递归例子:
从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是啥?
从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是啥?
从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是啥?

list1 = [20,15,88,97,76,13,27,49]
def quict_sort(list1):
    if list1 == []:
        return []
    else:
        first = list1[0]
        less = quict_sort([l for l in list1[1:] if l < first])
        morr = quict_sort([m for m in list1[1:] if m >= first])
    return less + [first] + morr
aaa = quict_sort(list1)
print(aaa)

[13, 15, 20, 27, 49, 76, 88, 97]

 

标签:sort,27,20,基准值,python,list1,冒泡排序,快排,88
来源: https://www.cnblogs.com/all-best98/p/15088568.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有