选择排序算法与冒泡排序算法有何异同啊?

初看这两种算法,不知道有何不同。请各位指点一二。

区别在于:在交换的方式上

冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。

而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。

所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数一样的。

例如:1 2 3 4我们分别用a[0],a[1],a[2],a[3]存储。假设从大到小排序

选择排序,是a[0]和a[1],a[2],a[3]依次比较,遇到小的就交换,这样一次下来,最大的被保存在了a[0].下次排序就从a[1]开始重复以上步骤。

冒泡排序,是a[0]和a[1]比较,小的就交换。然后a[1]和a[2]比较,小的交换。然后a[2]和a[3]比较小的就交换。这样一次下来,最大的被保存在a[0]。下次排序从a[1]开始重复以上步骤。

虽然差不多,但是请注意:两者的比较方法是右差别的,一个事依次比下来,一个是俩俩比较。

扩展资料:

冒泡排序的基本思想是将数组中的每个相邻元素进行两两比较,按照小元素在前(或大元素在前)的原则确定是否进行交换。这样每一轮执行之后,最大(或最小)的元素就会被交换到了最后一位。  

同样的过程会依次进行,直到所有元素都被排列成预期的顺序为止。这个过程是不是很像是水中的起泡一个个冒起来的过程.

选择排序(select sort):每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

参考资料:百度百科-选择排序

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-22
区别在于:在交换的方式上
冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。
而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。
所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数一样的。
例如:1 2 3 4我们分别用a[0],a[1],a[2],a[3]存储。假设从大到小排序
选择排序,是a[0]和a[1],a[2],a[3]依次比较,遇到小的就交换,这样一次下来,最大的被保存在了a[0].下次排序就从a[1]开始重复以上步骤。
冒泡排序,是a[0]和a[1]比较,小的就交换。然后a[1]和a[2]比较,小的交换。然后a[2]和a[3]比较小的就交换。这样一次下来,最大的被保存在a[0]。下次排序从a[1]开始重复以上步骤。
虽然差不多,但是请注意:两者的比较方法是右差别的,一个事依次比下来,一个是俩俩比较。
第2个回答  2009-04-02
例如:1 2 3 4我们分别用a[0],a[1],a[2],a[3]存储。假设从大到小排序
选择排序,是a[0]和a[1],a[2],a[3]依次比较,遇到小的就交换,这样一次下来,最大的被保存在了a[0].下次排序就从a[1]开始重复以上步骤。
冒泡排序,是a[0]和a[1]比较,小的就交换。然后a[1]和a[2]比较,小的交换。然后a[2]和a[3]比较小的就交换。这样一次下来,最大的被保存在a[0]。下次排序从a[1]开始重复以上步骤。
虽然差不多,但是请注意:两者的比较方法是右差别的,一个事依次比下来,一个是俩俩比较。
第3个回答  2019-11-21
第4个回答  2009-04-02
冒泡的逻辑是把元素向应有的位置移动
选择是寻找特定位置所对应的元素。

冒泡最坏的情况复杂度才是O(n^2) 选择平均复杂度就是O(n^2) 但是冒泡的最坏情况处理要比选择慢。

选择排序算法与冒泡排序算法有何异同啊?
区别在于:在交换的方式上 冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前...

冒泡排序和选择排序区别
两种排序在稳定性、交换次数、比较方式和效率等方面存在区别。1、稳定性:冒泡排序是一种稳定的排序算法,而选择排序则不是。在冒泡排序中,相等的元素在排序后不会改变其相对位置,而在选择排序中,相等的元素可能会因为交换而改变其相对位置。2、交换次数:冒泡排序在每一轮比较中,只要相邻元素顺序不对...

选择排序和冒泡排序的区别是什么?
选择排序与冒泡排序区别:1、冒泡排序是左右两个数相比较,而选择排序是用后面的数和每一轮的第一个数相比较;2、冒泡排序每轮交换的次数比较多,而选择排序每轮只交换一次;3、冒泡排序是通过数去找位置,选择排序是给定位置去找数;4、当一个数组遇到相同的数时,冒泡排序相对而言是稳定的,而选择...

选择排序和冒泡排序有什么区别
1、稳定性不同:冒泡排序是稳定的排序,而选择排序是不稳定的排序。2、交换成本不同:冒泡排序需要相邻元素比较,如果当前元素大于后一个元素进行交换,而选择排序只需换一次位置。3、顺序不同:冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值。4、优缺点不同:冒泡排序...

C语言中冒泡排序法和选择排序法有哪些不同
1、冒泡排序法:一趟一趟的将两个相邻的数进行交换如果有10个数则需要排9躺,如果是从 大到小输出则需要每次将后一个数和前一个数进行比较将较大的数赋值给钱一个数,将较小的数赋值给后一个数,其实就是两个数交换,那么第一趟交换完毕后,最 小的数便出现在了数组的最后面,然后进行第二趟...

冒泡法和选择排序法有什么不同?最好举下例子
冒泡排序和选择排序都是稳定的排序方法。不同的地方是处理的过程不一样。冒泡是相邻的两两比较,把小的交换上去,每一趟比较都会得到一个最小值。一个一个的就像是冒泡一样,比较形象。如果在一趟比较中,没有发现要交换的数值,则排序完成。选择排序是从待排序队列中选出最小的值,放到已排序队列的...

冒泡与选择有哪些异同呢?
冒泡排序和选择排序的时间复杂度,空间复杂度都是相同的,他们的外层循环次数,乃至总的比较次数也是相同的。不同的地方在于,大多数情况下选择排序的交换操作次数会比冒泡更少,会高那么一点运行效率,再一个冒泡排序是稳定的(前提是相等的数据不进行互换),选择排序是不稳定的。冒泡算法的逻辑在于,让...

冒泡排序和选择排序的区别
形成最小值序列。然后开始新一轮扫描,从剩余元素中寻找最小值并将其置于序列第二位置。重复此过程直至数据全部排序完成。此算法的代码实现中,外层循环用于指定与第i个元素的交换,内层循环则用于在第i+1至末尾元素中寻找最小值进行交换。如同冒泡排序,选择排序的时间复杂度也均为O(n²)。

C语言 冒泡排序法和选择法的不同,本质区别
冒泡: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)但通常,选择...

...排序方法有哪些?比较一下冒泡排序和选择排序算法上的异同。_百度知...
1、都是比较排序:冒泡排序和选择排序都是通过比较相邻元素的大小,然后交换位置来实现排序的,因此它们都属于比较排序算法。2、都需要进行多次遍历:无论是冒泡排序还是选择排序,都需要多次遍历待排序的序列,才能实现排序。不同之处:1、操作方式不同:冒泡排序是依次比较相邻元素的大小,如果顺序错误就...

相似回答