计算机基础知识——数据结构与算法(三)(山东省大数据职称考试)
大数据分析应用-初级
第一部分 基础知识
一、大数据法律法规、政策文件、相关标准
二、计算机基础知识
三、信息化基础知识
四、密码学
五、大数据安全
六、数据库系统
七、数据仓库.
第二部分 专业知识
一、大数据技术与应用
二、大数据分析模型
三、数据科学
数据结构与算法
- 大数据分析应用-初级
- 前言
- 一、常用的排序方法与应用
- 练习题目
前言
数据结构与算法
3、掌握常用的排序方法与应用。
一、常用的排序方法与应用
冒泡排序(Bubble Sort)
概念:
它是一种比较简单的排序算法。通过反复比较相邻的元素,如果顺序不对则进行交换,每一轮比较都会将当前未排序部分的最大(或最小)元素 “浮” 到最后(或最前)。
描述方法:
从数组的第一个元素开始,依次比较相邻的两个元素。如果前面的元素大于后面的元素,就交换它们的位置。这样一轮比较下来,最大的元素就会 “冒泡” 到数组的末尾。然后对剩下的元素重复这个过程,直到整个数组都有序。
时间复杂度:
最好情况(数组已经有序):时间复杂度为O(n),此时只需要进行一轮比较,没有元素交换。
最坏情况(数组完全逆序):时间复杂度为O(n^2),因为需要进行轮比较,每轮比较的次数逐渐减少,总的比较次数接近n(n-1)/2。
平均情况:时间复杂度为O(n^2)。
空间复杂度:
空间复杂度为O(1),因为只需要几个额外的变量来进行元素交换,是一种原地排序算法。
应用场景:
适用于数据量较小且基本有序的情况。例如,对一个小型班级学生的考试成绩进行初步排序,看看成绩的大致分布情况。
示例代码(Python):
def bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n - i - 1):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]return arr
插入排序(Insertion Sort)
概念:
插入排序的基本思想是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。
描述方法:
把数组分为已排序部分和未排序部分。初始时,已排序部分只有一个元素(通常是数组的第一个元素)。然后从第二个元素开始,将未排序元素逐个插入到已排序部分的合适位置,使得插入后已排序部分仍然有序。
时间复杂度:
最好情况(数组已经有序):时间复杂度为O(n),因为每个元素只需要比较一次就可以确定它的位置。
最坏情况(数组完全逆序):时间复杂度为O(n^2),因为每次插入一个元素都可能需要移动已排序部分的所有元素。
平均情况:时间复杂度为O(n^2)。
空间复杂度:
空间复杂度为O(1),它也是一种原地排序算法。
应用场景:
适用于数据量较小,且对部分有序的数据排序效率较高。比如对一个基本有序的通讯录按照姓名排序,新添加了少量联系人后的重新排序。
示例代码(Python):
def insertion_sort(arr):for i in range(1, len(arr)):current_value = arr[i]position = iwhile position > 0 and arr[position - 1] > current_value:arr[position] = arr[position - 1]position -= 1arr[position] = current_valuereturn arr
选择排序(Selection Sort)
概念:
选择排序的基本思想是在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
描述方法:
首先在未排序的数组中找到最小(或最大)的元素,将其与数组的第一个元素交换位置。然后在剩下的未排序元素中再找到最小(或最大)的元素,将其与数组的第二个元素交换位置,以此类推,直到整个数组都有序。
时间复杂度:
最好情况、最坏情况和平均情况的时间复杂度都是O(n^2),因为无论数组初始状态如何,都需要进行n(n-1)/2次比较。
空间复杂度:
空间复杂度为O(1),是原地排序算法。
应用场景:
简单直观,对数据量较小的情况比较适用。例如对一个小型活动的参与人员按照年龄从小到大排序,人数不多时可以快速完成排序。
示例代码(Python):
def selection_sort(arr):for i in range(len(arr)):min_idx = ifor j in range(i + 1, len(arr)):if arr[j] < arr[min_idx]:min_idx = jarr[i], arr[min_idx] = arr[min_idx], arr[i]return arr
快速排序(Quick Sort)
概念:
快速排序是一种分治的排序算法。它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。
描述方法:
选择一个基准元素(通常是数组的第一个元素),通过一趟排序将数组分为两部分,左边部分的元素都小于等于基准元素,右边部分的元素都大于等于基准元素。然后递归地对左右两部分进行排序,直到整个数组都有序。
时间复杂度:
最好情况(每次划分都能将数组分为两个大小相近的子数组):时间复杂度为O(nlogn)。
最坏情况(数组已经有序或逆序,每次划分得到的子数组一个为空,一个为 n - 1 个元素):时间复杂度为O(n^2)。
平均情况:时间复杂度为O(nlogn)。
空间复杂度:
最好情况:空间复杂度为O(nlogn),因为递归调用栈的深度为O(nlogn)。
最坏情况:空间复杂度为O(n),当递归需要的栈空间达到最大值时。
应用场景:
是一种高效的排序算法,广泛应用于各种需要排序的场景,尤其是数据量较大的情况。例如对一个大型文件中的数据进行排序,或者对大量的数据库记录排序。
示例代码(Python):
def quick_sort(arr):if len(arr) <= 1:return arrpivot = arr[0]left = [x for x in arr[1:] if x <= pivot]right = [x for x in arr[1:] if x > pivot]return quick_sort(left) + [pivot] + quick_sort(right)
归并排序(Merge Sort)
概念:
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide - and - Conquer)的一个非常典型的应用。
描述方法:
将数组分成两个子数组,分别对这两个子数组进行排序,然后将排好序的子数组合并成一个最终的有序数组。递归地进行划分和合并操作,直到整个数组都有序。
时间复杂度:
最好情况、最坏情况和平均情况的时间复杂度都是O(nlogn),因为每次划分的时间复杂度为O(nlogn),每次合并的时间复杂度为O(n)。
空间复杂度:
空间复杂度为O(n),因为在合并过程中需要额外的空间来存储临时数组。
应用场景:
适用于对稳定性要求较高(相同元素的相对顺序在排序前后不变)且数据量较大的排序任务。例如在一些数据库系统中对数据进行排序,同时要保证数据的稳定性。
示例代码(Python):
def merge_sort(arr):if len(arr) <= 1:return arrmid = len(arr) // 2left = merge_sort(arr[:mid])right = merge_sort(arr[mid:])return merge(left, right)def merge(left, right):merged = []i = j = 0while i < len(left) and j < len(right):if left[i] <= right[j]:merged.append(left[i])i += 1else:merged.append(right[j])j += 1merged.extend(left[i:])merged.extend(right[j:])return merged
堆排序(Heap Sort)
概念:
堆排序是利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,分为大顶堆(每个节点的值都大于或等于其子节点的值)和小顶堆(每个节点的值都小于或等于其子节点的值)。
描述方法:
首先将数组构建成一个堆(大顶堆或小顶堆),然后将堆顶元素与堆的最后一个元素交换位置,此时最大(或最小)元素就放到了正确的位置。接着对剩下的元素重新调整为堆,重复这个过程,直到整个数组都有序。
时间复杂度:
时间复杂度为O(nlogn),无论是最好情况、最坏情况还是平均情况。
空间复杂度:
空间复杂度为O(1),是一种原地排序算法。
应用场景:
适合在对空间复杂度要求比较严格,且需要稳定排序性能的场景。例如在一些嵌入式系统或者对内存使用比较敏感的环境中进行排序。
示例代码(Python):
def heap_sort(arr):n = len(arr)# 构建最大堆for i in range(n // 2 - 1, -1, -1):heapify(arr, n, i)# 逐个提取元素for i in range(n - 1, 0, -1):arr[0], arr[i] = arr[i], arr[0]heapify(arr, i, 0)return arrdef heapify(arr, n, i):largest = il = 2 * i + 1r = 2 * i + 2if l < n and arr[l] > arr[largest]:largest = lif r < n and arr[r] > arr[largest]:largest = rif largest!= i:arr[i], arr[largest] = arr[largest], arr[i]heapify(arr, n, largest)
练习题目
单选题
(1)下列排序算法中,时间复杂度在平均情况下为O(n^2)的是( )
A. 快速排序
B. 插入排序
C. 归并排序
D. 堆排序
答案:B
解析:插入排序的平均时间复杂度是O(n^2)。快速排序平均时间复杂度是O(nlogn);归并排序时间复杂度是O(nlogn);堆排序时间复杂度是O(nlogn)。
(2)以下哪种排序算法是稳定的排序算法( )
A. 快速排序
B. 选择排序
C. 归并排序
D. 堆排序
答案:C
解析:归并排序是稳定的排序算法,它在合并过程中,如果两个元素相等,会按照原来的顺序将它们放入合并后的数组中。快速排序、选择排序和堆排序都是不稳定的排序算法。
(3)在最好情况下,时间复杂度为O(n)的排序算法是( )
A. 冒泡排序
B. 插入排序
C. 选择排序
D. 快速排序
答案:B
解析:插入排序在最好情况下(数组已经有序),每次只需要比较一次就可以确定元素位置,时间复杂度为O(n)。冒泡排序最好情况时间复杂度是O(n),但需要一轮比较;选择排序最好情况时间复杂度是O(n^2);快速排序最好情况时间复杂度是O(nlogn)。
(4)下列排序算法中,空间复杂度为O(1)的是( )
A. 归并排序
B. 快速排序(最好情况)
C. 插入排序
D. 堆排序
答案:C
解析:插入排序空间复杂度为O(1),是原地排序算法。归并排序空间复杂度为O(n);快速排序最好情况空间复杂度为O(logn),最坏情况是O(n);堆排序空间复杂度为O(1)。
(5)如果要对一个基本有序的数组进行排序,哪种排序算法效率最高( )
A. 冒泡排序
B. 选择排序
C. 插入排序
D. 快速排序
答案:C
解析:插入排序对于基本有序的数组效率最高,因为它只需要少量的比较和移动操作。冒泡排序也比较适合基本有序数组,但效率不如插入排序;选择排序效率不受数组初始顺序影响,效率较低;快速排序在基本有序数组上可能退化为O(n^2)复杂度。
多选题
(1)以下哪些排序算法的时间复杂度在最坏情况下是( )
A. 冒泡排序
B. 插入排序
C. 选择排序
D. 快速排序
答案:ABCD
解析:冒泡排序、插入排序、选择排序最坏情况时间复杂度本身就是O(n^2);快速排序在最坏情况(如数组已经有序或逆序)下时间复杂度也会退化为O(n^2)。
(2)属于不稳定排序算法的有( )
A. 快速排序
B. 选择排序
C. 堆排序
D. 希尔排序(一种改进的插入排序)
答案:ABCD
解析:快速排序在划分过程中可能会改变相同元素的相对顺序;选择排序每次选择最小(大)元素与前面元素交换,可能会打乱相同元素顺序;堆排序在调整堆的过程中会改变相同元素顺序;希尔排序由于分组插入排序的方式也可能导致相同元素顺序改变。
(3)以下排序算法中,是基于比较的排序算法有( )
A. 冒泡排序
B. 计数排序
C. 快速排序
D. 归并排序
答案:ACD
解析:冒泡排序、快速排序和归并排序都是通过比较元素的大小来进行排序的。计数排序不属于基于比较的排序算法,它是一种非比较排序算法,是利用元素的值作为数组的下标来统计元素出现的次数,从而实现排序。
(4)在数据量较大的情况下,通常可以选择以下哪些排序算法来提高效率( )
A. 快速排序
B. 归并排序
C. 堆排序
D. 插入排序
答案:ABC
解析:快速排序、归并排序和堆排序在数据量较大时,平均时间复杂度为O(nlogn),效率较高。插入排序时间复杂度为O(n^2),在数据量较大时效率较低。
(5)下列关于排序算法空间复杂度的说法正确的是( )
A. 原地排序算法空间复杂度为O(1)
B. 归并排序空间复杂度与数组长度有关
C. 快速排序空间复杂度在最好情况下为O(logn)
D. 堆排序是原地排序算法,空间复杂度为O(1)
答案:ABCD
解析:原地排序算法是指在排序过程中只需要常数级别的额外空间,空间复杂度为O(1)。归并排序在合并过程中需要额外的数组来存储临时数据,空间复杂度为O(n),与数组长度有关。快速排序在最好情况下,递归调用栈的深度为O(logn),空间复杂度为O(logn)。堆排序是原地排序算法,空间复杂度为O(1)。
判断题
(1)快速排序一定比冒泡排序快。( )
答案:错误
解析:快速排序的平均时间复杂度是O(nlogn),冒泡排序平均时间复杂度是O(n^2),但在最坏情况下(如数组已经有序),快速排序时间复杂度会退化为O(n^2),而冒泡排序最好情况时间复杂度是O(n),所以不能绝对地说快速排序一定比冒泡排序快。
(2)所有时间复杂度为O(nlogn)的排序算法都是稳定的。( )
答案:错误
解析:例如堆排序时间复杂度是O(nlogn),但它是不稳定的排序算法,而归并排序时间复杂度也是O(nlogn),它是稳定的排序算法,所以不是所有时间复杂度为的排序算法都是稳定的。
(3)插入排序在任何情况下都比选择排序效率高。( )
答案:错误
解析:插入排序在数组基本有序的情况下效率较高,时间复杂度接近O(n),但在数组完全无序的情况下,插入排序和选择排序的时间复杂度都是O(n^2),所以不能说插入排序在任何情况下都比选择排序效率高。
(4)归并排序的空间复杂度是O(logn)。( )
答案:错误
解析:归并排序的空间复杂度是O(n),因为在合并过程中需要额外的空间来存储临时数组。
(5)堆排序是一种基于比较的排序算法。( )
答案:正确
解析:堆排序在构建堆和调整堆的过程中,需要比较节点与其子节点(或父节点)的大小关系,所以它是一种基于比较的排序算法。
相关文章:
计算机基础知识——数据结构与算法(三)(山东省大数据职称考试)
大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 数据结构与算法…...
【Unity功能集】TextureShop纹理工坊(三)图层(下)
项目源码:在终章发布 索引 图层渲染绘画区域图层Shader 编辑器编辑模式新建图层设置当前图层上、下移动图层删除图层图层快照 图层 在PS中,图层的概念贯穿始终(了解PS图层),他可以称作PS最基础也是最强大的特性之一。…...
基于 SSM 框架 Vue 电脑测评系统:引领电脑评测新方向
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
Android笔记【19】
具体示例 run: val result someObject.run {// 这里可以使用 thisthis.someMethod() }let: val result someObject?.let {// 这里使用 itit.someMethod() }with: val result with(someObject) {// 这里使用 thissomeMethod() }apply: val obj SomeClass().apply {// 这里使…...
Redis 中 IntSet 底层数据结构
IntSet 底层数据结构 序言: 像字符串 SDS 只是保存了一个变量的值,但是像 Redis 中也是需要保存一些集合元素的,这里就介绍一下其中一种集合 IntSet,由于是 Set 所以也有 Set 的一些特性,不过也多加了一些特性: ● 唯…...
自然语言处理:我的学习心得与笔记
Pytorch 1.Pytorch基本语法 1.1 认识Pytorch 1.2 Pytorch中的autograd 2.Pytorch初步应用 2.1 使用Pytorch构建一个神经网络 2.2 使用Pytorch构建一个分类器 小节总结 学习了什么是Pytorch. 。Pytorch是一个基于Numpy的科学计算包,作为Numpy的替代者,向用户提供使用GPU强大…...
Altair: 轻松创建交互式数据可视化
Altair: 轻松创建交互式数据可视化 Altair 是一个基于 Vega-Lite 的 Python 数据可视化库,它旨在简化数据可视化的创建过程,尤其适用于统计图表的生成。Altair 强调声明式编码方式,通过简单的语法,用户能够快速创建复杂的交互式图…...
【NLP】序列到序列(seq2seq)建模工具fairseq使用详解
文章目录 一、fairseq简介二、安装方式2.1 pip安装2.2 源码安装 三、fairseq命令工具3.1 fairseq-preprocess3.2 fairseq-train3.3 fairseq-generate3.4 fairseq-interactivate3.5 fairseq-score3.6 fairseq-eval-lm 4. 常见报错报错1 参考资料 一、fairseq简介 fairseq 是 Fa…...
[极客大挑战 2019]HardSQL 1
[极客大挑战 2019]HardSQL 1 打开实例,发现是个登陆页面,查看源代码,发现又是GET提交check.php 万能密码尝试 不太行,怀疑字段或者空格被过滤,尝试闭合不加其他东西 确认空格、union、and等都被过滤了,尝试…...
天空分割代码
目录 依赖项: 分割源代码: 依赖项: groundingdino Grounded-Segment-Anything 分割源代码: generate_sky_mask.py import os, syssys.path.append(os.getcwd()) # Change to your folder here sys.path.append(Grounded-Segment-Anything)import argparse import os…...
Leetcode 三角形最小路径和
算法思想与代码详解 这段代码采用的是**动态规划(Dynamic Programming)**的思想,用来解决“120. 三角形最小路径和”问题。动态规划通过将问题分解成更小的子问题,并通过保存子问题的解来避免重复计算,从而提高效率。…...
[Unity]Unity跨平台开发之Android入门
安卓环境配置 安装依赖项 推荐使用Unity Hub进行安装,安装时勾选Android Build Support、Android SDK & NDK Tools、OpenJDK。或者指定已安装的依赖项。(注意:指定的依赖项需要是从UnityHub安装的。比如之前安装Unity2022时勾选了上述依…...
搭建Flume
title: 搭建Flume date: 2024-11-30 23:59:00 categories: - 服务器 tags: - Flume - 大数据搭建Flume 本次实验环境:Centos 7-2009、JDK 8、Flume-1.11.0 开始安装 1. 下载安装文件到服务器 # 使用wget命令下载flume文件(二选一) wget …...
【从零开始入门unity游戏开发之——C#篇10】循环结构——while、do-while、for、foreach的使用
文章目录 一、while 循环1、语法:2、示例: 二、 do-while 循环1、语法:2、示例: 三、for 循环1、语法:2、示例: 四、foreach 循环1、语法:2、示例: 五、总结对比六、注意事项七、使用…...
flask flask-socketio创建一个网页聊天应用
应用所需环境: python 3.11.11 其他 只需要通过这个命令即可 pip install flask3.1.0 Flask-SocketIO5.4.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 最好是用conda创建一个新的虚拟环境来验证 完整的pip list如下 Package Version ----…...
MVCC了解
MVCC(多版本并发控制)学习指南及代码示例 一、学习MVCC前先了解什么 1. MVCC的定义和作用 MVCC是一种并发控制机制,用于解决并发事务访问数据库时可能出现的问题,如脏读、不可重复读和幻读。它通过为每个数据行维护多个版本来实…...
LabVIEW随机扫描成像系统
利用LabVIEW开发了一套随机扫描成像系统,利用硬件时钟实现声光偏转器(AOD)的频率控制与信号采集之间的高速时间同步。系统利用了高精度的时钟同步技术,确保了成像精度和重复性,从而有效提高了成像速度和质量。 项目背景…...
系统移植——Linux 内核顶层 Makefile 详解
一、概述 Linux Kernel网上下载的版本很多NXP等有自己对应的版本。需要从网上直接下载就可以。 二、Linux内核初次编译 编译内核之前需要先在 ubuntu 上安装 lzop 库 sudo apt-get install lzop 在 Ubuntu 中 新 建 名 为 “ alientek_linux ” 的 文 件夹 , …...
【一文了解】C#重点-委托1
本篇文章来学习一下C#的委托,委托是C#中的一个重要概念,它允许将方法作为参数传递给其他方法。C#中的委托类似于C或C中的函数指针,并且类型安全。 委托 1.委托的定义 委托(delegate)是方法的代理/代表,委托…...
LeetCode hot100-87
https://leetcode.cn/problems/longest-increasing-subsequence/?envTypestudy-plan-v2&envIdtop-100-liked 300. 最长递增子序列 已解答 中等 相关标签 相关企业 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列&a…...
项目26:简易在线论坛 --- 《跟着小王学Python·新手》
项目26:简易在线论坛 — 《跟着小王学Python新手》 《跟着小王学Python》 是一套精心设计的Python学习教程,适合各个层次的学习者。本教程从基础语法入手,逐步深入到高级应用,以实例驱动的方式,帮助学习者逐步掌握Pyth…...
知乎 PB 级别 TiDB 数据库集群管控实践
以下文章来源于知乎技术专栏 ,作者代晓磊 导读 在现代企业中,数据库的运维管理至关重要,特别是面对分布式数据库的复杂性和大规模集群的挑战。作为一款兼容 MySQL 协议的分布式关系型数据库,TiDB 在高可用、高扩展性和强一致性方…...
Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)
一、Intel(R) Iris(R) Xe Graphics安装Anaconda 下载网址:https://repo.anaconda.com/archive/ 双击Anaconda3-2024.10-1-Windows-x86_64,一直下一步,选择安装的路径位置,一直下一步就安装完成了。打开Anaconda PowerShell Promp…...
RK3588 , mpp硬编码rgb, 保存MP4视频文件.
RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBUbuntu x64 架构, 交叉编译aarch64 FFmpeg mppCode Init MppMPP_RET init_mpp...
揭开 Choerodon UI 拖拽功能的神秘面纱
01 引言 系统的交互方式主要由点击、选择等组成。为了提升 HZERO 系统的用户体验、减少部分操作步骤,组件库集成了卓越的拖拽功能,让用户可以更高效流畅的操作系统。 例如:表格支持多行拖拽排序、跨表数据调整、个性化调整列顺序࿱…...
常用网络协议简述
网络协议是计算机网络中规定数据交换格式和交换规则的一套标准。以下是一些常用的网络协议及其简要解释: HTTP(HyperText Transfer Protocol,超文本传输协议) 用于从网络传输超文本数据到本地浏览器的传输协议。基于TCP协议&…...
本地电脑使用命令行上传文件至远程服务器
将本地文件上传到远程服务器,在本地电脑中cmd使用该命令: scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径, ~/en…...
笔记day2
文章目录 1 NavigationDuplivated警告错误2 Home模块组件拆分3 三级联动组件完成4 完成其余静态组件5 POSTMAN测试接口6 axios二次封装6.1 为什么需要进行二次封装axios?6.2 在项目中经常API文件夹【axios】6.3 axios基础不好,可以参考git|NPM关于axios文…...
排序算法(3)——归并排序、计数排序
目录 1. 归并排序 1.1 递归实现 1.2 非递归实现 1.3 归并排序特性总结 2. 计数排序 代码实现 3. 总结 1. 归并排序 基本思想: 归并排序(merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法࿰…...
【5】C#期末复习第5套
1.int a[3][2]{2,4,6,8,10.12};则*(a[1]1)的值是8 指向(a[1]的第二个元素) 再* 2.合并字符串库函数strcat 3.比较字符串库函数strcmp 4.执行结果是x3,y3 int x3,y; int *px&x; y*px; (优先级高于*) 5.*p[5]没…...
jquery虚拟键盘插件jqkeyboard
jqKeyboard是一款jquery虚拟键盘插件。该虚拟键盘插件依赖于jquery ui,通过该插件,可以在页面中生成一个扁平风格的虚拟键盘面板。 在线预览 下载 安装 可以通过npm来安装jqKeyboard虚拟键盘插件。 npm install jq keyboard --save 使用方法 在页面…...
IMX6ULL开发板把屏幕刷黑(黑屏)的程序
承接博文 IMX6ULL开发板基础实验:Framebuffer驱动程序的简单应用实例代码详细分析 很容易写出把屏幕刷黑的程序… Ubuntu中的目录/home/book/mycode下新建目录C0003_draw_lcd_black,然后把把博文中的源码/home/book/mycode/C0002_show_pixel复制到目录C0003_draw_l…...
OpenCV基本图像处理操作(三)——图像轮廓
轮廓 cv2.findContours(img,mode,method) mode:轮廓检索模式 RETR_EXTERNAL :只检索最外面的轮廓;RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中;RETR_CCOMP:检索所有的轮廓,并将他们组…...
C语言学习day24:DLL给程序打上窗口破解补丁
简言 在上一章节我们知道了DLL,编写DLL以及最重要的导出DLL,这一章节我们学习如何给应用打上窗口破解补丁(DLL)。 流程 工具:studyPE 操作: 把要补丁的程序拖入PE中点击导入菜单,导入dll函…...
大模型呼出机器人的应用场景
大模型呼出机器人的应用场景 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 大模型呼出机器人的应用场景十分广泛,涵盖了多个行业和服务领域。以下是对其应用场景的详细归纳: 一、客户…...
el-date-picker筛选时间日期选择范围
el-date-picker 选择时间日期范围-> 昨天 近7天 30天<template><div class"main"><div class"header"><el-form :model"form" label-width"auto"><el-button plain click"setTimeToYesterday&q…...
【Apache Paimon】-- 10 -- Paimon 0.9.0 集成 Hive 3.1.3
参考官方 0.9.0 版本文档:https://paimon.apache.org/docs/0.9/engines/hive/ 1、下载依赖包到 hive lib 下 $ cd $HIVE_HOME/$ mkdir auxlib$ cd auxlib$ wget https://repo.maven.apache.org/maven2/org/apache/paimon/paimon-hive-connector-3.1/0.9.0/paimon-hive-connec…...
vue2如何写一个轮播图
需求描述 写一个轮播图,可以实现如下效果: 页面上展示三个轮播图元素默认状态下,进行自动轮播,循环播放一旦鼠标移入轮播图范围内,并停留在元素a上,则轮播图停止自动播放,同时将元素a放大 核…...
基础库httpx的使用
urllib 库和 requests 库的使用,已经可以爬取绝大多数网站的数据,但对于某些网站依然无能为力。什么情况?这些网站强制使用HTTP/2.0协议访问,这时 urllib 和requests 是无法爬取数据的,因为它们只支持 HTTP/1.1,不支持…...
MYSQL 利用concat函数 生成更新或者插入SQL
有时候需要批量运维一批数据,一条一条写SQL比较麻烦,可以使用下面的方法批量生成select sales_order_number,a.sog_line_id,actual_price,sales_goods_unit_price,b.id,concat(update your_table set actual_price, sales_goods_unit_price, where id,b…...
Backend For Frontend的学习分享
晚上公司开了一个技术分享会,主要内容就是公司的项目架构,会中讲解了项目整体架构是BFF架构,就是在微服务之上多加了一层。 除此之外,还讲解了DDD设计思想,主要用于各个业务中台,如订单中台、用户中台等。…...
KS曲线python实现
目录 实战 实战 # 导入第三方模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt# 自定义绘制ks曲线的函数 def plot_ks(y_test, y_score, positive_flag):# 对y_test重新设置索引y_test.index np.arange(len(y_test))# 构建目标数据集target_dat…...
【GO环境安装】mac系统+GoLand使用
文章目录 下载安装包环境配置GoLandGo Modules 下载安装包 地址:GO下载地址 下载好后直接进行安装: 进入terminal,查看是否安装成功: 环境配置 在文稿下面创建工作目录: 在文稿下新建Go_Works文件夹,在…...
2025年入职/转行网络安全,该如何规划?网络安全职业规划
网络安全是一个日益增长的行业,对于打算进入或转行进入该领域的人来说,制定一个清晰且系统的职业规划非常重要。2025年,网络安全领域将继续发展并面临新的挑战,包括不断变化的技术、法规要求以及日益复杂的威胁环境。以下是一个关…...
linux中 umask 命令
Umask Umask(User File Creation Mode Mask)是Linux系统中的一项命令,用于设定新创建文件和目录的默认权限。 一、umask的作用 Umask通过掩码操作,限制新文件和目录的访问权限。在Linux中,所有的文件和目录都被分配…...
OpenCV函数及其应用
1. 梯度处理的Sobel算子函数 功能 Sobel算子是一种用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导,用于计算图像亮度的空间梯度。 参数 src:输入图像。 dst:输出图像。 ddepth:输出图像的深度。 dxÿ…...
使用ENSP实现NAT(2)
一、NAT的类型 二、静态NAT 1.项目拓扑 2.项目实现 路由器AR1配置: 进入系统视图 sys将路由器命名为AR1 sysname AR1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为192.168.10.254/24 ip address 192.168.10.254 24进…...
欢迎 PaliGemma 2 – 来自 Google 的新视觉语言模型
我们很高兴迎来 Google 全新的视觉语言模型 PaliGemma 2,这是 PaliGemma 的一个新版本。与其前代产品一样,PaliGemma 2 使用强大的SigLIP进行视觉处理,但在文本解码部分升级到了最新的 Gemma 2。 https://hf.co/collections/google/siglip-65…...
C++ List(双向链表)
是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个 信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定 的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中&#…...
pip使用方法
1. 安装包: pip install :安装指定的 Python 包。 pip install :安装特定版本的 Python 包。 pip install -r requirements.txt:从文件中读取依赖列表并安装所有列出的包。 pip install --pre :允许安装预发布或开发版…...