选择排序与冒泡排序区别与比较
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]的位置 最后来交换
所以他们的交换过程是不一样的 而查找的过程是一样的
以上是关于选择排序与冒泡排序区别与比较的主要内容,如果未能解决你的问题,请参考以下文章