冒泡排序和选择排序的不同

    排序是计算机程序中的主要任务之一,数组的元素按特定顺序排列。排序使搜索更容易。冒泡排序和选择排序是排序算法,可以通过它们使用的排序方法加以区分。冒泡排序本质上是交换元素,而选择排序通过选择元素来执行排序。
    二者的另一个显著区别是冒泡排序是一种稳定的算法,而选择排序是一种不稳定的算法。稳定的意思是,在列表或数组排序前后,具有相同值的记录以相同的顺序出现。一般来说,大多数稳定快速的算法都使用额外的内存。

对比图
比较项冒泡排序选择排序
基本相邻元素进行比较和交换选择最大的元素并与最后一个元素交换(在升序的情况下)
最佳情况时间复杂度O(n)O( n 2 n^2 n2)
效率效率低比冒泡排序效率高
稳定
方法交换选择
速度比冒泡排序快
冒泡排序的定义

    冒泡排序是最简单的迭代算法,它将每个元素与它旁边的元素进行比较,并在需要时交换它们。简单地说,它比较列表的第一个和第二个元素,当它们的顺序不正确时,交换它们。类似地,第二个和第三个元素被比较和交换,这种比较和交换继续到列表的末尾。
    第一次迭代中的比较次数是n-1,其中n是数组中的元素数。第一次迭代后,最大的元素位于第n个位置。每次迭代后,比较次数减少,最后一次迭代只进行一次比较。
在这里插入图片描述
在这里插入图片描述
    此算法是最慢的排序算法。冒泡排序的最佳情况复杂度(当列表按顺序排列时)的顺序为n(O(n)),最坏情况复杂度为O( n 2 n^2 n2)。在最好的情况下,它的顺序是n,因为它只是比较元素而不交换它们。这种技术还需要额外的空间来存储临时变量。

选择排序的定义

    选择排序的性能略好于冒泡排序算法,而且效率较高。假设我们要按升序排列一个数组,那么它的作用是找到最大的元素并与最后一个元素交换,然后在子数组上重复以下过程,直到整个列表被排序。
在这里插入图片描述
    在选择排序中,已排序数组和未排序数组没有任何区别,最佳和最坏情况下的复杂度都消耗了 n 2 n^2 n2(O( n 2 n^2 n2))的数量级。选择排序比气泡排序快。
在这里插入图片描述

冒泡排序和选择排序的主要区别
  1. 在冒泡排序中,如果需要,每个元素及其相邻元素都会进行比较和交换。另一方面,选择排序通过选择元素并将该特定元素与最后一个元素交换来工作。所选元素可以是最大的,也可以是最小的,具体取决于升序或降序。
  2. 两种算法的最坏情况复杂度相同,即O( n 2 n^2 n2),但最佳复杂度不同。冒泡排序使用n个时间顺序,而选择排序使用 n 2 n^2 n2个时间顺序。
  3. 冒泡排序是一种稳定的算法,而选择排序是不稳定的。
  4. 选择排序算法是快速和有效的,相比而言,冒泡排序是非常缓慢和低效的。
结论

    冒泡排序算法被认为是最简单、最低效的算法,而选择排序算法比冒泡排序算法效率更高。冒泡排序还需要额外的空间来存储临时变量,并且需要更多的交换。

参考文档

[1]techdifferences.com.Difference Between Bubble Sort and Selection Sort[EB/OL].https://techdifferences.com/difference-between-bubble-sort-and-selection-sort.html,2021-01-01.
[2]Baidu.排序算法稳定性[EB/OL].https://baike.baidu.com/item/排序算法稳定性/9763250,2020-04-13.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值