您的位置:首页 > 理论基础 > 数据结构算法

数据结构-插入排序 java实现

2014-11-15 09:04 330 查看
插入排序又可分为直接插入排序、希尔排序

1、直接插入排序:时间复杂度O(n^2)

public static void insertionSort(int[]a){
		int j;
		for(int p=1;p<a.length;p++){
			int temp=a[p];
			//这里是降序
			for(j=p;j>0&&temp<a[j-1];j--){
				a[j]=a[j-1];
				a[j-1]=temp;
			}
		}
	}


2、希尔排序:时间复杂度O(n^2),实际上是一种分组插入排序

public static void shellsort(int [] a){
               int j;
               for(int gap=a.length/2;gap>0;gap/=2){
		   for(int i=gap;i<a.length;i++){
			   int tmp=a[i];
			   int j=i;
			   for(j=i;j>=gap&&temp<a[j-gap];i-=gap){
				   a[j]=a[j-gap];
			   }
                            a[j]=temp;     
                         }
	   }
   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: