亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sortstrategy.java

?? SortStrategy.java
?? JAVA
字號:
/**
 *  @(#) SortStrategy.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

/**
 *  @(#) SortStrategyConst.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public interface SortStrategyConst {
	public static final String HEAPSORT = "HeapSort";
	public static final String BUBBLESORT = "BubbleSort";
	public static final String INSERTSORT = "InsertSort";
	public static final String MERGESORT = "MergeSort";
	public static final String QUICKSORT = "QuickSort";
	public static final String SELECTSORT = "SelectSort";
	public static final String SHELLSORT = "ShellSort";
	
} 

/**
 *  @(#) SortStrategy.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public interface SortStrategy extends SortStrategyConst {
   public String getStrategyName();
   public void sort( double[] data );
}

/**
 *  @(#) AbstractSortStrategy.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public abstract class AbstractSortStrategy 
implements SortStrategy {
   
   protected String strategyName = null;
   
   public AbstractSortStrategy( String strategyName ) {
       this.strategyName = strategyName;
   }
   
   public String getStrategyName( ) {
       return strategyName;
   }
} 

/**
 *  @(#) NullSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class NullSort extends AbstractSortStrategy
implements SortStrategy {
	public NullSort() {
		super( NullSort.class.getName());
	}
	
	public void sort( double[] data ) {
		// do nothing
	}
} 

/**
 *  @(#) SortHelper.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class SortHelper {
   private SortHelper() {
   }
   
   public static void swap( double[] data, 
                            int i, int j ) {
      if ( i < 0 || j < 0 
        || i >= data.length 
        || j >= data.length ) {
           return;
      }
      double temp = data[i];
      data[i] = data[j];
      data[j] = temp;  
   }
   
   public static final double EPSILON = 1e-5;
   public static boolean isSmaller( double db1, 
                                    double db2 ) {
      return ( db2 - db1 > EPSILON); 
   }
   
   public static boolean isGreater( double db1, 
                                    double db2 ) {
      return ( db1 - db2 > EPSILON );
   }
   
   public static boolean isEqual( double db1, 
                                  double db2 ) {
      return ( db1 - db2 < EPSILON && db2 - db1 < EPSILON );
   }
   
   public static boolean isNotEqual( double db1, 
                                     double db2 ) {
      return ( db1 - db2 > EPSILON || db2 - db1 > EPSILON );
   }
   
   public static boolean isSmallerOrEqual( double db1, 
                                           double db2 ) {
      return ( db1 - db2 < EPSILON );
   }
   
   public static boolean isGreaterOrEqual( double db1, 
                                           double db2 ) {
      return ( db2 - db1 < EPSILON );
   }
   
}

/**
 *  @(#)SelectSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class SelectSort extends AbstractSortStrategy
implements SortStrategy {
	public SelectSort() {
	  super( SelectSort.class.getName());
	}
	
	public void sort( double[] data ) {
	  for ( int i = 0; i < data.length; i++) {
	    int minIndex = i;
	    for ( int j = data.length - 1; j > i; j-- ) {
	      if ( SortHelper.isSmaller( data[j], data[minIndex] )) {
	         minIndex = i;
	      }
	    }
	    SortHelper.swap( data, i, minIndex );
	  }
	}
} 

/**
 *  @(#) InsertSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class InsertSort extends AbstractSortStrategy
implements SortStrategy {
   public InsertSort() {
      super( InsertSort.class.getName());
   }
   
   public void sort( double[] data ) {
      for ( int i = 0; i < data.length; i++) {
         for ( int j = i; 
               j > 0 && SortHelper.isSmaller( data[j], data[j-1] );
               j--) {
           SortHelper.swap( data, j, j-1 );
        } 
      }
   }
} 

/**
 *  @(#)MergeSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class MergeSort extends AbstractSortStrategy
implements SortStrategy {
    public MergeSort() {
      super( MergeSort.class.getName());
    }
    
    public void sort( double[] data ) {
      mergesort( data, 0, data.length-1);   
    }
    
    private void mergesort( double[] data, int left, int right ) {
      if ( left < right ) {
        int mid = ( left + right ) / 2;
        mergesort( data, left, mid );
        mergesort( data, mid + 1, right );
        merge( data, left, mid, right );
      }
    }
    
    private void merge(double[] data, int left, int mid, int right ) {
    	int i = left;
    	int j = mid + 1;
    	int k = left;
    	double[] temp = new double[data.length];
    	while ( i <= mid && j <= right ) {
    	   if ( SortHelper.isSmallerOrEqual( data[i], data[j] )) {
    	      temp[k] = data[i];
    	      i++;
    	      k++;
    	   } else {
    	      temp[k] = data[j];
    	      j++;
    	      k++;
    	   }
    	}
    	while ( i <= mid ) {
    	      temp[k] = data[i];
    	      i++;
    	      k++;
    	}
    	while ( j <= right ) {
    	      temp[k] = data[j];
    	      j++;
    	      k++;
    	}
    	for ( i = left; i <= right; i++ ){
    	      data[i] = temp[i];
    	}
    }
} 

/**
 *  @(#) BubbleSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class BubbleSort extends AbstractSortStrategy
implements SortStrategy {
   public BubbleSort() {
     super( BubbleSort.class.getName());
   }
   
   public void sort( double[] data ) {
     for ( int i = 0; i < data.length; i++){
        for ( int j = data.length-1; j > i; j-- ) {
          if ( SortHelper.isSmaller( data[j], data[j-1] ) ) {
            SortHelper.swap( data, j, j-1 );
          }
        }
     }
   }
} 

/**
 * @(#) HeapSort.java
 * @author quickpoint At HUST
 * @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class HeapSort extends AbstractSortStrategy
implements SortStrategy {
    public HeapSort() {
      super( HeapSort.class.getName());
    }
    
    public void sort( double[] data ) {
      for (int i = (data.length-1) / 2; i > 0; i-- ) {
        adjustHeap( data, i, data.length-1 );
      }
      SortHelper.swap( data, 0, data.length - 1 );
      for (int i = data.length - 1; i > 0; i-- ) {
          adjustHeap( data, 0, i );
          SortHelper.swap( data, 0, i );
        }
     }
     
     private void adjustHeap( double[] data, int left, int right ) {
       double temp = data[left];
       for ( int j = 2 * left; j <= right; j *= 2 ) {
          if ( j < right && SortHelper.isSmaller( data[j], data[j+1] )) j++;

          if ( SortHelper.isGreaterOrEqual( temp, data[j] )) break;
          data[left] = data[j];
          left = j;
       }
       data[left] = temp;
     }   
} 

/**
 *  @(#)QuickSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class QuickSort extends AbstractSortStrategy 
implements SortStrategy {
    public QuickSort() {
      super( QuickSort.class.getName());
    }
    
    public void sort( double[] data ) {
       quicksort( data, 0, data.length - 1 ); 
    }
    
    public void quicksort( double[] data, int left, int right ) {
       int i = left;
       int j = right;
       double pivot = data[left];
       while ( i < j ) {
          while ( i < j && SortHelper.isSmaller( pivot, data[j] )) j--;
          if ( i < j ) data[i++] = data[j];
          while ( i < j &&SortHelper.isGreater( pivot, data[i])) i++;
          if ( i < j ) data[j--] = data[i];
       }
       data[i] = pivot;
       if ( i - left > 1 ) quicksort( data, left, i - 1 );
       if ( right - j > 1 ) quicksort( data, j+1, right );
    }
    
} 

/**
 *  @(#)ShellSort.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;
 
public class ShellSort extends AbstractSortStrategy
implements SortStrategy {	
	
  public ShellSort() {
     super( ShellSort.class.getName());
  }
  public void sort( double[] data ) {
     for ( int i = data.length / 2; i > 2; i /= 2 ) {
         for (int j = 0; j < i; j++ ) {
           insertSort( data, j, i );
         }
      }
     insertSort( data, 0, 1 );
  }
  private void insertSort( double[] data, int start, int inc ) {
    for ( int i = start + inc; i < data.length; i += inc ) {
      for ( int j = i; j >= inc && SortHelper.isSmaller( data[j], data[j-inc])
;
            j -= inc ) {
         SortHelper.swap( data, j, j - inc );
      }
    }
  }
} 

/**
 *  @(#) SortStrategyFactory.java
 *  @author quickpoint At HUST
 *  @version 1.0 2006-05-24
 */
