C语言中选择排序和冒泡排序的区别是什么?哪位大侠教教小弟

如题所述

第1个回答  2019-10-20
是这样的
区别主要在交换的方式上
每一轮都把最大或最小的元素筛选出来放在相应的位置上
这是相同的
但是
对于每一轮
比如第一轮
要把1~n中最大的那个放到n这个位置
冒泡法每次比较和移动相邻的两项
而选择排序每次交换当前项和第n项
我把代码写出来你就懂了:
冒泡:
fori:=1ton-1do
if(a[i]>a[i+1])thenswap(i,i+1);
选择:
fori:=1ton-1do
if(a[i]>a[n])thenswap(i,n);
(swap表示交换)
总的来说,两种排序比较的次数是相同的
但交换的次数,选择排序是更少的
虽然两者的时间复杂度都是O(n^2)
但通常,选择排序更快一点参考资料:http://hi.baidu.com/yukunlinykl/blog/item/56f3986e768fe5db81cb4a17.html
相似回答
大家正在搜