首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
java面试题基础
冒泡排序算法
插入排序算法
归并排序算法
二叉树排序算法
基数排序
选择排序
堆排序
快排
TCP-三次握手
HTTP协议
WebSocket
Mysql架构
Innodb与Myisam数据库引擎
事务隔离级别
面向对象(OOP)
异常
泛型
Object
StringBuilder
代理
注解
java面试题基础二
HashMap
ConcurrentHashMap
BlockingQueue
线程
Volatile
AtomicInteger
Synchronized
Java虚拟机架构
类加载器
内存模型
垃圾回收
Mybatis面试题
IOC
高并发系统设计
分布式缓存
分布式锁
分布式事务
消息队列
当前位置:
首页>>
技术小册>>
Java面试指南
小册名称:Java面试指南
当需要对一组数据进行排序时,我们可以使用插入排序算法。插入排序的基本思想是将一组数据分成已排序部分和未排序部分,然后逐步将未排序部分的数据插入到已排序部分中,直到全部数据有序。下面是一个用Java实现的插入排序算法: ```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 = j - 1; } arr[j + 1] = key; } } public static void main(String[] args) { int[] arr = { 12, 11, 13, 5, 6 }; insertionSort(arr); System.out.println(Arrays.toString(arr)); } } 在 ``` 这个实现中,我们首先定义一个 insertionSort 方法,该方法接收一个整数类型的数组作为参数。然后,我们遍历整个数组,对于每一个未排序的元素,将其插入到已排序部分的合适位置中。在内部循环中,我们使用 while 循环来将比当前元素大的已排序元素向右移动,以便为当前元素腾出空间。最后,我们将当前元素插入到正确的位置中。 在 main 方法中,我们创建了一个整数数组 arr 并对其进行排序。我们使用 Java 的 Arrays.toString() 方法打印排序后的数组。 该算法的时间复杂度为 $O(n^2)$,其中 $n$ 是数组的大小。如果数组已经部分排序,插入排序算法的时间复杂度可以降低到 $O(n)$。
上一篇:
冒泡排序算法
下一篇:
归并排序算法
该分类下的相关小册推荐:
Mybatis合辑1-Mybatis基础入门
Java语言基础12-网络编程
Mybatis合辑4-Mybatis缓存机制
java源码学习笔记
Java语言基础9-常用API和常见算法
Java语言基础8-Java多线程
Java语言基础11-Java中的泛型
Java语言基础6-面向对象高级
Java语言基础16-JDK8 新特性
Mybatis合辑3-Mybatis动态SQL
深入理解Java虚拟机
Java语言基础1-基础知识