冒泡法和选择法排序的思想

如题所述

冒泡和快速排序的区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。将待排序的元素看作是竖着排列的"气泡",较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个"气泡"序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即"轻"的元素在下面,就交换它们的位置。显然,处理一遍之后,"最轻"的元素就浮到了最高位置;处理二遍之后,"次轻"的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是"最轻"元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。

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

其实看你声明的变量的个数就知道了。选择的要比冒泡的多声明一个,用来存储最小(或最大的)元素的下标。而冒泡的比较后直接换。
温馨提示:内容为网友见解,仅供参考
无其他回答

冒泡法和选择法排序的思想
所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数是一样的。其实看你声明的变量的个数就知道了。选择的要比冒泡的多声明一个,用来存储最小(或最大的)元素的下标。而冒泡的比较后直接换。

选择法和冒泡法的区别
冒泡排序的基本概念是依次比较相邻的两个数,将小数放在前面,大数放在后面;选择排序的基本原理是第一次从下标为0的开始下标为0的这个数与后面的n-1个进行比较,找出最小或者最大的放在下标为0的这个位置,依次类推;对于冒泡排序,主要采用的是相邻数两两进行比较的思想;对于选择排序,首先理解排序的...

冒泡排序和选择排序的区别
冒泡排序的核心在于相邻元素的依次比较和交换位置。具体实现流程是取一组无序数据进行纵向排列,进行逐对数据的比较。若上位数据大于下位数据,则交换两数据的位置,如此重复直至完成排序。整个过程就像大气泡下沉,小气泡上浮,因此得名冒泡排序。冒泡排序的时间复杂度为O(n²)。选择排序方法的排序过程...

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

排序方法有哪几种
2、冒泡排序算法是把较小的元素往前调或者把较大的元素往后调。这种方法主要是通过对相邻两个元素进行大小的比较,根据比较结果和算法规则对该二元素的位置进行交换,这样逐个依次进行比较和交换,就能达到排序目的。3、选择排序算法的基本思路是为每一个位置选择当前最小的元素。选择排序的基本思想是,基于...

快速排序的思想
冒泡排序是一种简单的排序方法,它的主要思想是通过不断交换相邻元素的位置来将较大的元素逐步“浮”到数列的末端,从而实现排序。选择排序则是通过不断选择数列中的最小值,并将其放到数列的起始位置,再对剩余的未排序部分进行同样的操作,从而实现排序。插入排序则是通过将未排序元素逐个插入到已排序...

近日感觉,选择排序和冒泡排序其实是一样的啊,都是把最大或最小的往前...
你可以这么理解,选择排序是一步到位,冒泡排序是逐渐地,并行地排序,其中每个元素并不是一步到位直接挪到应在的地方,而是分散在多次的交换中和迭代中。冒泡排序从理论上,所有元素从最初的位置,到达最后应在的位置,整个过程经过了L(L-1)\/2次的相邻比较和逆序次(不妨令逆序为k)的相邻交换。对比...

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

c语言中起泡法和选择法有什么不同,急!,谢谢!
起泡法(冒泡法)是相邻元素两两比较,每趟将最值沉底即可确定一个数在结果的位置,确定元素位置的顺序是从后往前,其余元素可能作相对位置的调整。可以进行升序或降序排序。选择法是每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置...

python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排...
冒泡排序法是另一种直观的排序算法,通过相邻元素的比较和交换实现排序。每次遍历整个列表,将最大(或最小)元素移动到序列的末尾。冒泡排序法的优化在于一旦在一次遍历中没有进行任何交换,即可判断列表已排序完成,从而提前终止算法。尽管存在这种优化,冒泡排序法的效率仍然不高,但在理解排序算法的基本...

相似回答