算法设计笔记(二)计算复杂度之排序问题

首先我们来了解以下各排序算法的效率
以元素比较作基本运算
在这里插入图片描述

接下来以次介绍各排序算法的原理
1、插入算法
在这里插入图片描述
前面的数字已经拍好,现在插入数字2
在这里插入图片描述
2比7小,2与7交换位置
2比6小,2与6交换位置
2比5小,2与5交换位置
2比3小,2与3交换位置
2比1大,2排在1后面
在这里插入图片描述
因此得到此插入排序的运行实例为
在这里插入图片描述
2、冒泡排序
从前到后相邻两个数的比较,如果前面比后面大,那么就交换位置
冒泡排序的一次巡回
在这里插入图片描述
5比1大,5和1交换位置
5比6小,5和6位置不变
6比2大,6和2交换位置
6比8小,6和8位置不变
8比3和4和7都大,8排到最后
在这里插入图片描述
以此得到5次巡回的结果
在这里插入图片描述
3、快速排序
以元素为标准,从前往后找第一个比首元素大的是8,从后往前找第一个比首元素小的是4,
在这里插入图片描述那么8和4交换位置在这里插入图片描述
接着找4后面第一个比5大的是6,8前面第一个比5小的是2
交换6和2的位置
因此在2前面的都是比5小的,2后面都是比5大的
在这里插入图片描述
5和2交换位置,那么5前面都是比5大的,5后面都是比5小的在这里插入图片描述
4.二分归并排序
在这里插入图片描述
将整个数组划分为两个部分,分别进行递归排序,排序完毕之后再将两部分进行整合在这里插入图片描述
两部分从第一个元素以此比较,小的就拿走
如:1比2小,1拿走
2比3小,2拿走,排在1后
3比4小,3拿走,排在2后
4比5小,4拿走排在5后,依次到8,是一个空元组,直接接在后面。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值