手写代码
softbreezee
java开发学习者
展开
-
面试常问--快速排序
文章流程:思路——代码——分析——改进【思路】排序过程:快排是制分的思路,首先将一个随机的元素放在数组中本该存在的位置,然后将小于该元素的放在左面,大于该元素的放在右面。partition过程:对于数组[l...r]每次选取最左面的元素arr[l],声名两个指针i,j,i用于遍历数组,j用于存放小于arr[l]的元素,范围是[l+1...j]。 【代码】pub...原创 2018-09-25 21:26:22 · 637 阅读 · 0 评论 -
面试常问--堆排序
文章流程:思路——代码——分析——改进【思路】堆排序有两种,一种利用堆的特性,先构建最大堆,每次得到最大堆的堆顶元素;另一种是直接原地使用堆排序。原地堆排序:将数组构建成堆,交换数组的第一个元素和最后一个元素。依次对除去最后的元素的剩下数组进行排序。【代码】原地排序:public class Main{ public static void ma...原创 2018-09-25 23:01:07 · 916 阅读 · 0 评论