交换排序中冒泡排序和快速排序的简单比较

最近学习了排序的有关知识点,其中交换排序中的冒泡排序和快速排序花费的时间相对较多。简单学习,记录一下学习小悟吧!

一、概念

二、图像说明

三、小悟


首先说说他们各自的概念:

交换排序包括冒泡排序和快速排序。

交换排序的基本思想:比较两个记录键值的大小,如果这两个记录键值的大小出现逆序,则交换这两个记录,这样将键值较小的记录向序列前部移动,键值较大的记录向序列后部移动。

冒泡排序(Bubble Sorting)是一种交换排序方法,其过程是首先将第一个记录的键值和第二个记录的键值进行比较,若为逆序(即R[1].key>R[2].key),则将这两个记录交换,然后继续比较第二个和第三个记录的键值。以此类推,指导完成第n-1个记录和第n个记录的键值比较交换为主。

快速排序(QuickSorting)是交换排序的一种,实质上是对冒泡排序的一种改进。基本思想:在n个记录中取某一个记录的键值为标准,通常取第一个记录键值为基准,通过一趟排序将待排序的记录分为小于或等于这个键值和大于这个键值的两个独立的部分,这时一部分的记录键值均比另一部分的键值小,然后,对这两部分记录继续分别进行快速排序,已达到整个序列有序。

上面的概念忒抽象,不懂也没事!初学者就是被这些抽象的语句阻止脚步的!下面来点具体的。

其次是图像说明
       冒泡排序是之前米老师给我们看的视频,这视频对初学者很有帮助,在此再次提一下,冒泡排序的具体的东西等待深入学习之后再拿出来说说吧!

冒泡排序小视频

                 快速排序:刚才试着给同学说说了,感觉效果不太好!鉴于自己的功力有限,简单附上几幅图,最后给大家几个好的链接帮助大家理解!

图一:

交换排序中冒泡排序和快速排序的简单比较_第1张图片

图二(个人认为是另一种形式,希望有研究者可以指点指点)

交换排序中冒泡排序和快速排序的简单比较_第2张图片

几个推荐的博客链接:快速排序讲解链接(一)   快速排序讲解(二)

最后:小悟

    这两个排序方法就像兄弟俩,都是出自交换排序!后者快速排序之所以比较快,是因为使用两个指针,进行双向判定,而冒泡排序一直是单向判定,要不一直比大交换,要不一直比小交换。而快速排序一头比大交换,一头比小交换。形式上给人二分法的感觉。这两者的思想都是相同的。



你可能感兴趣的:(冒泡排序,快速排序)