插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。
2014-04-12 15:21
609 查看
package none001; //大多数情况下,插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。 //插入排序本质:每步将一个待排序的元素,按照其排序吗的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素 //全部插入为止。 //对于有序或者基本有序的数据来说,插入排序要好得多。当数据有序时,while条件总是假,在这种情况下,算法运行只需要O(N)的时间,这 //对一个基本有序的文件进行排序是一个简单而有效地方法。 public class InsertSortApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayInsert ab=new ArrayInsert(10002); ab.insert(77); ab.insert(99); ab.insert(66); ab.insert(44); ab.insert(55); ab.insert(22); ab.insert(88); ab.insert(11); ab.insert(0); ab.insert(66); ab.insert(33); ab.display(); ab.InsertSort1(); ab.display(); } } class ArrayInsert{ int items; long[] array; ArrayInsert(int max){ this.items=0; array=new long[max]; } public void insert(long value){ array[items]=value; items++; } public void InsertSort1(){ int i,j; long temp; for(i=1;i<items;i++){ if(array[i]<array[i-1]){ temp=array[i]; j=i-1; do{ array[j+1]=array[j];j--; }while(j>=0&&temp<array[j]); array[j+1]=temp; } } } public void InsertSort2(){ int i,j; long temp; for(i=1;i<items;i++){ temp=array[i]; j=i; while(j>0&&array[j-1]>=temp){ array[j]=array[j-1]; j--; } array[j]=temp; } } public void display(){ for(int i=0;i<items;i++){ System.out.print(array[i]+" "); } System.out.println(); } }
相关文章推荐
- 基本排序算法(冒泡排序,选择排序,插入排序)后续[时间测试]
- 基本排序算法(冒泡排序,选择排序,插入排序)后续[时间测试]
- 笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算
- 三种基本排序算法-冒泡排序,选择排序,插入排序
- 菜鸟学编程之三:三种最基本排序算法的实现(冒泡排序、选择排序、直接插入排序)
- java基本排序算法-插入排序-快速排序-选择排序-冒泡排序
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- 三个简单、基本的排序算法---插入排序、选择排序、冒泡排序
- 基本排序算法(冒泡排序 选择排序 插入排序 快速排序 归并排序 基数排序 希尔排序)
- 算法_基本排序算法之冒泡排序,选择排序,插入排序和希尔排序
- 面试最基本的三种排序算法 冒泡排序 插入排序 选择排序
- 三个基本排序算法执行效率比较(冒泡排序,选择排序和插入排序)
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- C语言单链表的3种排序算法,插入排序,冒泡排序,选择排序
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 排序算法(插入排序、shell排序、冒泡排序、选择排序、合并排序、堆排序、快速排序、计数排序、基数排序、桶排序)
- 四种经典排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 常见排序算法——选择排序、冒泡排序、插入排序和原地排序
- C++ ------------排序算法(冒泡排序-快速排序-选择排序-插入排序-希尔排序)
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)