算法—插入排序(Java实现)
2017-09-17 17:41
393 查看
插入排序
插入排序中的不变性
在每趟结束后,在将temp位置的项插入后,比outer变量下标小的数据项都是局部有序的
比较总次数:1+2+3+。。。+N-1=N*(N-1)/2
但每一趟排序发现插入点之前,平均只有全体一半的数据进行比较,SO,总比较次数:N*(N-1)/4
插入排序针对有序或基本有序的数据来说,速度比冒泡和选择排序要快。对逆序排序的数据比较慢。
插入排序中的不变性
在每趟结束后,在将temp位置的项插入后,比outer变量下标小的数据项都是局部有序的
比较总次数:1+2+3+。。。+N-1=N*(N-1)/2
但每一趟排序发现插入点之前,平均只有全体一半的数据进行比较,SO,总比较次数:N*(N-1)/4
插入排序针对有序或基本有序的数据来说,速度比冒泡和选择排序要快。对逆序排序的数据比较慢。
class ArrayIns { private long[] a; private int nElems; public ArrayIns(int max) { a=new long[max]; nElems=max; } public void insert(long value) { a[nElems]=value; nElems++; } public void insertionSort() { int out,in; for(out=1;out<nElems;out++)//标记元素的分割线 { long temp=a[out];//将标记元素移出队伍 in=out; while(in>0&&a[in-1]>=temp)//比较大小,直到找到最小元素 { a[in]=a[in-1]; --in; } a[in]=temp;//插入最小元素 } } }
相关文章推荐
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- “插入排序”算法Java语言的实现与详解
- 算法-java代码实现插入排序
- 数据算法之插入排序(insertSort)的Java实现
- 算法系列(二)冒泡排序、选择排序、插入排序和希尔排序(Java实现)
- 算法导论——JAVA实现“插入排序”算法
- 算法(第四版)学习笔记之java实现插入排序
- 算法实战java实现插入排序,堆排序,归并排序
- 数据算法之插入排序(insertSort)的Java实现
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- 数据结构与算法(8)---Java语言实现:插入排序
- Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)
- Java实现排序算法之 - 插入排序
- 数据结构与算法——插入排序(Java实现)
- java实现排序算法之2-路插入排序,直接插入排序,折半插入排序
- 8大内部排序算法学习笔记--(1)插入排序java实现
- 【LeetCode-面试算法经典-Java实现】【147-Insertion Sort List(链表插入排序)】
- java实现排序算法之插入排序(直接插入排序,折半插入排序,希尔排序)
- 算法实现Java之插入排序