气泡排序和选择排序之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 17 可能 2024
Anonim
【排序算法精华1】选择排序、冒泡排序、插入排序
视频: 【排序算法精华1】选择排序、冒泡排序、插入排序

内容


排序是计算机程序中的主要任务之一,在计算机程序中,数组的元素以某种特定顺序排列。排序使搜索更加容易。气泡排序和选择排序是可以通过它们用于排序的方法进行区分的排序算法。冒泡排序本质上交换元素,而选择排序则通过选择元素来执行排序。

两者之间的另一个显着差异是,冒泡排序是稳定算法,而选择排序是不稳定算法。一种算法被认为是稳定的,这些元素具有与在对列表或数组进行排序之前出现的顺序相同的键。通常,大多数稳定快速的算法都使用额外的内存。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较依据气泡排序
选择排序
基本的相邻元素进行比较和交换选择最大的元素,并与最后一个元素交换(如果升序)。
最佳案例时间复杂度上)2)
效率低效与气泡分选相比,效率更高
稳定没有
方法交流中选拔
速度与气泡排序相比,速度更快

气泡排序的定义

气泡排序 是最简单的迭代算法,它通过将每个项目或元素与旁边的项目进行比较,并在需要时进行交换来进行操作。用简单的话说,它会比较列表的第一个和第二个元素并交换它,除非它们没有特定的顺序。同样,比较和交换第二和第三个元素,并且此比较和交换继续到列表的末尾。第一次迭代中的比较次数为n-1,其中n是数组中的元素数。第一次迭代后,最大元素将位于第n个位置。并且,在每次迭代之后,比较的数量都会减少,最后一次迭代只会发生一次比较。


该算法是最慢的排序算法。 Bubble排序的最佳情况复杂度(当列表按顺序排列时)为n阶(上)),最糟糕的情况是 2)。在最佳情况下,它的顺序为n,因为它只是比较元素,而不交换它们。此技术还需要额外的空间来存储临时变量。

选择排序的定义

选择排序 比冒泡排序算法具有更好的性能,并且效率更高。假设我们要按升序排列一个数组,然后通过找到最大元素并将其与最后一个元素交换来起作用,然后对子数组重复以下过程,直到对整个列表进行排序为止。

在选择排序中,已排序和未排序的数组没有任何区别,消耗的阶数为n2 (2)),无论是最佳还是最差情况。选择排序比气泡排序快。

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

结论

冒泡排序算法被认为是最简单,效率最低的算法,但是与冒泡排序相比,选择排序算法是有效的。冒泡排序还占用了存储临时变量的额外空间,并且需要更多交换。