复习笔记7-排序

概述:冒泡排序(两两相邻比较,每轮把最大值排到了最后)
快速排序(拿出数组第一个元素,其他元素于这个比较得到两组,小在左,大在右,对两组重复上述操作)
选择排序(第一个与其他所有元素比较找到最小值,第二轮用第二个和剩余比较得到次小值,如此循环)

1.快速排序

重点在于数组的拆分,数组的第一个元素定义为基准元素,然后将数组中小于比较元素的数放到左边,将大于比较元素的放到右边,得到两组结果(小于基准元素的一组和大于基准元素的一组)。再对这两个组进行同样的拆分,直到拆分到不能再拆分,数组就自然而然地以升序排列了。时间复杂度 O(n^2)
在这里插入图片描述

2.冒泡排序

原理:比较两个相邻的元素,将值大的元素交换到右边(每一轮将找出最大值、次大值。。)时间复杂度O(n^2)
在这里插入图片描述
请添加图片描述

3.选择排序

是直观的排序,通过确定一个 Key 最大或最小值,再从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为 O(n^2)

算法描述:
1.第一次遍历 n-1 个数找到最小的和第一个数交换。
2.第二次从下一个数开始遍历 n-2 个数,找到最小的数和第二个数交换。
重复以上操作直到第 n-1 次遍历最小的数和第 n-1 个数交换,排序完成。
请添加图片描述
在这里插入图片描述

4、插入排序

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
在这里插入图片描述
参考 https://www.bilibili.com/video/BV1er4y1b7o4/
https://blog.csdn.net/kexuanxiu1163/article/details/103051357

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值