![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
traveler100
吾行吾道,虽远必至。
展开
-
多图养眼!Partition,荷兰国旗问题与随机快排
快速排序的思想是通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归方式实现,以此达到整个数据变成有序序列。 在实现快速排序之前,先了解: Partition 荷兰国旗问题 这两个问题,将有助于我们实现快速排序算法。 Partition Partition的过程:给定一个数组arr,和一个整数num。把小于等于num的数放在数组的左边,大于num的数放在数组的右边。 比如数组int[] a.原创 2020-09-27 18:42:25 · 196 阅读 · 0 评论 -
排序算法-归并排序的实现与时间复杂度分析
归并排序 归并排序是分而治之的排序算法。 划分步骤很简单:将当前数组分成两半(如果N是偶数,则将其完全平等,或者如果N是奇数,则一边稍大于一个元素),然后递归地对这两半进行排序。 递归写法 归并排序递归写法的思想是,设定一个函数,函数实现的目的是让int[] arr在L ~ R位置上有序,处理过程是从L ~ R上找一个中间位置M,递归调用该函数,让int[] arr的L ~ M上有序,M+1 ~ R上有序,每一次不能往下递归了,便调用归并的方法将左右两边的数组合并成一个数组,到最后整个数组便有序了。 因此,原创 2020-09-15 08:25:30 · 2768 阅读 · 0 评论