算法
xiaojirou233
这个作者很懒,什么都没留下…
展开
-
Java 求两数的最大公约数 一行代码搞定
辗转相除法,仅一行代码,背会就完了 public static int gcb(int m, int n) { return n == 0 ? m : gcb(n, m % n); }原创 2021-02-18 10:02:01 · 157 阅读 · 0 评论 -
随机快排
思路 随机找数组中一个数做基准数; 经过一个partition操作,达到基准数左边的数都比它小,右边的数都比它大。以此固定基准数的位置; 基准数左侧部分递归做partition操作; 基准数右侧部分递归做partition操作; 递归的出口是只剩一个元素。 partition 功能:经过一系列比较交换后,使base基准数左边的数都比它小,右边的数都比它大 流程: 规定less下标的左边为小于base的区域,more下标的右边为大于base的区域 用index指针遍历元素,从数组的L遍历到R 遍历到的数原创 2020-12-30 16:27:47 · 169 阅读 · 0 评论 -
归并排序的递归实现与循环实现
归并排序的递归实现与循环实现 思路 假设数组逻辑上被分为两个数组,这两个数组有序,想办法把这两个数组有序的添加到另一个等长的备用数组中。 具体做法: 设置两个指针分别指向两个数组的第一个元素 比较两个指针所在元素的大小,小的放到备用数组中,并且小的元素的指针后移,直到有一个指针到头越界 另一个没越界的数组元素依次放到备用数组中 将备用数组中的元素copy到原数组中 递归代码实现 /** * 归并排序 递归实现 */ public static void mergeSortD原创 2020-10-26 15:03:28 · 159 阅读 · 0 评论