JAVA直接插入排序法
程序员文章站
2024-03-22 23:09:28
...
直接插入排序法
从后向前找到合适的位置后插入
基本思想
每一步将待排序的数用一个变量记录,然后按照其大小将其插入到已排序的子序列的合适的位置。
举例
待排序的数列:34、4、56、17、90、65
项目 | temp | 数列 |
---|---|---|
原始数列 | 34、4、56、17、90、65 | |
第一轮 | 4 | 4、34、56、17、90、65 |
第二轮 | 56 | 4、34、56、17、90、65 |
第三轮 | 17 | 4、17、34、56、90、65 |
第四轮 | 90 | 4、17、34、56、90、65 |
第五轮 | 65 | 4、17、34、56、65、90 |
int[]nums = {34,4,56,17,90,65}; // 待排序的数列
int len = nums.length;
//外循环_控制比较的轮数
for(int i =1; i< len; i++) { //从数组下标[1]开始比较
int temp = nums[i]; //用temp变量记录待排序的数
int j =0;
//内循环_控制每次排序开始的位置
for(j=i-1; j>=0; j--) { //从后往前排序
if(nums[j]>temp) { //判断待排序的数是否比已排序的子序列小
nums[j+1]=nums[j];
}else {
break;
}
}
if(nums[j+1]!=temp) { //判断待排序的数是否发生位置变化
nums[j+1]=temp;
}
}
for(int a:nums) {
System.out.println(a); //打印数组
}
/*
排序结果
4
17
34
56
65
90
*/
上一篇: ie中使用css旋转元素