随着在工作中,代码量的累积,才逐渐觉察到算法和数据结构的重要性,而在大学学习的算法和数据结构知识,也已经逐渐模糊,所以计划着回顾下之前关于算法的知识,顺便做个总结,以便日后参考提升。
首先回顾下比较知名度比较高的“快速排序”吧。它是基于对“冒泡排序”的一种改进,但是要比冒泡排序要高效的多,并且其中运用了分治和递归的思想。它和冒泡排序一样,也属于“交换排序”,通过元素之间的比较和交换位置来达到排序的目的。但是,冒泡排序在每一轮只把“一个”元素冒泡到数列的一端。
快速排序的核心思想是在每一轮排序之前随机挑选出来一个基准元素,然后将比基准元素大的元素移动到数列的一边,比基准元素小的元素移动到数列的另一边,从这以基准元素为标准将数列分成了两部分。这就是所谓的----分治思想。然后运用“递归思想”将原数列以基准数为中心进行拆分,然后再拆分后的数列中再挑选基准元素进行分类,这样每一部分在下一轮又被拆分成两部分,直到不可再分为止。
说了这么多,放个图说明下:
---------------------
图片参考CSDN
博主:wfc1998
(1) 这里取最后一个数据为基准值,begin标记数组第一个数据,end标记数组最后一个数据
(2
最后
以上就是凶狠蓝天最近收集整理的关于快速排序基准数字为中间_快速排序回顾总结--算法篇的全部内容,更多相关快速排序基准数字为中间_快速排序回顾总结--算法篇内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复