面试真经(运维工程师)

1.熟悉的排序算法有哪些,它们的时间空间复杂度如何?

排序算法主要分为内部排序外部排序内部排序指的是数据记录在内存中进行排序,而外部排序则适用于排序的数据量很大,一次不能容纳全部排序记录的情况,需要在排序过程中访问外存。

常见的内部排序算法包括插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

  1. 插入排序:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序是稳定排序。
  2. 希尔排序:是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。
  3. 选择排序:在每一趟从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序是不稳定排序。
  4. 冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有再需要交换,也就是说该元素列已经排序完成。冒泡排序是稳定排序。
  5. 归并排序:是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。
  6. 快速排序:是由冒泡排序改进而来的。在冒泡排序过程中,只对相邻的两个元素进行比较,因此每次交换两个相邻的元素时只能消除一个逆序。快速排序方法中的一次交换可能消除多个逆序,从而大大加快排序的速度。快速排序是不稳定排序。
  7. 堆排序:是利用堆这种数据结构而设计的一种排序算法。堆排序是一种选择排序,它的最坏、最好、平均时间复杂度均为O(nlogn),它也是不稳定排序。
  8. 基数排序:按照低位先排序,然后收集;再按照高位排序,然后再收集;以此类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。基数排序是稳定排序。

2. 谈谈关于SHELL脚本三剑客?

  1. grep

    • 功能:grep是一个强大的文本搜索工具,它使用正则表达式搜索文本,并将匹配的行打印出来。
    • 应用场景:grep常用于在文件中查找包含特定模式的行,例如查找包含某个关键词的日志文件、配置文件等。
    • 示例grep 'error' logfile.txt 会在logfile.txt中查找包含“error”的行并打印出来。
  2. awk

    • 功能:awk是一个强大的文本分析工具,它不仅可以像grep一样进行模式匹配和文本搜索,还可以对匹配到的行进行复杂的文本处理和数据提取。awk支持使用变量、条件语句、循环等编程结构,使其功能更加强大和灵活。
    • 应用场景:awk常用于数据分析和报表生成,例如从日志文件中提取特定字段的数据、统计某个字段的出现次数等。
    • 示例awk '{print $1}' data.txt 会打印data.txt文件中的第一列数据。
  3. sed

    • 功能:sed是一个流编辑器,用于对输入流(或文件)进行基本的文本转换。它可以执行删除、替换、插入等操作,并支持使用正则表达式进行模式匹配。
    • 应用场景:sed常用于文本替换和修改,例如批量替换文件中的某个字符串、删除文件中的空行等。
    • 示例sed 's/old/new/g' file.txt 会将file.txt文件中的所有“old”替换为“new”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于VMware Workstation Pro无法与Windows互相进行复制粘贴的解决方案

说明:要实现Windows在wmware虚拟机上实现复制粘贴需要在虚拟机上下载 VMware Tools 工具。 1.查看虚拟机是否下载了VMware Tools工具。(下载了vMware Tools 会变成灰色的) 2.要是成功安装的话,你在去改一下这里。 设置完到这里理…

GOF23种设计模式

GOF(Gang of Four)设计模式是指《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)这本书中介绍的23种经典设计模式。这些设计模式被分为三大类:创建…

【面试题】HashMap为什么可以插入null而Hashtable就不可以(源码分析)

首先hashmap可以插入null值,但是hashtable和hashcurrentHashmap是不支持的;这是因为在 hashmap对插入key为null进行了特殊处理,当插入的值为null的时候会将哈希值设置为0 但是hashtable会直接抛出异常: 并且hashmap是线程不…

笔记:Mysql 主从搭建

主库 创建用户并授权 create user slave identified with mysql_native_password by 123456 GRANT REPLICATION SLAVE ON *.* to slave%; FLUSH PRIVILEGES;主库配置文件 /etc/my.cnf #日志路径及文件名,目录要是mysql有权限写入 log-bin/var/lib/mysql/binlog …

什么是索引及其优缺点

1.1 什么是索引 索引是数据库中用于提高检索性能的排好序的数据结构。它类似于书籍的目录,通过建立特定的数据结构将某个列或多个列的值与它们在数据库中的行关联起来,以加快查询速度。 1.2 索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引…

IT廉连看——职场经验——简历里:兴趣爱好怎么写?

你可能觉得,这有啥可讲的嘛?别小看它。一个经验丰富的面试官,能从这个环节一窥你的真实个性和能力。 遗憾的是,大部分人都是随便填的,比如万年不变的读书、看电影之类,这其实浪费了一次强化能力优势的机会…

流畅的 Python 第二版(GPT 重译)(七)

