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

[one_demo_16]直接插入排序的demo

直接插入排序的基本思想是循环一个数组,将当前下标插入到下标之前已排好序的数组部分,循环结束,插入结束,则数组排序完毕。

java实现

        /**
	 * 测试插入排序
	 */
	@Test
	public void testInsertSort() {
		int[] array = { 1, 33, 23, 5, 21, 14, 64, 125, 3 };
		inserSort(array);
		System.out.print("排序结束后:");
		printArray(array);
	}

	/**
	 * 插入排序法
	 */
	public void inserSort(int[] array) {
		// 健壮性判断
		if (array.length < 2) {
			return;
		}
		// 循环数组
		for (int i = 0; i < array.length; i++) {
			int temp = array[i];
			int j = i;
			// 遍历当前下标前的数组部分,如果当前下标值小于当前下标前的数组值,则数组值后移
			while (j > 0 && temp < array[j - 1]) {
				array[j] = array[j - 1];
				j--;
			}
			// 遍历结束后,将元素插入结束下标的位置
			array[j] = temp;
			// 打印数组,观察排序过程
			System.out.print("第" + i + "次排序后:");
			printArray(array);
			System.out.println();
		}

	}

	/**
	 * 打印数组
	 */
	public void printArray(int[] array) {
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + "\t");
		}
	}

 

相关文章:

  • [one_demo_17]使用传统方式实现线程间通信的例子
  • ThreadLocal
  • [one_demo_18]js定时器的示例
  • Java8部分新特性
  • jvm简介
  • mybatis使用foreach处理List中的Map
  • log4j2的配置文件
  • 一个用java的NIO实现的socket的客户端和服务端的demo
  • 使用java的nio的pipe实现两个线程间传送数据的demo
  • org.hibernate.TransactionException: nested transactions not supported异常
  • elasticsearch
  • rancher简介
  • InfluxDB+cAdvisor+Grafana容器管理
  • serviceComb[No schema defined for start.servicecomb.io:]异常
  • ServiceComb
  • @angular/forms 源码解析之双向绑定
  • C++类的相互关联
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • gitlab-ci配置详解(一)
  • HomeBrew常规使用教程
  • interface和setter,getter
  • Python_OOP
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 编写符合Python风格的对象
  • 订阅Forge Viewer所有的事件
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 开源地图数据可视化库——mapnik
  • 前端技术周刊 2019-02-11 Serverless
  • 山寨一个 Promise
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (C#)获取字符编码的类
  • (二十三)Flask之高频面试点
  • (小白学Java)Java简介和基本配置
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .chm格式文件如何阅读
  • .NET Micro Framework初体验
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .Net各种迷惑命名解释
  • .net经典笔试题
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .sh 的运行
  • ::
  • [Android 13]Input系列--获取触摸窗口
  • [android] 练习PopupWindow实现对话框
  • [C/C++随笔] char与unsigned char区别
  • [ffmpeg] x264 配置参数解析
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [Java、Android面试]_05_内存泄漏和内存溢出
  • [Java基础]—JDBC