简述冒泡排序与选择排序的区别...
发布网友
发布时间:2022-03-30 03:31
我来回答
共3个回答
懂视网
时间:2022-03-30 07:52
选择排序和冒泡排序的区别如下:
冒泡排序
冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数 放后,然后比较第2。
个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较。
选择排序
第一次从下标为0的开始下标为0的这个数与后面的n到1个进行比较;找出最小或者最大的放在下标为0的这个位置;第二次从下标为1的开始比较;查询剩下的最大或者最小值;放在下标为1的位置;以此类推;直到排序完成。
热心网友
时间:2022-03-30 05:00
不需要代码说明
选择排序:每次都要遍历全部元素,选择其中最小的(或最大的)放到第一位
冒泡排序:比较相邻的两个数,大的(或者小的)放后面
由于冒泡是一边比较一边调整顺序,所以数列会越来越接近排序完成状态。
例子:
5 3 1 6 4 2
从小到大:
选择:
1 3 5 6 4 2
1 2 5 6 4 3
1 2 3 6 4 5
1 2 3 4 6 5
1 2 3 4 5 6
可以看出经常回把较小的数放后面了,前面的比较结果对后面没有任何帮助
冒泡:
3 5 1 6 4 2
3 1 5 6 4 2
3 1 5 6 4 2
3 1 5 4 6 2
3 1 5 4 2 6
以上为第一趟冒泡,看起来很长,实际上比较次数跟选择排序例子里面一行的赐教次数相同,都是n
第二趟:134256
第三趟:132456
第四趟:123456
合起来排了5趟
由于选择排序在每次比较中都让数列排序更为优化,也就是说有效利用了每一趟的比较的结果,所以多数情况下优于选择,但如果数字比较少的话用选择程序更易读,也不容易写错。追问选择排序,每一轮,只是两个数的位置的互换吗?其它的位置不变?
追答是的
热心网友
时间:2022-03-30 06:18
排序算法网上太多了吧。