排序算法----插入排序
Posted Actexpler
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法----插入排序相关的知识,希望对你有一定的参考价值。
插入排序的思想:插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
import java.util.Arrays; /** * 插入排序 * @author wzc */ public class InsertSort { public static void main(String[] args) { int []a={50,61,21,564,479,15,15,56,1,565}; //进行插入排序 InsertSort(a); //显示结果 System.out.println(Arrays.toString(a)); } /** * 插入排序 * @param a 待排序的数组 */ private static void InsertSort(int[] a) { int length=a.length; int temp=0; //从第二个数开始往前插入--->其实当前数前面的数都是有序的了 for(int i=1;i<length;i++){ for(int j=i;j>0&&a[j]<a[j-1];j--){//如果比前面的数小 就进行交换 temp=a[j]; a[j]=a[j-1]; a[j-1]=temp; } //直到前面的数没有比自己小的了 } } }
插入排序的时间复杂度为O(N)
。
以上是关于排序算法----插入排序的主要内容,如果未能解决你的问题,请参考以下文章