面试题必考系列:插入排序法

插入排序题目整理(hdu) hdu1827 hdu1040 hdu2019 阅读详情

插入排序相比于之前的冒泡二分法排序难度更大一点,排序过程涉及到三个循环加两个判断,想完成该算法需要了解插入排序的三个循环的原理,我在草稿纸大概描述了其中的大致原理,思路可能不太好理解,先慢慢体会一下其中的排序的原理:
在这里插入图片描述

代码实现:

public class insertSortDemo {
	public static void main(String[] args) {
		int [] ints= {5,4,8,7,1,2,3,6};
		//循环地点从数组第二个元素开始,与前一位元素比较大小
		for(int i =1;i<ints.length;i++){
			//i元素<i-1元素进入j循环  i元素就是需要被调整的元素
			if(ints[i] < ints[i-1]){
				//从0索引位置到i之前遍历 寻找大于i的元素 找到即是i元素要插入的位置
				for(int j = 0;j<i;j++){
					//j元素大于i元素 j索引位置就是插入点
					if(ints[j]>ints[i]){
						//先将i位置的值提取出来
						int tempt =ints[i];
						//j索引插入点到i元素前一位所有元素向后移动一位(从后往前遍历)
						for(int k = i-1;k>=j;k--){
							ints[k+1]=ints[k];
						}
						//元素后移后腾出j位置让tempt插入
						ints[j] =tempt;
						//提高效率 插入完成后无需继续遍历 退出循环
						break;
					}
				}
			}
		}
		for(int i=0;i<ints.length;i++){
			System.out.print(ints[i]+" ");
		}
	}
}
排序算法面试指南:冒泡、选择与插入排序详解 排序算法是计算机科学中最基础且重要的概念之一,其核心原理是通过特定规则重新排列数据元素。从时间复杂度分析来看,基础排序算法如冒泡排序、选择排序和插入排序通常具有O(n²)的时间复杂度,但在不同场景下各有优势。这些算法不仅是理解更复杂算法的基础,也是技术面试中的高频考点,能有效考察候选人对数据结构、算法思维和代码实现的掌握程度。在实际工程中,虽然标准库提供了优化实现,但在嵌入式系统等特殊场景下,基础排序算法仍具有应用价值。本文重点解析冒泡排序的优化技巧和插入排序在小规模数据处理中的优势,帮助开发者深入理解这些 阅读详情

相关推荐

【数据结构】6个例题带你学会直接插入排序和希尔排序

6个例题带你学会直接插入排序和希尔排序

四季轮换叶,一路招摇胜 2979

插入排序 及LeetCode上插入排序例题:147 --强烈推荐

