插入排序—Java

插入排序

基本思想 :

  • 实现数组从小到大排
  • 从第二个数开始跟前面的数比较 找到合适的位置插入 后面的数往后推移 但推移不会超过原来插入的数的下标

代码实现

java 复制代码
public static void InsertSort(int[] arr) {
		for(int i = 1;i<arr.length;i++) {//从1开始是因为要和前面的数有一个比较的过程
			int InsertIndex=i-1;//要插入的理想目的地
			int Insertvalue= arr[i];
			while (InsertIndex>=0&&Insertvalue<arr[InsertIndex]) {
				//insertindex后移动一位
				arr[InsertIndex+1]=arr[InsertIndex];
				InsertIndex--;
				//一直在减去,所以while结束后代表找到
				//后面要加还给他,代表找到的那个位置
			}
		//
			if(InsertIndex+1!=i) {
				//+1代表找的那个位置
				arr[Insertvalue+1]=Insertvalue;
			}
		}
		for(int i = 0;i<arr.length;i++) {
			System.out.print(arr[i]+"\t");
		}
		
		
	}
相关推荐
rabbit_pro2 分钟前
Java使用Mybatis-Plus封装动态数据源工具类
java·python·mybatis
期待のcode8 分钟前
Java虚拟机类加载机制
java·开发语言
短剑重铸之日15 分钟前
《SpringBoot4.0初识》第四篇:原生镜像
java·原生镜像·springboot4.0
程序员欣宸18 分钟前
LangChain4j实战之十二:结构化输出之三,json模式
java·人工智能·ai·json·langchain4j
天若有情67336 分钟前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
初晴や37 分钟前
【C++】图论:基础理论与实际应用深入解析
c++·算法·图论
李泽辉_38 分钟前
深度学习算法学习(五):手动实现梯度计算、反向传播、优化器Adam
深度学习·学习·算法
亲爱的非洲野猪41 分钟前
从ReentrantLock到AQS:深入解析Java并发锁的实现哲学
java·开发语言
wheelmouse778843 分钟前
如何设置VSCode打开文件Tab页签换行
java·python
yangminlei1 小时前
Spring Boot——日志介绍和配置
java·spring boot