package edu.hust.sort;

public class SortStrategyFactory {
	private static SortStrategyFactory instance = new SortStrategyFactory();
	
	public static final String PREFIX = "edu.hust.sort.";
	
	public static SortStrategyFactory getInstance() {
		return instance;
	}
	
	private SortStrategyFactory() {
	}
	
	public SortStrategy renderSortStrategyByName( String name ) {
		if ( null == name ) {
			return new NullSort();
		}
		
		if ( !name.startsWith(PREFIX)) {
			name = PREFIX + name;
		}
		
		try {
		  return 
			( SortStrategy ) ( Class.forName( name ).newInstance());
		} catch ( ClassNotFoundException ex ) {
			ex.printStackTrace();
			return new NullSort();
		} catch ( Exception ex ) {
			ex.printStackTrace();
			return new NullSort();
		}
	}
} 


/**
 * @(#) SortMain.java
 * @author quickpoint At HUST
 * @version 1.0 2006-05-24 
 */
package edu.hust.sort;
 
public class SortMain {
  public static void main( String[] args ) {
     double[] data = { 15.0, 23.3, 25.1, 25.3, 22.1, 35.3};
     SortStrategy strategy = SortStrategyFactory.getInstance()
                          .renderSortStrategyByName( SortStrategy.HEAPSORT );

     strategy.sort( data );
     System.out.println( strategy.getStrategyName());
     for ( int i = 0; i < data.length; i++){
        System.out.println( data[i] );
     }   
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美女一区二区| 免费看精品久久片| 99久久久国产精品免费蜜臀| 中文字幕成人在线观看| 成年人国产精品| 国产精品国产三级国产普通话99 | 亚洲欧美自拍偷拍| 99久久久久久99| 亚洲自拍偷拍综合| 日韩精品一区二区三区四区视频| 精品一区二区三区在线播放视频 | 欧美一区二区三区电影| 久久精品99国产国产精| 久久亚洲欧美国产精品乐播| 成人18视频在线播放| 一区二区三区毛片| 日韩一区二区三区观看| 国产一区在线看| 亚洲天堂成人在线观看| 欧美四级电影网| 另类小说综合欧美亚洲| 国产精品入口麻豆九色| 欧美三级在线视频| 久国产精品韩国三级视频| 中文字幕乱码日本亚洲一区二区| 99久久精品国产导航| 视频一区二区不卡| 国产欧美1区2区3区| 欧美中文字幕亚洲一区二区va在线| 免费精品视频最新在线| 欧美激情中文字幕| 欧美日韩小视频| 国产盗摄一区二区三区| 亚洲成av人片观看| 久久精品人人爽人人爽| 欧美日韩一二区| 成人精品视频一区| 男人的j进女人的j一区| 亚洲日本一区二区三区| 欧美一区二区三区成人| av电影天堂一区二区在线| 蜜乳av一区二区| 亚洲一区免费观看| 亚洲国产成人私人影院tom| 欧美精品日韩一本| 色综合天天狠狠| 国产激情视频一区二区在线观看 | 蜜臀久久99精品久久久久久9| 国产精品乱码妇女bbbb| 欧美sm美女调教| 欧美日韩一区二区在线视频| 成人污污视频在线观看| 麻豆91在线播放免费| 亚洲国产精品一区二区久久恐怖片| 国产亚洲欧美日韩日本| 精品理论电影在线观看| 在线观看91精品国产麻豆| 日本高清不卡视频| 国产成人日日夜夜| 日韩电影免费一区| 久久se精品一区二区| 国产亚洲精品aa午夜观看| 精品久久久久久久久久久久久久久 | 免费在线看成人av| 亚洲婷婷综合久久一本伊一区| 在线免费精品视频| 国产成人综合亚洲网站| 日韩专区欧美专区| 自拍偷拍欧美激情| 久久婷婷色综合| 91精品国产日韩91久久久久久| 99久久99久久综合| 国产成人在线色| 韩国三级中文字幕hd久久精品| 亚洲欧洲精品天堂一级| 国产欧美一区二区三区在线老狼| 欧美一级高清片| 精品污污网站免费看| 99国产精品久久久| 懂色av一区二区三区免费观看| 久久成人av少妇免费| 丝袜亚洲另类丝袜在线| 亚洲综合无码一区二区| 亚洲欧洲成人自拍| 日韩欧美aaaaaa| 亚洲精品一线二线三线| 在线免费精品视频| 91麻豆精东视频| 91在线porny国产在线看| 国产91精品免费| 国产精品一区二区久久不卡| 美脚の诱脚舐め脚责91| 日韩精品一级二级| 日韩av午夜在线观看| 婷婷综合另类小说色区| 天堂va蜜桃一区二区三区漫画版| 天堂va蜜桃一区二区三区漫画版| 亚洲图片欧美一区| 香蕉加勒比综合久久| 天天影视色香欲综合网老头| 视频在线观看一区| 日韩av一区二区三区四区| 奇米精品一区二区三区四区| 免费在线观看视频一区| 久久99久久99| 极品尤物av久久免费看| av在线不卡电影| 色94色欧美sute亚洲线路一久| 91啪亚洲精品| 欧美三级电影一区| 日韩一级片在线播放| 日韩影视精彩在线| 美女脱光内衣内裤视频久久网站| 捆绑变态av一区二区三区| 国产精品1024久久| 91一区二区在线| 欧美偷拍一区二区| 日韩一级精品视频在线观看| 久久久久亚洲蜜桃| 1024成人网| 亚洲chinese男男1069| 日韩不卡一区二区三区| 国产盗摄视频一区二区三区| 色婷婷香蕉在线一区二区| 3d动漫精品啪啪一区二区竹菊| 日韩精品一区二区三区视频播放 | 亚洲综合激情另类小说区| 国产精品乱人伦| 中文在线一区二区| 亚洲国产色一区| 韩国精品久久久| 99re热这里只有精品视频| 91精品国产入口在线| 国产欧美va欧美不卡在线| 亚洲国产另类av| 国产裸体歌舞团一区二区| 91丝袜美女网| 日韩三级免费观看| 久久久精品免费网站| 奇米色777欧美一区二区| 99这里只有久久精品视频| 欧美精品1区2区| 国产精品视频九色porn| 婷婷综合久久一区二区三区| 国产69精品久久99不卡| 91精品综合久久久久久| 亚洲美女屁股眼交3| 奇米精品一区二区三区四区 | 国产成人精品免费| 欧美日韩国产大片| 亚洲欧美国产77777| 久草在线在线精品观看| 色婷婷av一区二区三区之一色屋| 精品乱码亚洲一区二区不卡| 一个色在线综合| 成人激情电影免费在线观看| 欧美一区二区三区在线看| 一区二区三区四区中文字幕| 久久精品国产99| 欧美性大战久久久久久久蜜臀 | 国产日韩欧美综合在线| 亚洲人成在线观看一区二区| 精品一区二区在线视频| 欧洲视频一区二区| 国产老肥熟一区二区三区| 日韩三级av在线播放| 亚洲国产视频网站| 色一情一乱一乱一91av| 国产精品视频yy9299一区| 免费高清视频精品| 欧美xxxxxxxx| 美女视频黄久久| 5566中文字幕一区二区电影| 一区二区三区.www| 色综合一个色综合亚洲| 中文字幕视频一区二区三区久| 美女视频黄 久久| 精品国产免费一区二区三区香蕉| 日韩不卡一区二区| 欧美男生操女生| 天堂在线亚洲视频| 欧美精品久久一区二区三区| 亚洲在线视频网站| 国产精品一区二区三区网站| 日本一区二区电影| 国产不卡免费视频| 日本一区二区不卡视频| 国产精品一区二区久激情瑜伽| 久久久三级国产网站| 国产一区二区在线影院| 精品日韩成人av| 东方欧美亚洲色图在线| 欧美国产97人人爽人人喊| www.亚洲人| 亚洲永久精品大片| 欧美四级电影在线观看| 日本大胆欧美人术艺术动态| 欧美怡红院视频| 亚洲福利视频三区| 欧美一区二区播放|