public void insertSort(int[] nums){ //默认数组第一个数为排好序的所以下标从1开始 for(int i=1,j;i<nums.length;i++){ //存放nums[i],因为后面元素后移过程会被覆盖 int curr=nums[i]; //内部排序好的数组...

weixin_44202657的博客 1009

Ubuntu安装pytorch3d的最便捷方法【原创】

Ubuntu安装pytorch3d的最便捷方法

qq_54900679的博客 2925

C语言学习-05-插入排序

C语言学习-05-插入排序

qq_45111959的博客 353

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

各种加法器的比对分析与Verilog实现(3)

了Kogge-Stone加法器和brent-kung加法器,本文将用Verilog代码进行实现。

Albert_yeager的博客 1201

插入排序练习

一.插入排序的思想 思想:将需要进行排序的数看作两部分:有序数列和无序数列,通常以第一个数为有序数列,从第二个数开始到最后的数看做无序数列,将无序数列中的数逐个添加到有序数列中,直至整个数列为有序状态。 二.方式一 将需要插入的数逐个与有序数列中的数进行比较,若不满足有序状态则进行交换,交换完之后再进行比较,继续交换;若满足,则不交换。整体效果有点类似向前的冒泡排序。 例:8,2,4,9,3,6,5,1进行从小到大的排序 将8看作有序数列,将2,4,9,3,6,5,1看作无序数列,分别将2,4,9

JayBillions的博客 962

Kubernetes 集群升级与备份恢复:从 1.24 到 1.30 的平滑升级实战

详解 Kubernetes 集群版本升级流程(kubeadm 方式),包括前置检查、组件逐个升级、节点排水与恢复,同时演示 etcd 备份与集群灾难恢复方案。

kaixin110a的博客 36

Java工程师进阶之路:15道大厂必考面试题+答案模板

总的来说,大多数公司的面试都有共同之处,有些重复的我可能就没写了。另外还有一个小技巧可以分享给大家就是,当面试官问你有什么问题的时候,尽量不要就这么过了,平时准备的时候多积累问题最好是偏应用方向的问题,可以在这个时候询问,既可以为自己答疑解惑,也可以有机会给面试官留下好的印象。

m0_69632475的博客 790

YOLOv8 | 损失函数改进,最新提出的Shape-IoU,有效涨点

作为检测器定位分支的重要组成,边框回归损失在目标检测任务中发挥巨大作用。现有的边框回归方法,通常考虑了GT框与预测框之间的几何关系,通过使用边框间的相对位置与相对形状等计算损失,而忽略了边框其自身的形状与尺度等固有属性对边框回归的影响。为了弥补现有研究的不足,本文提出聚焦边框自身形状与尺度的边框回归方法。首先我们对边框回归特性进行分析,得出边框自身形状因素与尺度因素会对回归结果产生影响。

kay_545 1915

【MTK平台】【wpa_supplicant】关于wpa_supplicant/p2p_supplicant.c文件的介绍

本文主要介绍external/wpa_supplicant_8/wpa_supplicant/p2p_supplicant.c 这个文件这个文件里面有个核心的方法就是。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 726

面试必考排序算法最详细介绍,包含动画演示、大厂真题(每天一遍,面试必过)

不知道大家有没有发现,排序算法的考核在校招笔试&面试中已经是必考题。将基本排序算法的代码以及原理背熟是非常有必要的。

Stay Hungry Stay Foolish 求知若饥 虚心若愚 2303

YOLOv11改进 | 主干/Backbone篇 | 轻量化目标检测网络MobileViTv1改进yolov11有效涨点

本文给大家带来的改进机制是MobileViT系列的V1版本,其作为MobileNet网络的挑战者,其效果自然不用多说,MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络(CNN)和视觉变换器(ViT)的优势,旨在在保持高效性能的同时减少模型参数和降低延迟。通过其创新的MobileViT Block和多尺度训练方法,MobileViT在多个视觉任务上取得了优异的结果,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 2337

BAT通行证600多道各大公司必考java面试题合集+答案

最近在刷面试题,所以需要看大量的Java相关的面试题,从大量的题目中总结了很多的知识,也分享给需要的同学。 我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的的知识和面试经验,为将来进入更好的工作做好充分的准备! 这套题集由北京超级团队精心整理整理,对应聘Java程序员职位的常见考点和知识体系都进行了分类和归纳整理。适合应聘Java和JavaEE职位的程序员作为面试复习、学习和强化的资料,也适合其他程序员作为拓展读物进行阅读。 包含了15个模块:Java基础/语法、Stri.

205

【ARM CoreLink 系列 5.3 -- CI-700 SLC memory 系统组件详细介绍】

在 CI-700 系统级缓存(SLC)内存系统中,HN-F 节点负责管理缓存一致性和数据传输。每个 HN-F 节点可以发送三种类型的 Snoop 请求,以确保系统中多核处理器和缓存之间的一致性。CI-700 中的系统级缓存(SLC)内存系统通过 HN-F 节点支持 TrustZone® 技术。以下是 CI-700 支持的 SN 类型以及配置方法的简要介绍。ARM CI-700 系统级缓存(SLC)是一个分布式、主要排他性(mostly exclusive) 的最后一级缓存,集成在 HN-F 节点内。

CodingCos的博客 898

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

BAT通行证 600多道各大公司必考java面试题合集+答案

最近在刷面试题,所以需要看大量的Java相关的面试题,从大量的题目中总结了很多的知识,也分享给需要的同学。 我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的的知识和面试经验,为将来进入更好的工作做好充分的准备! 这套题集由北京超级团队精心整理整理,对应聘Java程序员职位的常见考点和知识体系都进行了分类和归纳整理。适合应聘Java和JavaEE职位的程序员作为面试复习、学习和强化的资料,也适合其他程序员作为拓展读物进行阅读。 包含了15个模块:Java基础/语法、Stri.

python0002O的博客 213

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BAT通行证!600多道各大公司必考java面试题合集+答案

包含了15个模块Java基础/语法、String相关、集合、多线程、IO流、网络编程、异常处理、Web方面相关、设计模式、高级框架、微服务框架、数据库、JVM、Linux操作、算法分析及手写代码。我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的的知识和面试经验,为将来进入更好的工作做好充分的准备!最近在刷面试题,所以需要看大量的Java相关的面试题,从大量的题目中总结了很多的知识,也分享给需要的同学。8.&和&&得区别和联系,|和||的区别和联系。...

m0_60721514的博客 134

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java 笔试 手写,[Java教程]iOS套路面试题之必考笔试手写算法题

[Java教程]iOS套路面试题之必考笔试手写算法题0 2020-11-25 17:25:49 作为开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!以下基本上以C语言实现为主1.不用中间变量,用两种方法交换A和B的值?// 1....

weixin_42298437的博客 140

Java面试题全集

凡事预则立,不预则废。相信很多程序员朋友在跳槽前都会临阵磨枪,在网络上搜集一些面试题进行准备。 由于Java面试涉及的范围很广,很杂,而且技术也在不断更新换代,大家在网络上盲目搜索,不仅很难找到真正对自己有帮助的面试题,而且也很将其中的知识学以致用。 面试刷题数量重要,还是质量重要?题目本身重要,还是它关联的知识更重要?如何才能“有效”准备面试? 下面为大家分享一套黑马程序员最新视频教程《大厂Java面试题》,精选互联网大厂Java核心面试题,课程涵盖基础、并发、虚拟机、框架等相关内容,十面九考!

Aa112233aA1的博客 224

涵盖大厂必考的php数据结构面试题

数据结构和算法 1.使对象可以像数组一样进行foreach循环,要求属性必须是私有。(Iterator模式的PHP5实现,写一类实现Iterator接口)(腾讯) <?php class Test implements Iterator{ private $item = array('id'=>1,'name'=>'php'); public funct...

qq_31913469的博客 493

C++面试必考:快速排序算法与优化策略详解

快速排序作为经典的分治算法,通过递归实现高效排序,其核心在于partition操作将数组分为小于和大于基准值的两部分。算法优化涉及基准选择、小数组处理和尾递归等技术,工程实践中常用三数取中法避免最坏情况,插入排序优化小数组性能。快速排序在C++面试中频繁出现,考察候选人对递归、算法优化和边界处理的理解。掌握其基础实现与工业级优化策略,如三向切分处理重复元素,能有效提升面试表现和实际工程应用能力。

weixin_33861800的博客 458

ios笔试题算法_iOS套路面试题之必考笔试手写算法题

作为开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!以下基本上以C语言实现为主1.不用中间变量,用两种方法交换A和B的值?// 1.中间变量void swap(int a, int b) { int temp = a; a = b; b = temp;...

weixin_39622521的博客 121
上一篇: 面试题必考系列:数组选择排序
Java小柴
博客等级 码龄8年 46粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值