冒泡排序与选择排序的区别

两种排序的区别主要在交换的方式上

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

不同点: 对于每一轮, 比如第一轮

要把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)

但正常情况下,由于交换次数更少,选择排序更快一点

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Linux下网络聊天系统 系统分为两个结构:1.聊天系统客户端。 客户端主要功能:客户登录界面,客户选择输入注册和...
    酸菜牛肉阅读 363评论 1 1
  • 记得今年上班第一天,因为没有太多的工作安排,和我的一个同事(樊登会员)聊到一个很有意思的话题,在过去一年里,看过...
    水墨玉语阅读 224评论 2 1
  • 最近在读芭芭拉 奥克利的《学习之道》。作者芭芭拉曾一名俄语翻译,她曾一度憎恶数学,把数字、方程视为洪水猛兽,唯恐避...
    吴小肉爱读书阅读 165评论 0 0
  • 这女人,仅被罚款就八亿多。 可想而知,这些货太有钱了。 而我们有多少的穷人, 还挣扎在温饱线上。 崔永元同志, 敢...
    仍需历验阅读 144评论 0 1