6大常见排序算法 python实现

1.最快的排序算法:快速排序(不稳定)

每次找基准(一般选第一个),将数组分为大于基准和小于基准两块,然后对每一块递归,直到只剩一个元素,然后返回 左+中+右
在这里插入图片描述

2.归并排序

在这里插入图片描述
在这里插入图片描述

3.冒泡排序

最简单的 o(n2)复杂度,稳定的,、
两两比较,不对就交换
def bubble_sort(nums):for i in range(len(nums)):for j in range(len(nums)-i-1):if nums[j] > nums[j+1]:nums[j],nums[j+1] = nums[j+1],nums[j]return nums

4.堆排序 (不稳定)

讲的比较好
https://www.bilibili.com/video/av18980178?from=search&seid=3518072115040122033
先看视频,再看代码:
https://www.jb51.net/article/139922.htm

在这里插入图片描述

5、选择排序 (不稳定)

声明一个变量min_index等于列表的第一个坐标值0

从第一个位置0坐标开始,和它后边所有的元素一一比对,如果发生了后边的值min_index坐标的对应的值更小,则min_index值改为后边那个数的坐标,然后用min_index坐标对应的值再跟后边的数比较,完成全部比对以后,将列表的第一个数和min_index坐标对应的数做一个交换

第一次用6和5比较,5小,min_index改为1,用5和后边的4比,4小,min_index改为2,用4跟3比,3小,min_index改为3,用3跟2比较,2小,min_index改为4,用2和1比较,1小,min_index改为5,比完了,把坐标5对应的值和第一个值交换

min_index=5

a=[1, 5, 4, 3, 2, 6],最小的1放到最前边,

第二步:从坐标1开始,把刚才的逻辑再来一遍:

a=[1, 2, 4, 3, 5, 6]

第三步:从坐标2开始,把刚才的逻辑再来一遍

a=[1, 2, 3, 4, 5, 6]

第四步:从坐标3开始,把刚才的逻辑再来一遍

a=[1, 2, 3, 4, 5, 6]

第五步:从坐标4开始,把刚才的逻辑再来一遍

a=[1, 2, 3, 4, 5, 6]

在这里插入图片描述

6.插入排序

插入排序原理很简单,讲一组数据分成两组,我分别将其称为有序组与待插入组。
每次从待插入组中取出一个元素,与有序组的元素进行比较,并找到合适的位置,
将该元素插到有序组当中。就这样,每次插入一个元素,有序组增加,待插入组减少。
直到待插入组元素个数为0。当然,插入过程中涉及到了元素的移动。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值