面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序))

2023-11-09

(一)直接插入排序

   抓住关键字---------------插入

 (1)基本思想

顺序地把待排序的序列中的各个数据按其关键字的大小,插入到已排序的序列的适当位置。

 (2)运行过程

          1、将待排序序列的第一个数据看做一个有序序列,把第二个数据到最后一个数据当成是未排序序列。

          2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的数据与有序序列中的某个数据相等,则将待插 入数据插入到相等数据的后面。)

 (3)示例



(二)希尔排序(shell排序)


   抓住关键字---------------插入,分治(前面提示过分治的理解)


  希尔排序是基于插入排序的以下两点性质而提出改进方法的:

          1、插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率。

          2、但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位。

    (1)基本思想

           先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排 序。

     (2)运行过程

              1、选择一个增量序列t1,t2,…,tk,其中对于i>j,有ti>tj,tk=1;(增量因子有多种取法,最简单的是t(i+1) = ti/2)

              2、按增量序列个数k,对序列进行k 趟排序; 

              3、每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。

     (3)示例

         



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序)) 的相关文章

  • C++报错 invalid operands to binary expression

    C 报错 invalid operands to binary expression c 为什么加 const 就解决了 invalid operands to binary expression c 为什么加 const 就解决了 inv
  • 四种IO模型

    四种IO模型 目录 一 什么是IO 二 阻塞IO 三 非阻塞IO 四 信号驱动IO 五 异步IO 目录 一 什么是IO 对于IO的简单理解 我们首先通过两个数据之间的交互过程来理解什么是IO 向上面这样数据从对应的发送缓冲区发送到对应的接受
  • 视频中的I帧、B帧、P帧

    视频文件都是一帧一帧存储的 为了使文件的大小减小 通常会对文件进行压缩 mpeg4 MP4 文件中的每一帧开始都是固定的 00 00 01 b6 那么在接下来的每一帧分别是什么帧呢 I帧 B帧 P帧 一般在这固定帧的后面2bit就是标志是什

