数据库高级 IV

news2025/7/13 16:51:56

数据库高级 IV

二分查找算法

  • 定义

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列
    
    前提要求:
    	1. 线性表必须采用顺序存储结构 --数组满足
    	2. 要求元素实现了排序
    
  • 线性表

    	线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。
    
    	线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)
    
  • 顺序存储结构

    顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,顺序存储结构的主要优点是节省存储空间。结点之间的逻辑关系由存储单元的邻接关系来体现。
    
  • 查找过程

        首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
    

请添加图片描述

  • 练习:
      1. int[]升序/降序排列,对其使用二分查找查找元素
      2. 定义String[],升序/降序,对其使用二分查找算法
      3. 定义Student[],升序/降序,对其使用二分查找算法

排序算法

  • 冒泡排序

  • 选择排序

    • 排序规则

      选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
      
      排序规则解读:从第一位开始,为每一位求应该保存的最小值,除了最后一位
      

请添加图片描述

    • 练习

      1.int[]升序排列
      2.String[]降序排列
      
    • 稳定性

         选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果一个元素比当前元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么交换后稳定性就被破坏了。举个例子,序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中两个5的相对前后顺序就被破坏了,所以选择排序是一个不稳定的排序算法。
         
      稳定性: 排序后相同元素的相对前后位置是否发生改变;若改变,则该算法是不稳定的;若不改变,则该算法是稳定的.
          
      冒泡排序是稳定的排序算法.
      
  • 插入排序

    • 定义

          插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 [1]  。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。
          
      解读:
       思想:将序列分为排好序部分与未排序部分,对未排序部分的元素进行遍历,将遍历到的元素插入到排好序部分适当的位置去,则排好序部分元素数量增1,直到未排序部分的元素数量为0,则所有元素插入完成,即排序完成.
      

请添加图片描述

  • 练习:

      1. 对int[]升序排列
      2. 对int[]降序排列
      3. 对String[]升序排列
  • 排序效率

    数组容量为50000
    	冒泡排序:3693毫秒
    	选择排序:1106毫秒
    	插入排序:366毫秒
    	
    数组容量为100000
    	冒泡排序:14995毫秒
    	选择排序:4138毫秒
    	插入排序:1470毫秒	
    	
    数组容量为200000
    	冒泡排序:60749毫秒
    	选择排序:16143毫秒
    	插入排序:5823毫秒
    

JVM内存结构,JVM调优,GC常用算法

请添加图片描述

我是将军;我一直都在,。!

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

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

相关文章

[附源码]计算机毕业设计JAVA火车票预订系统2022

[附源码]计算机毕业设计JAVA火车票预订系统2022 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybat…

[附源码]SSM计算机毕业设计智能超市导购系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

STM32所有系列keil 开发包的下载链接 - Keil.STM32Fxxx_DFP.x.x.x.pack

文章目录1、官网下载链接及操作步骤2、关于Keil官网下载芯片包的网速很慢的解决办法1、官网下载链接及操作步骤 安装Keil之后,需要安装芯片包,但是在软件上面点击下载安装,会非常慢。还不如自己到官网下载的快。 官网下载地址:…

longjmp导致局部变量丢失

0 总结 longjmp与setjmp语句之间的变量赋值会丢失。变量须满足&#xff1a; 在调用setjmp函数中的局部变量&#xff08;栈变量&#xff09; &#xff0c;全局变量不受影响非volatile 解决方法&#xff1a;加volatile 1 问题复现 #include <setjmp.h> #include <s…

H5的基础

网页的学名称作HTML文件&#xff0c;是一种可以在www网上传输&#xff0c;并被浏览器认识和翻译成页面显示出来的文件。 HTML是&#xff1a;Hypertext Marked Language即超文本标记语言&#xff0c;是一种用来制作超文本文档的简单标记语言 超文本就是指页面内可以包含图片&…

六十分之九十——沉迷期的突破

目录一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结一、目标 明确可落地&#xff0c;对于自身执行完成需要一定的努力才可以完成的 1.8本技术管理书籍阅读(使用番茄、快速阅读、最后输出思维导图)2.得到"逻辑思维"、吴军硅谷来信…

WebRTC GCC 拥塞控制算法(REMB-GCC)

目录 一. 前言 二. REMB-GCC算法原理 1. 接收端基于延时梯度的带宽预估 &#xff08;1&#xff09;Arrival-time filter &#xff08;2&#xff09;Overuse Detector &#xff08;3&#xff09;Adaptive threshold &#xff08;4&#xff09;Remote Rate Controller &a…

【SQL】之索引

【SQL】之索引简单的索引设计方式innodb中的索引设计方式迭代一次迭代两次迭代三次btree聚簇索引二级索引&#xff08;非聚簇&#xff09;联合索引&#xff08;非聚簇&#xff09;InnoDB的B树索引的注意事项myISAM中索引设计方案索引是帮助mysql高效获取数据的数据结构简单的索…

