随笔分类 - 数据结构与算法
摘要:排序方法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 复杂性 直接插入排序 O(n2) O(n2) O(n) O(1) 稳定 简单 希尔排序 O(nlog2n) O(n2) O(n1.3) O(1) 不稳定 较复杂 直接选择排序 O(n2) O(n2) O(n2)
阅读全文
摘要:首先选取序列的第一个数为key,然后先从后往前遍历,找到比key小的数停止,然后再从前往后遍历,找到比key大的数停止,然后调换这两个数的位置。然后重复这个步骤,直到相遇为止并将这个数与数组的最左边的数进行交换,将所有比key小的数放在它的位置之前,所有比key大的数放在它之后,划分为两个子序列,这
阅读全文
摘要:public void quickSort(int[] nums,int left,int right) { if (nums.Length==0||nums==null||left>right) { return; } int i = left; int j = right; int key =
阅读全文
摘要:首先有三种构造方法,空参,指定大小,和指定集合 public ArrayList(); public ArrayList(Collection<? extends E> c) public ArrayList(int initialCapacity) 后两种通过创造对象,或指定大小来初始化内部数据即
阅读全文
摘要:性质1:每个节点要么是黑色,要么是红色。 性质2:根节点是黑色。 性质3:每个叶子节点(NIL)是黑色。 性质4:每个红色节点的两个子节点一定都是黑色。 不能有两个红色节点相连。 性质5:任意一节点到每个叶子节点的路径都包含数量相同的黑结点。 从性质5又可以推出: 性质5.1:如果一个节点存在黑子节
阅读全文
摘要:1.hashmap在确定元素落在数组的位置的时候,计算方法是(n - 1) & hash,n为数组长度也就是初始容量 ,这是因为“取模”运算的消耗还是比较大的,那么如何保证(n - 1) & hash和hash%n的结果相同呢,当n为2的指数次幂时,会满足一个公式:(n - 1) & hash =
阅读全文
摘要:前序: public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res=new ArrayList<Integer>(); if (root==null) { return res; } Stack<TreeNode>
阅读全文
摘要:class Solution { public int[] searchRange(int[] nums, int target) { int[] res=new int[2]; res[0]=findleft(nums,target); res[1]=findright(nums,target);
阅读全文

浙公网安备 33010602011771号