插入排序(Java实现)

前言

    稳定性:如果一个排序是稳定的,是可以变成不稳定的,此时这个排序归结为稳定,但是如果这个排序本身是不稳定的,是不可以变成稳定的,此时这个排序是不稳定的。

    过程:如果数组中只有一个元素,这个数组当前就是有序的,当数组中有多个元素,要对其进行插入排序,此时就可以定义一个下标 i,来控制比较的元素,可以将 i 放到 tmp 中,然后 j 控制被比较的元素,一直比较的是 i 和 i 下标之前的所有的元素。

// 插入排序// 过程 arr[1]元素放到tmp中,j下标控制数组前边的元素去和tmp中的值去比较// 如果比 tmp 中的值大,此时让所有大的值往后挪动即可/* 时间复杂度:O(N ^ 2)  最好时间复杂度:O(N)(也就是当数据接近有序的时候排序速度非常快)所以一般的场景就是数据基本有序的时候就用 插入排序* */public void insertSort(int[] arr) {for (int i = 1; i < arr.length; i++) {int tmp = arr[i];int j = i - 1;for (; j >= 0; j--) {if (tmp < arr[j]) {arr[j + 1] = arr[j];} else {arr[j + 1] = tmp;break;}// 正常情况下,数组中最后一个元素是最小的,此时应该将这个元素放到最前边// 但是 j 下标是负数了,此时跳出循环了,所以就应该将tmp的最小值放到 j + 1 下标的位置上arr[j + 1] = tmp;}}}

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

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

相关文章

【JVM】synchronized锁升级的过程

目录 如何从无锁状态到偏向锁状态&#xff1a; 偏向锁升级为轻量级锁&#xff1a; 轻量级锁到自旋锁的状态&#xff1a; 自旋锁升级为重量级锁&#xff1a; 下面是自旋锁升级到重量级锁的过程&#xff1a; 重量级锁的特点如下&#xff1a; synchronized锁分为三种状态——…

点云从入门到精通技术详解100篇-基于几何特征的三维点云配准

目录 前言 研究现状 基于几何特征的方法 ICP算法及其变体 基于学习的方法

