10.09面试题目记录
艾融软件 - 线上面试题
排序算法的时间复杂度
O(n^2):冒泡,选择,插入
O(logn):折半插入排序
O(nlogn):希尔,归并,快速,堆
O(n+k):桶,计数,基数
(K表示桶的个数)
聚合函数
什么是聚合函数? 聚合函数作用于一组数据,并对一组数据返回一个值。
聚合函数:AVG() SUM() MAX() MIN() COUNT()
相关知识点
排序算法的稳定性
在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
稳定的排序:冒泡排序、直接插入排序、折半插入排序、归并排序
不稳定的排序:堆排序、快速排序、希尔排序、直接选择排序
排序算法的时间复杂度
1)一重循环的时间复杂度为O(n),两重循环的时间复杂度为O(n^2), 三重循环的时间复杂度为 O(n^3),依次类推;
2)二分的时间复杂度为O(logn);
3)一个循环里套一个二分的时间复杂度为O(nlogn)。

排序算法的思想
- 冒泡排序:需要进行n-1轮排序,第i轮排序中将从第0个元素到第n-i-1个元素进行两两比较将该轮排序中的最大值一步一步移动都最后的位置。
- 插入排序: 先假定序列中第0个元素是有序的,从序列中第1个元素开始遍历,将遍历取出的元素与其前面已经排好序的元素进行比较将其插入到有序序列中的合适位置。
- 快速排序:先从序列中挑出第一个元素作为后期比较的基准。将所有比基准小的元素摆放在基准的左边,所有比基准大的元素摆放在基准的右边,所有和基准相同的元素摆放在基准的任一边。在这个分区结束之后,该基准就处于序列的中间位置。递归地把左分区的元素和右分区的元素再进行排序。
- 选择排序:就是不断地从未排序的元素中选择最大(或最小)的元素放入已排好序的元素集合中,直到未排序中仅剩一个元素为止,一般假定第一个元素是最小值
- 希尔排序:先让数组中任意间隔为 h 的元素有序,刚开始 h 的大小可以是 h = n / 2,接着让 h = n / 4,让 h 一直缩小,当 h = 1 时,也就是此时数组中任意间隔为1的元素有序,此时的数组就是有序的了
- 归并排序:将一个大的无序数组有序,我们可以把大的数组分成两个,然后对这两个数组分别进行排序,之后在把这两个数组合并成一个有序的数组
- 堆排序:把堆顶的元素与最后一个元素交换,交换之后破坏了堆的特性,我们再把堆中剩余的元素再次构成一个大顶堆,然后再把堆顶元素与最后第二个元素交换….如此往复下去,等到剩余的元素只有一个的时候,此时的数组就是有序的了
- 基数排序:先以个位数的大小来对数据进行排序,接着以十位数的大小来多数进行排序,接着以百位数的大小进行排序
- 计数排序:就是把数组元素作为数组的下标,然后用一个临时数组统计该元素出现的次数,例如 temp[i] = m, 表示元素 i 一共出现了 m 次。最后再把临时数组统计的数据从小到大汇总起来,此时汇总起来是数据是有序的。
- 桶排序:把最大值和最小值之间的数进行瓜分,例如分成 10 个区间,10个区间对应10个桶,我们把各元素放到对应区间的桶中去,再对每个桶中的数进行排序,最后将桶进行汇总排序。
相关文章:
10.09面试题目记录
艾融软件 - 线上面试题 排序算法的时间复杂度 O(n^2):冒泡,选择,插入 O(logn):折半插入排序 O(nlogn):希尔,归并,快速,堆 O(nk):桶,…...
14-29 剑和诗人3 – 利用知识图谱增强 LLM 推理能力
知识图谱提供了一种结构化的方式来表示现实世界的事实及其关系。通过将知识图谱整合到大型语言模型中,我们可以增强它们的事实知识和推理能力。让我们探索如何实现这一点。 知识图谱构建 在利用知识图谱进行语言模型增强之前,我们需要从可靠的来源构建…...
【代码大全2 选读】看看骨灰级高手消灭 if-else 逻辑的瑞士军刀长啥样
文章目录 1 【写在前面】2 【心法】这把瑞士军刀长啥样3 【示例1】确定某个月份的天数(Days-in-Month Example)4 【示例2】确定保险费率(Insurance Rates Example)5 【示例3】灵活的消息格式(Flexible-Message-Format …...
深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)
6,dropout 6,1 线性分类器中的正则化 在线性分类器中,我们提到过正则化,其目的就是为了防止过度拟合。例如,当我们要用一条curve去拟合一些散点的数据时,常常是不希望训练出来的curve过所有的点,…...
【C++】 解决 C++ 语言报错:Undefined Reference
文章目录 引言 未定义引用(Undefined Reference)是 C 编程中常见的错误之一,通常在链接阶段出现。当编译器无法找到函数或变量的定义时,就会引发未定义引用错误。这种错误会阻止生成可执行文件,影响程序的正常构建。本…...
【博士每天一篇文献-算法】Adult neurogenesis acts as a neural regularizer
阅读时间:2023-12-20 1 介绍 年份:2022 作者:Lina M. Tran,Adam Santoro,谷歌DeepMind 期刊: Proceedings of the National Academy of Sciences 引用量:13 代码:https://github.c…...
在Spring Boot项目中引入本地JAR包的步骤和配置
在Spring Boot项目中,有时需要引入本地JAR包以便重用已有的代码库或者第三方库。本文将详细介绍如何在Spring Boot项目中引入本地JAR包的步骤和配置,并提供相应的代码示例。 1. 为什么需要本地JAR包 在开发过程中,可能会遇到以下情况需要使…...
Android Studio中使用命令行gradle查看签名信息
Android Studio中使用命令行gradle查看签名信息: 使用 Gradle 插件生成签名报告 打开 Android Studio 的 Terminal。 运行以下命令:./gradlew signingReport 将生成一个签名报告,其中包含 MD5、SHA1 和 SHA-256 的信息。 如果失败…...
昇思25天学习打卡营第5天 | 神经网络构建
1. 神经网络构建 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也是网络的基本单元。一个神经网络模型表示为一个Cell,它由不同…...
Web缓存—Nginx和CDN应用
目录 一、代理的工作机制 二、概念 三、作用 四、常用的代理服务器 二.Nginx缓存代理服务器部署 1.在三台服务器上部署nginx 此处yum安装 2.准备测试界面 三、CDN概念及作用 1.CDN的工作过程 一、代理的工作机制 (1)代替客户机向网站请求数据…...
Linux 端口
什么是虚拟端口 计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通。 IP地址相当于小区地址,在小区内可以有许多用户(程序)&…...
菜鸡的原地踏步史02(◐‿◑)
每日一念 改掉自己想到哪写哪的坏习惯 二叉树 二叉树的中序遍历 class Solution {/**中序遍历左 - 中 - 右*/private List<Integer> res new ArrayList<>();public List<Integer> inorderTraversal(TreeNode root) {if(root null) {return res;}tranve…...
实现Java应用的数据加密与解密技术
实现Java应用的数据加密与解密技术 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 数据加密与解密的重要性 数据安全是当今互联网应用开发中的重要问题之…...
赛博解压板
目录 开头程序程序的流程图程序的解压效果(暂无,但可以运行一下上面的代码)结尾 开头 大家好,我叫这是我58。今天,我们要看关于赛博解压板的一些东西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #define ROW 6//ROW表示行数,可…...
微信小程序常用的事件
1.点击事件 WXML 中绑定点击事件: <!-- index.wxml --> <button bindtap"handleTap">点击我</button> 对应的 JS 文件中编写点击事件处理函数: // index.js Page({handleTap: function() {console.log(按钮被点击了);} }…...
js时间转成xx前
// 时间戳转多少分钟之前 export default function getDateDiff(dateTimeStamp) {// console.log(dateTimeStamp,dateTimeStamp)// 时间字符串转时间戳var timestamp new Date(dateTimeStamp).getTime();var minute 1000 * 60;var hour minute * 60;var day hour * 24;var …...
iOS 锁总结(cc)
iOS中atomic和synchrosize锁的本质是什么? 在iOS中,atomic和@synchronized锁的本质涉及底层的多线程同步机制。以下是关于这两者本质的详细解释: atomic 定义与用途: atomic是Objective-C属性修饰符的一种,用于指示属性的存取方法是线程安全的。当一个属性被声明为ato…...
【CSAPP】-binarybomb实验
目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果(可贴图) 操作异常问题与解决方案 实验总结 实验目的与要求 1. 增强学生对于程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。 2. 掌握使用gdb调试器…...
SpringBoot实战:轻松实现XSS攻击防御(注解和过滤器)
文章目录 引言一、XSS攻击概述1.1 XSS攻击的定义1.2 XSS攻击的类型1.3 XSS攻击的攻击原理及示例 二、Spring Boot中的XSS防御手段2.1 使用注解进行XSS防御2.1.1 引入相关依赖2.1.2 使用XSS注解进行参数校验2.1.3 实现自定义注解处理器2.1.4 使用注解 2.2 使用过滤器进行XSS防御…...
如何改善提示词,让 GPT-4 更高效准确地把视频内容整体转换成文章?
(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 让我们来讨论一下大语言模型应用中的一个重要原则 ——「欲速则不达」。 作为一个自认为懒惰的人,我一直有一个愿望:完成视频制作…...
程序员的生存法则:适应与创新并重
程序员的生存法则:适应与创新并重 关键词:程序员、生存法则、适应、创新、技术发展 摘要:本文围绕程序员的生存法则展开,着重探讨适应与创新并重的重要性。在快速发展的信息技术领域,程序员既需要适应不断变化的技术环境、市场需求和行业规范,又要具备创新能力,以推动技…...
零基础部署Ostrakon-VL-8B:用Chainlit前端,轻松实现智能图片分析
零基础部署Ostrakon-VL-8B:用Chainlit前端,轻松实现智能图片分析 1. 为什么你需要Ostrakon-VL-8B? 想象一下,你经营着一家连锁便利店,每天需要检查几十家门店的商品陈列、价格标签和卫生状况。传统方法是让店长拍照发…...
Kotaemon在教育培训中的应用:如何构建可信赖的学科答疑助手?
Kotaemon在教育培训中的应用:如何构建可信赖的学科答疑助手? 1. 教育场景中的AI答疑痛点 想象这样一个场景:晚自习教室里,一个学生正为生物作业发愁。他在手机上输入:"光合作用的暗反应发生在叶绿体的哪个部位&…...
保姆级教程:用唯创知音WT588F02B语音芯片,从录音到烧录完整走一遍
零基础实战:WT588F02B语音芯片从录音到播放全流程解析 第一次接触语音芯片开发时,我被WT588F02B的易用性惊艳到了——不需要复杂的编程,只需准备好音频文件就能实现语音播放功能。但实际操作中,从录音到最终烧录成功,每…...
HSnet实战:5分钟搞定Few-Shot Segmentation代码复现(附完整数据集配置指南)
HSnet实战指南:从零实现Few-Shot Segmentation的高效复现路径 在计算机视觉领域,Few-Shot Segmentation(FSS)正成为解决标注数据稀缺问题的关键技术。对于刚接触这个领域的研究者来说,复现顶会论文的代码往往是验证思路…...
CLIP-GmP-ViT-L-14基础教程:ViT-L-14 patch embedding尺寸与分辨率适配
CLIP-GmP-ViT-L-14基础教程:ViT-L-14 patch embedding尺寸与分辨率适配 1. 理解CLIP-GmP-ViT-L-14模型 CLIP-GmP-ViT-L-14是一个经过几何参数化(GmP)微调的CLIP模型,在ImageNet和ObjectNet数据集上能达到约90%的准确率。这个模型继承了CLIP的核心能力&…...
工业设计必看:SolidWorks曲面建模中的NURBS核心原理与7个避坑指南(2024版)
工业设计进阶:SolidWorks曲面建模中的NURBS核心原理与高阶实践(2024版) 在汽车外壳的流线型曲面或消费电子产品的有机形态背后,NURBS(非均匀有理B样条)技术始终是工业设计软件的核心引擎。作为SolidWorks等…...
中文医疗大模型避坑指南:从MedBench评测看5大常见训练误区
中文医疗大模型实战避坑手册:从MedBench看模型训练的5个致命盲区 当ChatGPT掀起通用大模型的热潮时,医疗领域正在经历一场更为严谨的技术革命。不同于开放域的对话生成,医疗大模型的每个输出都可能直接影响临床决策——这要求开发者必须跨越专…...
星穹铁道自动化解决方案:用March7thAssistant释放游戏时间价值
星穹铁道自动化解决方案:用March7thAssistant释放游戏时间价值 【免费下载链接】March7thAssistant 🎉 崩坏:星穹铁道全自动 Honkai Star Rail 🎉 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 副标题&…...
Ubuntu常用的命令
ls -l # 输出当前文件夹下的所有文件的权限大小信息 ls -l 文件名 # 输出当前文件的权限大小信息 du -sh # 查看文件夹下所有文件的大小总和 df -h # 查看当前文件系统各分区的大小 hdparm -Tt /dev/sda1 # 查看分区磁盘的速度 ls -l | grep "^-" | wc -l # 当前目…...
