1.题目
2.解法
插入排序的算法思路是这样的:
将数组的第一个元素看作是已排序的序列,从第二个元素开始,依次往已排序的序列中插入。
每次插入时,从已排序的序列的末尾开始比较,
- 如果待插入的元素小于当前比较的元素,则将当前元素后移一位,
- 否则将待插入的元素放在当前位置。
重复上述步骤,直到所有的元素都插入到已排序的序列中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class InsertSort { public static void main(String[] args) { int [] nums = new int []{ 1 , 8 , 5 , 2 , 7 , 0 }; sortArray(nums); System.out.println(); } public static void sortArray( int [] nums) { int length = nums.length; for ( int i = 0 ; i < length - 1 ; i++) { int preIndex = i; int curVal = nums[i + 1 ]; while (preIndex >= 0 && nums[preIndex] > curVal) { nums[preIndex + 1 ] = nums[preIndex]; preIndex--; } nums[preIndex + 1 ] = curVal; } } } |
3.总结
插入排序的特点是:
算法简单,易于实现。
稳定性好,不会改变相等元素的相对位置。
时间复杂度为O (n²),空间复杂度为O (1)。
适合数据量较小或基本有序的序列。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)