java简单插入排序实例

网友投稿 268 2023-04-21


java简单插入排序实例

一、基本概念

插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

二、java代码实现

public class InsRkPTGyiJlSertSort {

public static void inserSort(int[] array){

if (array==null||array.length<2){

return;

}

for (int i=1;i

int position=array[i]; //设置第二个元素为要插入的数据

int j=i-1;

while (j>=0&&position

array[j+1]=array[j]; //如果插入发数小于第j个元素,将第j个数向后移

j--;

}

array[j+1]=position; //插入

}

}

public static void main(String ags[]){

int[] array={2,6,4,7,3,-1};

inserSort(array);

for (int i=0;i

System.out.print(array[i]+" ");

}

}

}

三、性能分析

稳定

空间复杂度O(1)

时间复杂度O(n2)

最差情况:反序,需要移动n*(n-1)/2个元素

最好情况:正序,不需要移动元素

int position=array[i]; //设置第二个元素为要插入的数据

int j=i-1;

while (j>=0&&position

array[j+1]=array[j]; //如果插入发数小于第j个元素,将第j个数向后移

j--;

}

array[j+1]=position; //插入

}

}

public static void main(String ags[]){

int[] array={2,6,4,7,3,-1};

inserSort(array);

for (int i=0;i

System.out.print(array[i]+" ");

}

}

}

三、性能分析

稳定

空间复杂度O(1)

时间复杂度O(n2)

最差情况:反序,需要移动n*(n-1)/2个元素

最好情况:正序,不需要移动元素

array[j+1]=array[j]; //如果插入发数小于第j个元素,将第j个数向后移

j--;

}

array[j+1]=position; //插入

}

}

public static void main(String ags[]){

int[] array={2,6,4,7,3,-1};

inserSort(array);

for (int i=0;i

System.out.print(array[i]+" ");

}

}

}

三、性能分析

稳定

空间复杂度O(1)

时间复杂度O(n2)

最差情况:反序,需要移动n*(n-1)/2个元素

最好情况:正序,不需要移动元素

System.out.print(array[i]+" ");

}

}

}

三、性能分析

稳定

空间复杂度O(1)

时间复杂度O(n2)

最差情况:反序,需要移动n*(n-1)/2个元素

最好情况:正序,不需要移动元素


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:转发接口设计图片大全(转发端口是什么)
下一篇:类可以实现多个接口吗(一个类可以实现多个接口,接口可以实现多重继承)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~