面试_顺丰


一、自我介绍

个人背景、项目经历、实习经历。


二、Java后台基础

2.1 计算机网络

2.1.1 数据链路层、网络层、传输层各层的作用。

  • 数据链路层:将比特组装成帧和点到点的传递(帧Frame)。
  • 网络层:负责数据包从源到宿的传递和网际互连(包Packet)。
  • 传输层:提供端到端的可靠报文传递和错误恢复(段Segment)。

2.2 算法

2.2.1 两个栈实现队列。

import java.util.Stack;

public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();

    public void push(int node) {
        stack1.push(node);
    }

    public int pop() {
        // 当栈2中为空时,将栈1中所有元素依次压入栈2
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
}

2.2.2 快排(终止条件、时间复杂度)。

快速排序使用分治策略来把一个序列(list)分为两个子序列(sub-lists)。步骤为:

  • 从数列中挑出一个元素,称为”基准”pivot。
  • 重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
  • 递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归到最底部时,数列的大小是零或一,也就是已经排序好了。这个算法一定会结束,因为在每次的迭代中,它至少会把一个元素摆到它最后的位置去。

public static void quickSort(int[] arr, int low, int high) {
    if (arr.length <= 0) {
        return;
    }
    if (low >= high) {
        return;
    }
    int left = low;
    int right = high;

    int temp = arr[left];
    while (left < right) {
        while (left < right && arr[right] >= temp) {
            right--;
        }
        arr[left] = arr[right];
        while (left < right && arr[left] <= temp) {
            left++;
        }
        arr[right] = arr[left];
    }
    arr[left] = temp;
    quickSort(arr, low, left - 1);
    quickSort(arr, left + 1, high);
}
平均时间复杂度最好情况最坏情况空间复杂度
O(nlogn)O(nlogn)O(n2)O(1)

2.2.3 快排最坏情况的优化。

  • 基准数随机:取待排序列中任意一个元素作为基准。
  • 基准数用三数取中:对待排序序列中low、mid、high三个位置上数据进行排序,取他们中间的那个数据作为基准。

三、课程相关

3.1 上学期间印象最深的课程。

实时系统相关。

3.2 实时系统。

实时系统(Real-Time System):
实时系统主要是指系统能否在规定的时间内完成相应的处理逻辑,并得到正确的结果。主要包括:硬实时系统和软实时系统。在软实时系统中,任务可以尽可能快地得到处理,但并不是在精确的时间内完成。在硬实时系统中,任务不仅能够正确完成,而且能够按时完成。大多数实时系统都是软实时和硬实时的综合折中方案。实时应用涵盖比较宽泛,一般地大多数嵌入式系统都是实时的,通过构建的实时系统,一台计算机在用户看来并不是一台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值