内容引用自:
【数据结构和算法】十大经典排序算法(动图演示)
(选取pivot基准,双指针left和right分别指向第一个元素和最后一个元素,与基准进行比较,right比基准大就往左移动,否则和left位置的元素替换位置,left的往右移动,重复刚才工作,
直至双指针指向同一个位置,这样就把基准元素位置确定了,之后递归遍历基准元素的左右两边的元素即可实现排序;)
时间复杂度最好:o(nlogn) 当输入数组已经完全有序或几乎有序时最差o(n^2)
空间复杂度:最好:o(logn) 最差o(n)
选择排序(Selection-sort)是一种简单直观的排序算法。
它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。
它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
结果:
来源:归并排序(Merge Sort)图解,归并排序算法-学到牛牛
归并排序是建立在归并操作上的一种有效、稳定的排序算法,该算法采用非常经典的分治法(分治法可以通俗的解释为:把一片领土分解,分解为若干块小部分,然后一块块地占领征服,被分解的可以是不同的政治派别或是其他什么,然后让他们彼此异化),归并排序的思路很简单,速度呢,也仅此于快速排序
基本思路:
第一步:将序列中待排序数字分为若干组,每个数字分为一组。
第二步:将若干组两两合并,保证合并的组都是有序的。
第三步:重复第二步的操作,直到剩下最后一组即为有序数列。
详细步骤:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://bts.tttmy.cn/news/11022.html