冒泡法排序(冒泡法排序C语言)
本篇文章给大家谈谈冒泡法排序,以及冒泡法排序C语言对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
什么是冒泡排序法?
冒泡排序(厅锋BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数肆没放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个扮雹晌新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
冒泡排序法是什么
冒泡排序的英文Bubble Sort,是一种最基础的交换排序。
大家一定都喝过汽水,汽水中常常有许多小小的气泡,哗啦哗啦飘到上面来。这是因为组成小气泡的二氧化碳比水要轻,所以小气泡可以一点一点向上浮动。而我们的冒泡排序之所以叫做冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
具体如何来移动呢?让我们来看一个栗子:
请点击输入图片描述
有8个数组成一个无序数列:5,8,6,3,9,2,1,7,希望从小到大排序。按照冒泡排序的思想,我们要把相邻的元素两两比较,根据大小来交换元素的位置,过程如下:
首先让5和8比较,发现5比8要小,因此元素位置不变。
接下来让8和6比较,发现8比6要大,所以8和6交换位置。
请点击输入图片描述
请点击输入图片描述
继续让8和3比较,发现8比3要大,所以8和3交换位置。
请点击输入图片描述
请点击输入图片描述
继续让8和9比较,发现8比9要小,所以元素位置不变。
接下来让9和2比较,发现9比2要大,所以9和2交换位置。
请点击输入图片描述
请点击输入图片描述
接下来让9和1比较,发现9比1要大,所以9和1交换位置。
请点击输入图片描述
请点击输入图片描述
最后让9和7比较,发现9比7要大,所以9和7交换位置。
请点击输入图片描述
请点击输入图片描述
这样一来,元素9作为数列的最大元素,就像是汽水里的小气泡一样漂啊漂,漂到了最右侧。
这时候,我们的冒泡排序的第一轮结束了。数列最右侧的元素9可以认为是一个有序区域,有序区域目前只有一个元素。
请点击输入图片描述
下面早漏,让我们来进行第二轮排序:
首先让5和6比较,发现5比6要小,因此元素位置不变。
接下来让6和3比较,发现6比3要大,所以6和3交换位置。
请点击输入图片描述
请点击输入图片描述
继续让6和8比较,发现6比8要小,因此元素位置不变。
接下来让8和2比较,发现8比2要大,所以8和2交换位置。
请点击输入图片描述
接下来让8和1比较,发现8比1要大,所以8和1交换位置。
请点击输入图片描述
请点击输入图片描述
继续让8和7比较,发现8比7要大,所以8和7交换位置。
请点击输入图片描述
请点击输入图片描述
第二轮排序结束后,我们数列右侧的有序区有了两个元素,顺序如下:
请点击输入图片描述
至于后续的交换细节,我们这里就不详细描述了,第三轮过后的状态如下:
请点击输入图片描述
第四轮过后状态如下:
请点击输入图片描述
第五轮过后状态如下:
请点击输入图片描述
第六轮过后状态如下:
请点击输入图片答返描述
第七轮过后状态如下(已经是有序了,所以没有改变):
请点击输入图片描述
第八轮过后状态如下(同样没有改变):
请点击输入图片描述
到此为止,所有元素都是有序的了,这就是冒清睁饥泡排序的整体思路。
原始的冒泡排序是稳定排序。由于该排序算法的每一轮要遍历所有元素,轮转的次数和元素数量相当,所以时间复杂度是O(N^2) 。
冒泡排序代码
希望对您有所帮助!~
[img]冒泡排序的原理
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个裤茄没相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换。
冒泡排序
选择排序算法的基本思路是为每一个位置选择当前最小的元素。选择排序的基本思想是,基于直接选择排序和堆排序这两种基本的简单排序方法。首先从第1个位置纳漏开始对全部元素进行选择,选出全部元素中最小的给该位置,再对第2个位置进行选择,胡纳在剩余元素中选择最小的给该位置即可。
快速排序的基本思想是:通过一趟排序算法把所需要排序的序列的元素分割成两大块,其中,一部分的元素都要小于或等于另外一部分的序列元素,然后仍根据该种方法对划分后的这两块序列的元素分别再次实行快速排序算法,排序实现的整个过程可以是递归的来进行调用。
以上内容参考:百度百科——冒泡排序
冒泡排序
冒泡排序的英文Bubble Sort,是一种最基础衫神的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。
冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时孙塌拆进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。
一般情况下,称某个排序算法稳定,指的是当待排序序列中有相同的元素时,它们的相对位置在排序前后不会发生改变。
请点击输入图片描述(最多18字)
泡排序的原理:
每一趟只能确定将一个数归位则枣。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第2位上的数归位,依次类推下去。如果有n个数进行排序,只需将n-1个数归位,也就是要进行n-1趟操作。
而“每一趟”都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面两个相邻的两个数大小关系,重复此步骤,直到最后一个还没归位的数。
关于冒泡法排序和冒泡法排序C语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。