当前位置: 首页 > news >正文

算法导论学习笔记——插入排序

/**
 * 用递归的方法实现的插入排序算法
 * 分解:n个元素的排序看成是把第n个元素插入到已排好序的n-1个元素中
 * 解决:对n-1个元素以次递归
 * 合并:用插入排序将第n个元素插入到排好序的n-1个元素序列中
 */
public class InsertSort {

	/**
	 * 将数组arr中第p个位置的元素插入到排好序的0到p-1序列中
	 * @param arr
	 * @param p
	 */
	static void insert(int arr[],int p){
		if(p>0){
			if(arr.length>1){
				int key = arr[p];
				int i = p-1;
				while(i>=0&&arr[i]>key){
					arr[i+1]=arr[i];
					i--;
				}
				arr[i+1]=key;
			}
		}
	}
	/**
	 * 插入排序的外层函数
	 * @param arr
	 * @param p
	 */
	static void insertSort(int arr[],int p){
		if(p>1)
			insertSort(arr,p-1);
		insert(arr,p);
	}
	public static void main(String[] args) {
		int arr[] = {3,4,5,14,19,11,16,1,9,7,8,10,2,6,12,15,18,13,17,20};

		insertSort(arr,arr.length-1);
		for(int i=0;i<arr.length;i++)
			System.out.println(arr[i]);
	}
}


相关文章:

  • 本地Git仓库与Github远程仓库同步
  • 算法导论学习笔记——合并排序
  • 算法导论学习笔记——最大优先级队列
  • Data.xml文件找不到的解决
  • 算法导论学习笔记——快速排序算法
  • instancetype
  • CentOS下SVN使用
  • java虚拟机学习笔记——java安全模型
  • 《C++ Primer Plus(第六版)》(9)(第七章 函数 笔记和答案)
  • 算法导论学习笔记——计数排序算法
  • 本地化资源文件关键字重复的报错解决。
  • 数字签名是什么?
  • 探索推荐引擎内部的秘密:推荐引擎初探
  • 决策树
  • 算法导论学习笔记——基数排序
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【前端学习】-粗谈选择器
  • 11111111
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • JS+CSS实现数字滚动
  • Spark RDD学习: aggregate函数
  • STAR法则
  • Vue全家桶实现一个Web App
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 聚簇索引和非聚簇索引
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 思维导图—你不知道的JavaScript中卷
  • 网络应用优化——时延与带宽
  • 物联网链路协议
  • gunicorn工作原理
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #预处理和函数的对比以及条件编译
  • (7)STL算法之交换赋值
  • (C++)八皇后问题
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Forward) Music Player: From UI Proposal to Code
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (推荐)叮当——中文语音对话机器人
  • (转)3D模板阴影原理
  • 、写入Shellcode到注册表上线
  • .form文件_一篇文章学会文件上传
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core中Emit的使用
  • .Net IOC框架入门之一 Unity
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [AutoSar NVM] 存储架构
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [CERC2017]Cumulative Code
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用