zoukankan      html  css  js  c++  java
  • 希尔排序----java实现

    思路:希尔排序是分组基础上的直接插入排序,给定的一个步长数组,每个小组先直接插入排序。虽然有四次循环,但是每次循环次数少。

    package com.sheepmu.text;
    
    import java.util.Arrays;
    import java.util.Comparator;
      /*   
      * @author sheepmu
      */ 
    public class Sort {
    	 public static void main(String[] args){
    		 int[] arr={64,34,25,87,12,38,56,46,14,77,92,23};
    		 int[] d={6,3,1};
    		 int numOfD=d.length;
    		 shellSort(arr,d,numOfD);
    		 
    	 }	 	 
    	 public static  void shellSort(int[] arr,int[] d,int numOfD){
    		 int span=0;
    		 int len=arr.length;
    		 int temp=0;
    		 int t=0;
    		 for(int i=0;i<numOfD;i++){
    			 span=d[i];
    			 System.out.println("span--->"+span);
    			 for(int j=0;j<span;j++){
    				  
    				 for(int k=j;k<len-span;k+=span){//必须要!!---k<len-span----不然后面的 temp=arr[k+span]要数组越界。
    					 //这也是直接插入排序的一种方式,比如以前直接插入排序的i<len-1;
    					 temp=arr[k+span];
    					 t=k;
    					 while(t>-1&&temp<arr[t]){
    						 
    						 arr[t+span]=arr[t];
    						 t=t-span;
    					 }
    					 arr[t+span]=temp;
    				 }
    			 }
    			 System.out.println(Arrays.toString(arr));
    		 }
    	 }
    }	 
     


  • 相关阅读:
    phpajax高级篇
    一天学会ajax (php环境)
    php生成静态文件的方法
    MongoDB查询文档
    MongoDB删除文档
    MongoDB索引管理
    MongoDB插入文档
    MongoDB排序记录
    MongoDB 更新文档
    mongoDB 固定集合(capped collection)
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3766905.html
Copyright © 2011-2022 走看看