递归
快速排序和前面的冒泡排序一样,也是交换排序的一种
快速排序和前面的冒泡排序一样,也是交换排序的一种,但是他是基于分治的算法思想,元素进行位置交换时可以跨度很大,而冒泡中只能进行相邻元素的交换,这样可以减少很多交换次数 它的基本思想是:通过一趟排序讲要排序的序列分成两个子部分,其中一部分的所有数据要比另一部分的所有数据小,然后再按照这个方法对两个子部分也分别进行快速排序,这个过程可以递归进行。 1.一开始选定数组的最后一个元素5作为基准值,也就是最终排序结果应该是以5为界限划分为左右两边。 2.从左边开始,寻找比5大的值,然后与5进行调换(因为如果比5小的值本来就应该排在5前面,比5大的值调换之后就去到了5的后面),一路过来找到了7,将7与5调换,结束此次遍历
二叉树的问题用分治的思想来做都比较简单
二叉树的问题用分治的思想来做都比较简单,这道题首先想到的就是递归。 我们要求21的坡度,其实就是求21的左子树上的结点之和以及右子树上的结点之和的差值。21的左子树上的结点之和 = 7 + 7的左子树之和 + 7的右子树之和,并且在求和的同时我们可以把坡度算出来