JavaSE【 String 类】(2)(

一、字符串的不可变性 1.String本身不可变 字符串修改 注意&#xff1a;尽量避免直接对 String 类型对象进行修改&#xff0c;因为 String 类是不能修改的&#xff0c;所有的修改都会创建新对象&#xff0c;效率 非常低下。 public static void main(String[] args) {/*** S…

sublime编辑latex 出现参考文献无法编译报错:citation “...” undefined

问题描述 使用sublime编译latex文件时&#xff0c;参考文献按照常规的方式放好&#xff0c;ctrl B 编译的时候&#xff0c;显示找不到参考文献&#xff0c;编译出的pdf文件也没有references&#xff1a; 但是把文件放到overleaf上就可以直接编译出来&#xff0c;说明是本地编…

向量数据库,能让AI再次起飞吗?

9月7-8日&#xff0c;深圳国际会展中心18号馆 来了&#xff0c;来了&#xff0c;腾讯面向产业互联网领域规格最高、规模最大、覆盖最广的年度科技盛会 -——- 腾讯全球数字生态大会。 9 月 7 日&#xff0c;我们将聚焦产业未来发展新趋势&#xff0c;针对云计算、大数据、人工…

滴滴:二季度中国出行营收同比增长57%,6月日均单量超3000万单

9月9日&#xff0c;滴滴在其官网发布2023年第二季度业绩报告&#xff0c;二季度滴滴实现总收入488亿元&#xff0c;同比增长52.6%&#xff1b;归属于滴滴普通股股东的净亏损为3亿元&#xff0c;经调整EBITA亏损1000万元。 分业务来看&#xff0c;二季度滴滴中国出行&#xff0…

Error: Port Library failed to initialize: -86

最近遇到一个很奇怪的错误&#xff0c;这里记录一下&#xff0c;以备以后再次遇到 Error: Port Library failed to initialize: -86 Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.背景是&#xff0c;就是一普…

fastjson漏洞复现

文章目录 启动环境漏洞复现下载bp插件漏洞扫描dnslog测试是否向外请求资源用工具构造rmi服务器 反弹shell 启动环境 到vulhub目录下 cd vulhub/fastjson/1.2.24-rce安装环境并启动&#xff1a; sudo docker-compose up -d && sudo docker-compose up -d启动成功&…

详解TCP/IP的三次握手和四次挥手

文章目录 前言一、TCP/IP协议的三次握手1.1 三次握手流程 二、TCP/IP的四次挥手2.1 四次挥手流程 三、主要字段3.1、标志位&#xff08;Flags&#xff09;3.2、序号&#xff08;sequence number&#xff09;3.3、确认号&#xff08;acknowledgement number&#xff09; 四、状态…

MySQL——事务

一、事务的开始与结束 一个数据库事务由一条或多条sql语句构成&#xff0c;它们形成一个逻辑的工作单元。这些sql语句要么全部执行成功&#xff0c;要么全部执行失败。 1.1.事物的开始 1.对于DDL&#xff08;create&#xff0c;alter&#xff0c;drop&#xff09;和DCL&…

使用playright自动下载vscode已安装插件

import os import re import subprocess import traceback from playwright.sync_api import Playwright, sync_playwright, expect# 执行CMD命令 cmd_command = "code --list-extensions" # 获取已安装扩展列表 process = subprocess.Popen(cmd_command, stdout=su…

Java 中如何实现序列化?

什么是序列化&#xff1f;Java 中如何实现序列化&#xff1f; 在 Java 编程中&#xff0c;序列化是一种将对象转换为字节流的过程&#xff0c;可以将对象在网络中传输或者保存到磁盘中。序列化可以将对象的状态保存下来&#xff0c;以便在需要时重新创建对象。Java 中提供了一…

Android 10.0 禁用adb shell input输入功能

1.前言 在10.0的产品开发中,在进行一些定制开发中,对于一些adb shell功能需要通过属性来控制禁止使用input 等输入功能,比如adb shell input keyevent 响应输入事件等,所以就需要 熟悉adb shell input的输入事件流程,然后来禁用adb shell input的输入事件功能,接下来分…

【数据结构--顺序表】移除元素

题目描述&#xff1a; 代码实现&#xff1a; 1、指针实现 int removeElement(int* nums, int numsSize, int val) {int* dst nums, * src nums;int n1 0,n20;while (n1n2 < numsSize){if (*src ! val){*dst *src;dst;src;n1;//表示src走的步数}else{src;n2;//表示src走…

【C++心愿便利店】No.5---构造函数和析构函数

文章目录 前言一、类的6个默认成员函数二、构造函数三、析构函数 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专栏&#xff1a;C 心愿便利店 &#x1f511;本章内容&#xff1a;类…

GO远程构建并调试

GO远程调试 之前写C&#xff0c;一直习惯了本地IDERemote CMake/GDB编译调试的模式。 因为6.824课程需要用GO&#xff0c;好像没有特别好的支持。记录一下如何配置调试的。 IDE: Goland 操作系统&#xff1a;Windows 远程服务器&#xff1a;Ubuntu 首先配置SSH,让其可以连接到…

typeScript--[es6class类实现继承]

一.js中实现继承 // js实现继承 // 父类 function Father(name) {this.name namethis.say function () {console.log(this.name "在唱歌")} } var f new Father("逍遥的码农")// 子类 function Son(name) {Father.call(this, name) } Son.prototype …

source insight keil 中文乱码

1. 乱码的根本原因就是编码的方式太多了&#xff0c;你用这种编码&#xff0c;他用那种编码&#xff0c;就变成鸡同鸭讲了&#xff0c;对牛弹琴就要用牛语&#xff0c;如果全世界只有一种编码方式&#xff0c;就肯定不会有乱码问题&#xff0c;但这是不可能的。keil 设置编码格…

SpringMVC入门篇

目录 1.SpringMVC工作流程 2.SpringMVC核心组件 2.1 DispatcherServlet 2.2 HandlerMapping 2.3 Handler 2.4 HandlerAdapter 2.5 ViewResolver 2.6 View 3.SpringMVC的入门 3.1 添加相关依赖 3.2 创建Spring-mvc.xml 3.3 配置web.xml 3.4 效果演示 4.静态资源处…

计算机视觉CV:在自动驾驶方面的应用与C++代码实现

1.计算机视觉&#xff08;CV&#xff09;在自动驾驶领域中的应用 目标检测&#xff1a;利用计算机视觉技术&#xff0c;对道路上的各种障碍物进行识别和检测&#xff0c;例如行人、车辆、信号灯等等。 路径规划&#xff1a;利用计算机视觉技术&#xff0c;实时分析道路上的交通…