码迷,mamicode.com
首页 > 编程语言 > 详细

算法分析与设计——各类排序算法

时间:2020-06-15 22:29:53      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:算法   href   介绍   style   冒泡   二分   str   ref   归并   

主要介绍关于插入排序、冒泡排序、快速排序、二分归并排序等几种排序算法。

1.插入排序

2.冒泡排序

3.快速排序

4.二分归并排序

首先是几大算法的效率:

技术图片

 

1.插入排序:

插入排序:以下图为例,下一个预备插入的为2,首先和前一个7进行对比,7>2,所以7向后挪动,2再和6进行比较,6向后挪动...依次向前,当1与2比较时,1<2,把2排到1后面。技术图片

一遍下来所有的都已经排好。

 技术图片

 

 2.冒泡排序

冒泡排序是进行多次巡回才可以得到排好序的序列。第一次巡回,5与1比较,交换;5与6比较,不交换;6与2 比较,交换...

技术图片

 

 多次巡回结果:(需要注意的是,下图中绿色部分是下一次巡回的范围,而这个界限是本次巡回最后一次交换的位置,尤其要注意是交换的位置(第2次巡回6与7只是比较了但没有交换))

技术图片

 

 

 3.快速排序

选定首元素作为划分标准,从前面找第一个比首元素大的,从后往前找第一个比首元素小的,然后将两者进行交换。随后再分别从交换过的两个元素的后面和前面往下寻找。当到中间两个相邻元素进行交换之后,那么首元素和左边最后交换过的那个元素进行交换(下图中是2与5交换)

技术图片

 

 此后,相当于最开始的首元素(5)把问题划分成两个子问题(左边和右边),之后递归地进行排序就可以得到结果。

技术图片

 

 4.二分归并算法

把元素序列从中间划分开,利用递归排序,二分排序两边子问题,得到最终排好序的两个子问题,再依次一边拿出一个元素 ,对比之后进行归并。

技术图片

 

算法分析与设计——各类排序算法

标签:算法   href   介绍   style   冒泡   二分   str   ref   归并   

原文地址:https://www.cnblogs.com/yayyer/p/13138244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!