冒泡排序,选择排序,插入排序思想分析

冒泡排序

思想:首先找到一个最大值或者最小值,然后在剩下的待排序集合中找最大或最小


方法:
相邻的两个比较,将较大的值向后交换,待第一次循环结束,最大值交换到最后一个,因为是两两比较,所以第一次循环至少需要比较n-1次,最坏情况下需交换n-1次;随后每次循环,比较次数逐渐减少,直达只剩一个元素,时间复杂度为一个等差数列(忽略交换次数),O(n^2)


优化:存在优化的空间


选择排序

思想:同冒泡排序


方法:第一次,选定一个元素作为最大值,遍历所有元素,遇到比最大值大的元素,修改最大值的值,第一次遍历结束,得到最大值;第二次 遍历除最大值外的所有元素,寻找第二大值,每次寻找遍历的元素数成等差数列,时间复杂度O(n^2)

与冒泡排序的区别在于,选择排序寻找最大值时不存在元素之间的交换,但是冒泡排序如果一次循环中没有进行交换,则证明集合已排好序;可以结束了。选择排序每次循环必须比较完毕再能确定最大值。



插入排序


思想每次,将一个新的元素插入到已排好序的集合中


方法:
将待插入元素从排好序的队尾开始,逐一进行比较,待找到合适的位置,进行插入,比较的次数决定了该算法的时间复杂度,最好情况下每次比较一次,为O(n),最坏情况下,每次插入需要与所有的元素进行比较,时间复杂度为一个等差数列,复杂度O(n^2)
















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值