选择排序与冒泡排序区别与比较

Posted genggeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择排序与冒泡排序区别与比较相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/weixin_38277423/article/details/70304120

区别主要在交换的方式上

每一轮都把最大或最小的元素筛选出来放在相应的位置上 这是相同的 

但是
对于每一轮
比如第一轮
要把1~n 中最大的那个放到n这个位置
冒泡法每次比较和移动相邻的两项
而选择排序每次交换当前项和第n项
我把代码写出来你就懂了:

冒泡:
for i:=1 to n-1 do
if (a[i]>a[i+1]) then swap(i,i+1);
选择:
for i:=1 to n-1 do
if (a[i]>a[n]) then swap(i,n);
(swap 表示交换)

总的来说,两种排序比较的次数是相同的
但交换的次数,选择排序是更少的
虽然两者的时间复杂度都是 O(n^2)


但通常,选择排序更快一点

冒泡排序是每一次都可能要交换
而选择排序是在比较时记下a[i]的位置 最后来交换


所以他们的交换过程是不一样的 而查找的过程是一样的


















以上是关于选择排序与冒泡排序区别与比较的主要内容,如果未能解决你的问题,请参考以下文章

学而时习之集合与多线程篇: 选择排序 VS 冒泡排序

学而时习之集合与多线程篇: 选择排序 VS 冒泡排序

冒泡排序与选择排序

给类排序复杂度比较和冒泡排序与选择排序

选择排序与冒泡排序

冒泡排序与选择排序的比较(Python实现)