第十三章:接口、协议和 ABCs 针对接口编程,而不是实现。 Gamma、Helm、Johnson、Vlissides,《面向对象设计的第一原则》 面向对象编程关乎接口。在 Python 中理解类型的最佳方法是了解它提供的方法——即其接口——如 “类型由支持的操作定义…

openssl3.2 - exp - openssl speed test

文章目录 openssl3.2 - exp - openssl speed test概述笔记表面上能列出的算法集合没列出的算法, 有的也支持不支持的算法的例子直接提示算法不支持算法的属性找不到到底哪些算法才是可以测试的算法?那看看哪些算法是支持的?包含支持的算法的名称数组在算法失败的提示处, 将支…

【一起学Rust | 基础篇】rust线程与并发

文章目录 前言一、创建线程二、mpsc多生产者单消费者模型1.创建一个简单的模型2.分批发送数据3. 使用clone来产生多个生产者 三、共享状态:互斥锁1. 创建一个简单的锁2. 使用互斥锁解决引用问题 前言 并发编程(Concurrent programming)&#…

【oss】阿里云oss服务器模拟

文章目录 1 测试服务器搭建2 go sdk demo编写2.1 本地文件上传至oss2.2 oss文件下载至本地 3 Reference 1 测试服务器搭建 ruby环境 sudo apt-get update sudo apt-get install ruby ruby --version依赖 sudo gem install thor builder拉取项目 https://github.com/aliyun/o…

未来已来?国内10家AI大模型盘点(附体验网址)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、阿里云——通义千问2、科大讯飞——星火大模…

Unity类银河恶魔城学习记录11-3 p105 Inventory UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI_itemSlot.cs using System.Collections; using System.Collections.Gen…

C语言打印当前时间

#include <time.h> void print_current_time(char* func_name) { // 获取当前的时间 time_t current_time; time(&current_time); // 将时间转换为本地时间格式 struct tm *local_time localtime(&current_time); // 打印当前的时间 …

从初学者到专家:Java的Lambda表达式完整指南

一.Lambda的概念 概念&#xff1a;Lambda表达式是Java 8引入的一项重要功能&#xff0c;它允许我们以更简洁和灵活的方式编写代码。可以把Lambda表达式看作是一种更方便的匿名函数&#xff0c;可以像数据一样传递和使用。 使用Lambda表达式可以让我们写出更短、更易读的代码。…

Linux:ssh多台设备快速访问

目录 一、背景二、技巧1&#xff09;技巧一&#xff1a;“跳过”中间堡垒机2&#xff09;技巧二&#xff1a;反向访问3&#xff09;技巧三&#xff1a;端口转发4&#xff09;技巧四&#xff1a;命令后台运行 一、背景 由于网络或安全的原因&#xff0c;需要通过跳转机&#xf…

C++ —— 内存管理

目录 1. C内存分布 2. C 内存管理方式 2.1 new 和 delete 操作内置类型 2.2 new 和 delete 操作自定义类型 3. operator new与operator delete函数 4. new和delete的实现原理 5. malloc/free 和 new/delete 的区别 1. C内存分布 首先看一段代码&#xff1a; int globalV…

分布式训练遇到问题:NCCL通信相关问题

常见问题: torchrun前面加NCCL_DEBUG=INFO可以查看相关nccl相关错误日志 NCCL_DEBUG=INFO torchrun --nnodes=2 --nproc_per_node=1 --node_rank=0 --master_addr="10.***0.

用Python的turtle库绘制皮卡丘

turtle库的简介 turtle(海龟)库是turtle绘图体系的python实现&#xff0c;turtle库是一种标准库&#xff0c;是python自带的。 turtle(海龟)是一种真实的存在&#xff0c;有一个海龟在窗口的正中心&#xff0c;在画布上游走&#xff0c;走过的轨迹形成了绘制的图形&#xff0…

进阶二叉树

目录 二叉树 二叉搜索树 二叉搜索树的定义 二叉搜索树的操作 哈夫曼树 哈夫曼树的定义 哈夫曼树的构造 哈夫曼树的性质 平衡二叉树 平衡二叉树的定义&#xff1a; 平衡二叉树的插入调整 1.LL插入/LL旋转 2.RR插入/RR旋转 3.LR插入/LR旋转 4.RL插入/RL旋转 二叉树…

仿牛客项目Day10——统一异常处理、记录日志

统一异常处理 在controller里创建advice包&#xff0c;创建ExceptionAdvice类 这个注解括号里面是指只扫描被Controller标注的bean 请求request、响应response、异常exception 普通请求和异步请求的区别在于传的是json还是html吗&#xff1f; 统一记录日志 面向切面编程&…