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

Java实现插入排序及其动图演示

        插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置,从而得到一个新的、元素个数加一的有序序列。

具体的插入排序算法过程如下:

  1. 从第一个元素开始,认为第一个元素已经是有序序列。
  2. 取出下一个元素,在已经排序的序列中从后向前扫描。
  3. 如果已经排序的元素大于新元素,将该元素移到下一个位置。
  4. 重复步骤3,直到找到已排序的元素小于等于新元素的位置。
  5. 将新元素插入到该位置后。
  6. 重复步骤2~5,直到所有元素都被插入到有序序列中。

以下为Java实现插入排序的代码示例:

public class InsertionSort {public static void insertionSort(int[] arr) {int n = arr.length;for (int i = 1; i < n; i++) {int key = arr[i];int j = i - 1;// 将比当前元素大的元素向后移动while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j--;}// 插入当前元素到正确位置arr[j + 1] = key;}}public static void main(String[] args) {int[] arr = {5, 2, 8, 4, 1};System.out.println("Before sorting:");for (int num : arr) {System.out.print(num + " ");}System.out.println();insertionSort(arr);System.out.println("After sorting:");for (int num : arr) {System.out.print(num + " ");}System.out.println();}
}

输出结果:

Before sorting:
5 2 8 4 1 
After sorting:
1 2 4 5 8 

以上代码实现了插入排序的功能。在insertionSort方法中,首先从第二个元素开始遍历数组,将当前元素存储在key变量中。然后,通过一个循环将比key大的元素向后移动,腾出合适的位置插入key。最后,将key插入到正确的位置。在main方法中,我们创建一个数组,调用insertionSort方法进行排序,并输出排序前后的数组。

http://www.lryc.cn/news/258606.html

相关文章:

  • 设计模式——原型模式(创建型)
  • 深眸科技以机器视觉高性能优势,为消费电子行业提供优质解决方案
  • React setState()的两种书写方法对比
  • orb-slam2学习总结
  • 通过wireshark判断web漏洞的流量特征
  • Command ‘npm‘ not found, but can be installed with:sudo apt install npm 解决方案
  • 【Hadoop_04】HDFS的API操作与读写流程
  • go-zero开发入门之网关往rpc服务传递数据
  • Word插件-好用的插件-批量插入图片-大珩助手
  • 小程序域名SSL证书能用免费的吗?
  • selenium自动化(中)
  • uniapp app将base64保存到相册,uniapp app将文件流保存到相册
  • Navicat 技术指引 | 适用于 GaussDB 分布式的服务器对象的创建/设计
  • 五、HotSpot细节实现
  • DRBD分布式存储实验
  • go的结构体作为返回值
  • uniapp的subnvue苹果适配(ios)谷歌地图问题
  • 项目实战之RabbitMQ重试机制进行消息补偿通知
  • MySQL之数据库的创建指令
  • [网络安全]批处理(脚本)编写
  • 事件驱动架构 vs. RESTful架构:通信模式对比与选择
  • 代码随想录算法训练营第五十二天| 300 最长递增子序列 674 最长连续递增子序列 718 最长重复子数组
  • leetcode 101.对称二叉树
  • 【本人新书】《OpenCV应用开发:入门、进阶与工程化实践》
  • 【Linux系统编程】进度条的编写
  • 互斥锁的原理
  • Win10的SVN Adapter V1.0 中黄色感叹号 -- 解决
  • ubuntu20 安装docker
  • HarmonyOS开发工具DevEco Studio的下载和安装
  • SHELL21 格式化输出