查询

一、顺序查询 普通查找方式&#xff1a; int SeqSearch(int a[],int n,int k) {int i 0;while (i < n && a[i] ! k)i;if (i > n)return 0;elsereturn i 1; } 优化版查找方式&#xff1a; int OPSeqSearch(int a[], int n, int k) {int i 0;a[n] k;while …

全志A33使用主线U-Boot方法

最近在研究A33主线相关的资源&#xff0c;目前主线uboot和内核都对A33有极好的支持了&#xff0c;所以现在把我在使用过程中遇到的问题和使用方法做个记录&#xff0c;首先是下载主线uboot源码&#xff0c;网址为https://ftp.denx.de/pub/u-boot/&#xff0c;我下载的版本为202…

点云 ICP学习-IterativeClosestPoint

目录 一、pcl中 点云配准算法 二、关于svd原理求解部分 三、pcl IterativeClosestPoint 完成demo 一、pcl中 点云配准算法 PCL 库中 ICP 的接口及其变种&#xff1a; 点到点&#xff1a;pcl::IterativeClosestPoint< PointSource, PointTarget, Scalar >点到面&…

RocketMQ——Mac电脑OS系统docker安装Dashboard

文章目录引言安装下载dashboard镜像docker pull镜像查看镜像运行容器启动容器查看容器日志问题解决方案解决方案说明登录dashboard界面关注微信公众号&#xff1a;CodingTechWork&#xff0c;一起学习进步。引言 前面的文章已经介绍过如何在OS系统上安装并启动使用RocketMQ&…

Canal 安装与入门

MySQL Binlog 简介 https://blog.csdn.net/weixin_44371237/article/details/127904514 MySQL 主从复制过程 1&#xff09;Master 主库将改变记录&#xff0c;写到二进制日志(Binary Log)中&#xff1b; 2&#xff09;Slave 从库向 MySQL Master 发送 dump 协议&#xff0c…

基于QT的考试管理系统设计与实现

目录 一、项目概要 4 1.1项目名称 4 1.2项目目标 4 1.3软件概要 4 1.4功能描述 5 1.5开发环境 5 1.6关键技术 6 1.7开发体制 6 1.8开发阶段 6 二、软件详细需求 7 2.1学生登陆主界面 7 2.2管理员登陆主界面 8 2.3 学生考试系统实现 9 2.4学生练习系统实现 10 2.5试题管理系统实…

mongoDB mapreduce使用总结

大家都知道&#xff0c;mongodb是一个非关系型数据库&#xff0c;也就是说&#xff0c;mongodb数据库中的每张表是独立存在的&#xff0c;表与表之间没有任何依赖关系。在mongodb中&#xff0c;除了各种CRUD语句之外&#xff0c;还给我们提供了聚合和mapreduce统计的功能&#…

JVM 彻底搞懂JVM内存区域及直接内存

面试题&#xff1a;直接内存会导致OOM么&#xff1f; 程序计数器 代表当前线程所执行的字节码所在的行号&#xff0c;配合字节码解释器获取下一条需要执行的字节码指令。 代码中的分支、循环、跳转、异常处理、线程恢复都要依靠它来实现。 程序计数器是线程私有的&#xff0…

进程控制的一些具体操作

目录进程控制进程终止进程退出的方式进程等待进程等待的方法wait使用方法waitpid使用方法进程程序替换替换函数execl函数execv函数execlp函数execvp函数execle函数execve函数---->只有这一个是系统调用&#xff0c;其他都是库函数execvpe函数补充几个知识: %s/被替换的文件…

代码随想录——冗余连接II(并查集)

题目 在本问题中&#xff0c;有根树指满足以下条件的 有向 图。该树只有一个根节点&#xff0c;所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点&#xff0c;而根节点没有父节点。 输入一个有向图&#xff0c;该图由一个有着 n 个节点&am…

vb.net自定义白板

希沃白板在学校里基本上是一直使用的&#xff0c;但是在非希沃电脑里面是没有启动白板的 简答介绍思路和具体的功能 1、背景颜色和画笔颜色自由切换、画笔粗细1~20可以调节。 2、画笔样式&#xff1a;虚线、点线、短线 3、基本图形&#xff1a;矩形&#xff0c;正方形&…

程序员级别分析,看看你是哪个级别

关于程序员的工资众说纷纭&#xff0c;有说开七八千的&#xff0c;也有人说每月上万的&#xff0c;但不管怎么说&#xff0c;程序员的工资是真的比一些文职、行政人员岗位挣得多&#xff0c;大家都是靠自己的能力赚钱&#xff0c;这没什么可比的&#xff0c;况且大家都是在学习…