随机推荐

  • 【山河送书第十一期】:朋友圈大佬都去读研了,这份备考书单我码住了,考研书籍五本!!

    朋友圈大佬都去读研了 这份备考书单我码住了 数据结构与算法分析 计算机网络 自顶向下方法 现代操作系统 深入理解计算机系统 概率论基础教程 原书第10版 线性代数 原书第10版 线性代数及其应用 重磅推荐 参与方式 往期赠书回顾 八九月的朋
  • 【翻译】torch.device的使用举例

    参考链接 class torch device 原文及翻译 torch device torch device栏目 class torch device torch device 类型 A torch device is an object
  • 我们为什么选择CentOS

    服务器操作系统大多采用Unix和Linux操作系统 而Linux发行版本系统中 多使用CentOS Redhat Ubuntu Gentoo Debian 而这些发行版本可以大体分为两类 一类是商业公司维护的发行版本 一类是社区组织维护的发
  • Spark Shuffle 中 JVM 内存使用及配置内幕详情

    引言 Spark 从1 6 x 开始对 JVM 的内存使用作出了一种全新的改变 Spark 1 6 x 以前是基于静态固定的JVM内存使用架构和运行机制 如果你不知道 Spark 到底对 JVM 是怎么使用 你怎么可以很有信心地或者是完全确
  • 面试官的技术面试技巧与步骤

    面试官进行技术面试的常用技巧与步骤 面试需求 解读人员需求与岗位说明 了解岗位需求和工作内容 明确岗位对人员的知识技能 工作经验和基本素质要求 面前准备 分析应聘者简历 判断人员需求 岗位说明与应聘人员的匹配度 发现需进一步确认的信息 分析
  • 基于产品的RFM模型的k-means聚类分析

    首先我们可以看看数据集的数据形态 导入rfm数据 查看数据的统计学参数 df pd read csv rfm csv df describe 在实施Kmeans聚类之前 我们必须检查这些关键k means假设 变量对称分布 不倾斜 具有相同
  • Ubuntu安装Vmware tools

    点击vmware右上角虚拟机的下拉菜单中点击 安装 VMware Tools 然后在桌面上会有一个压缩包 右击打开当前文件夹 重命名这个压缩包为vmwaretools tar gz 在当前文件夹中打开terminal cp vmwareto
  • 机器学习算法(二十三):DTW(Dynamic Time Warping,动态时间调整)

    目录 1 DTW 动态时间调整 2 算法的实现 3 例子 4 python实现 5 DTW的加速算法FastDTW 5 1 标准DTW算法 5 2 DTW常用加速手段 5 3 FastDTW 1 DTW 动态时间调整 动态时间调整算法是大多
  • java pv uv_前端数据收集(pv/uv)

    所谓web 即使你我素未谋面 便知志趣相投 足不出户 亦知世界大 01 什么是PV UV 网站流量分析 是指在获得网站访问量基本数据的情况下对有关数据进行统计 分析 从中发现用户访问网站的规律 并将这些规律与网络营销策略等相结合 从而发现目
  • Cadence Allegro(8):生成网络报表(Netlist)

    Cadence Allegro 8 生成网络报表 Netlist 前提摘要 PCB设计软件版本 原理图设计 Pad Designer 16 6 PCB设计 PCB Editor 16 6 个人说明 限于时间紧迫以及作者水平有限 本文错误 疏
  • selenium chrome java 无头模式使用cdp设置navigator.permission

    Chrome Devtools Protocol 前提 chromium无头模式下和gui模式是不同的 userData无法指定 也无法通过模拟点击alert授权 或者进入chrome settings 通过selenium控制授权 因为无
  • 奶牛碑文。

    include
  • 八大数据结构

    八大数据结构 数据结构分类 1 数组 2 栈 3 队列 4 链表 5 树 6 散列表 7 堆 8 图 1 数组 数组是可以再内存中连续存储多个元素的结构 在内存中的分配也是连续的 数组中的元素通过数组下标进行访问 数组下标从0开始 例如下面
  • ORACLE 生成唯一id

    1 创建一个序列 create sequence id 序列名称 increment by 1 以1递增 start with 1 从1开始 maxvalue 999999999 最大值 2 创建函数调用上边创建的序列 CREATE FUN
  • PyCharm 使用教程:PyCharm常用技巧指南,轻松学会

    在 PyCharm 中 打开已有的项目有 3 种方式 欢迎界面中选择open 菜单栏中选择 File gt open 打开远程 Git 的项目 在 PyCharm 中 打开已有的项目可以在第一次打开的欢迎界面中选择open来打开你电脑中已经
  • 【‘XXX‘ is declared but its value is never read.】

    遇到问题了 引入一个弹窗组件 已经import了 也在template中写了弹窗组件 但是弹窗就是不出来 1 看看报错信息 没啥报错 2 看看代码 import中的代码暗淡了 鼠标移入出现上面的报错 突然想起来没有在component中写入
  • breach靶场练习详细全过程

    补充 桥接 nat host only三种网络模式的区别 模式 特点 场景 bridge桥接模式 特点 虚拟机使用物理机的网卡 不用虚拟网卡 占用一个ip 需要配置ip以后才可以访问互联网 场景 虚拟机需要连接实体设备的时候 nat网络地址
  • 最好用的 6 个 React Tree select 树形组件测评与推荐

    本文完整版 最好用的 6 个 React Tree select 树形组件测评与推荐 React Tree select 树形组件 1 React Sortable Tree 全功能 树状单选多选 可拖拽 过滤搜索 多种主题可选 2 Rea
  • android开发浏览器!写给1-3年安卓程序员的几点建议,聪明人已经收藏了!

    前言 作为一个程序员 如果你在新知识 新技术面前仍一无所知 依然吃着十多年前的老本 那你在知识技术上肯定落伍 如果又未能进入管理层面 那你肯定就会被长江的后浪拍在沙滩上了 而不少与时俱进 善于学习的程序员他们仍是行业的中坚力量 这只是说明当
  • 面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序))

    一 直接插入排序 抓住关键字 插入 1 基本思想 顺序地把待排序的序列中的各个数据按其关键字的大小 插入到已排序的序列的适当位置 2 运行过程 1 将待排序序列的第一个数据看做一个有序序列 把第二个数据到最后一个数据当成是未排序序列 2 从