
算法
gegeyanxin
这个作者很懒,什么都没留下…
展开
-
【leetCode】4,找出两个有序数组的中位数
方法一、首先直观能想到的是合并两个有序数组,然后找出中间位置的数字,合并两个有序数组有专门的一道题,不难。 方法二、接着我们可能会想到,求中位数,只需要找到第K(k为中位数位置)个元素就可以了,没必要合并整个数组。从第一个元素开始,分别对两个逐一遍历,找到第K大的元素,也不难。 前两种方法都是O(N)级别的时间复杂度。那么O(logN)级别的怎么计算呢?Log级别只能折半查找。于是就有了重点的方法三。 方法三、每次取两个数组各自的第k/2个元素进行比较,扔掉小的那部分,再进行查找。那么为什么不是左右分原创 2021-05-14 13:32:51 · 350 阅读 · 0 评论 -
排序[二] 快速排序之JAVA实现
package quickSort; import Utils.ArrayUtils; public class QuickSort { public static int getIndex(int[] srcArr,int left,int right) { int key = srcArr[left]; while(left<right){ while(srcArr...原创 2018-08-23 19:48:47 · 150 阅读 · 0 评论 -
数据结构一.用栈检测括号匹配
代码如下 package dataStruct; /** * 栈检测括号匹配 */ import java.util.Scanner; import java.util.Stack; public class CheckBracket { public static void main(String[] args) { Scanner sc = new Scanner(System....原创 2018-08-23 20:06:18 · 713 阅读 · 0 评论 -
数据结构二.用数组实现队列
package dataStruct; /** * 用数组实现队列 * @author 马 * */ public class ArraytoQueue { public static void main(String[] args) { ArrayQueue queue = new ArrayQueue(10); System.out.println(queue.isEmpt...原创 2018-08-23 20:07:56 · 138 阅读 · 0 评论 -
数据结构三.用链表实现栈
代码如下: package dataStruct; class Node { Object element; Node next; public Node(Object element){ this(element,null); } /** * 创建一个新的节点 * 让他的next指向,参数中的节点 * @param element * @param...原创 2018-08-23 20:10:39 · 252 阅读 · 0 评论