码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-12-08 23:58:33      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:csdn   选择排序   net   tail   复杂   移动   筛选   .net   bsp   

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]的位置 最后来交换


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

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

标签:csdn   选择排序   net   tail   复杂   移动   筛选   .net   bsp   

原文地址:https://www.cnblogs.com/genggeng/p/10089591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!