简单选择排序和冒泡排序

一、排序位置的比较方式不同

  1. 简单选择排序

    • 按顺序比较,找最大值或者最小值。
    • 每一轮比较后,只确定一个元素的最终位置。
    • 选定一个位置后,再从剩余未排序的元素中找出最小(或最大)的元素,与该位置交换。
  2. 冒泡排序

    • 比较相邻位置的两个数。
    • 每一轮比较后,位置不对的相邻元素都需要换位置。
    • 通过多次遍历,将最大(或最小)的元素逐渐“冒泡”到序列的一端。

二、交换次数的差异

  1. 简单选择排序

    • 每一轮比较后,只进行一次元素交换(即将找到的最小或最大元素与当前轮次的首位元素交换)。
  2. 冒泡排序

    • 每一轮比较中,相邻元素位置不对都需要交换。
    • 因此,冒泡排序的交换次数通常比简单选择排序多。

三、找位置的方法不同

  1. 简单选择排序

    • 给定位置后,再从未排序的元素中找出最小(或最大)的元素与该位置交换。
    • 是一种“选定位置后找数”的方法。
  2. 冒泡排序

    • 通过数的比较来确定位置,即直接通过相邻元素的比较和交换来逐步确定每个元素的最终位置。
    • 是一种“通过数去找位置”的方法。

四、算法效率与稳定性

  1. 简单选择排序

    • 时间复杂度为O(n^2),其中n为待排序元素的数量。
    • 不是一种稳定的排序算法,因为相同元素的相对位置可能会在排序过程中发生改变。
  2. 冒泡排序

    • 同样具有O(n^2)的时间复杂度。
    • 是一种稳定的排序算法,因为相同元素的相对位置在排序过程中不会发生改变。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值