概述
排序原理
1.把所有的元素分为两组,已经排序的和未排序的;
2.找到未排序的组中的第一个元素,向已经排序的组中进行插入;
3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;
代码实现
public static void insertSort(double a[]){
//i为待插入元素的索引
for(int i=1;i<a.length;i++){
for(int j=i;j>0;j--){
//比较索引j处的值和j-1处的值,如果j-1处的值比j的值大,那么交换数据,如果不大,则插入结束 退出循环
if(a[j-1]>a[j])
{
double temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
else
break;
}
}
}
测试
public static void main(String[] args) {
double arr[]={4,5,3,6,11,14,1,8};
insertSort(arr);
System.out.println(Arrays.toString(arr));
//[1.0, 3.0, 4.0, 5.0, 6.0, 8.0, 11.0, 14.0]
}
算法分析
比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么把要插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
最后
以上就是清爽冰棍为你收集整理的排序算法——直接插入排序(insertSort)的全部内容,希望文章能够帮你解决排序算法——直接插入排序(insertSort)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复