java排序算法

java排序算法

//三种排序插入排序  待续
	public void insertSort(int[] arry){//插入排序
		int j,i=1;
		int temp;//临时变量
		for(;i<arry.length;i++){
			temp=arry[i];
			for(j=i-1;j >=0 && arry[j]>temp;j--){//将较大数逐个后移
				arry[j+1] = arry[j];
			}
			arry[j+1]=temp;
		}
	}
	 public void twoInsertSort(int a[]) {//二叉插入排序算法
		 
		 for(int i=0;i<a.length;i++){
			 int temp = a[i];
			
			 int left=0;
			 int mid =0;
			 int right=i-1;
			 while(left<=right){
				  mid = (left + right) / 2;
	                if (temp < a[mid]) {
	                    right = mid - 1;
	                } else {
	                    left = mid + 1;
	                }
			 }
			 for ( int j = i - 1; j >= left; j--) {
	                a[j + 1] = a[j];
	            }
	            if (left != i) {
	                a[left] = temp;
	            }
	
		 }
	 }
	public void sellSort(int a[]){//希尔排序
		int dk = a.length/2;
		while(dk>=1){
			sellInsterSort(dk, a);
			dk=dk/2;
		}
	}
	public void sellInsterSort(int dk,int a[]){
		for (int i = dk; i < a.length; i++) {
            // 待插入元素
            int temp = a[i];
            int j;
            for (j = i - dk; j >= 0 && a[j] > temp; j = j-dk) {
                // 将大于temp的往后移动dk位
                a[j + dk] = a[j];
            }
            a[j + dk] = temp;
        }

	}
	public void display(){
		for(int a:array){
			System.out.print(a+"-");
		}
	}
}

chart.js/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值