<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    插入排序:

    package org.rut.util.algorithm.support;

    import org.rut.util.algorithm.SortUtil;
    /**
    * @author treeroot
    * @since 2006-2-2
    * @version 1.0
    */
    public class InsertSort implements SortUtil.Sort{

    ???? /* (non-Javadoc)
    ????? * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
    ????? */
    ???? public void sort(int[] data) {
    ???????? int temp;
    ???????? for(int i=1;i<data.length;i++){
    ???????????? for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){
    ???????????????? SortUtil.swap(data,j,j-1);
    ???????????? }
    ???????? }????????
    ???? }

    }


    冒泡排序:

    package org.rut.util.algorithm.support;

    import org.rut.util.algorithm.SortUtil;

    /**
    * @author treeroot
    * @since 2006-2-2
    * @version 1.0
    */
    public class BubbleSort implements SortUtil.Sort{

    ???? /* (non-Javadoc)
    ????? * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
    ????? */
    ???? public void sort(int[] data) {
    ???????? int temp;
    ???????? for(int i=0;i<data.length;i++){
    ???????????? for(int j=data.length-1;j>i;j--){
    ???????????????? if(data[j]<data[j-1]){
    ???????????????????? SortUtil.swap(data,j,j-1);
    ???????????????? }
    ???????????? }
    ???????? }
    ???? }

    }


    選擇排序:

    package org.rut.util.algorithm.support;

    import org.rut.util.algorithm.SortUtil;

    /**
    * @author treeroot
    * @since 2006-2-2
    * @version 1.0
    */
    public class SelectionSort implements SortUtil.Sort {

    ???? /*
    ????? * (non-Javadoc)
    ????? *
    ????? * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
    ????? */
    ???? public void sort(int[] data) {
    ???????? int temp;
    ???????? for (int i = 0; i < data.length; i++) {
    ???????????? int lowIndex = i;
    ???????????? for (int j = data.length - 1; j > i; j--) {
    ???????????????? if (data[j] < data[lowIndex]) {
    ???????????????????? lowIndex = j;
    ???????????????? }
    ???????????? }
    ???????????? SortUtil.swap(data,i,lowIndex);
    ???????? }
    ???? }

    }


    改進后的歸并排序:

    package org.rut.util.algorithm.support;

    import org.rut.util.algorithm.SortUtil;

    /**
    * @author treeroot
    * @since 2006-2-2
    * @version 1.0
    */
    public class ImprovedMergeSort implements SortUtil.Sort {

    ???? private static final int THRESHOLD = 10;

    ???? /*
    ????? * (non-Javadoc)
    ????? *
    ????? * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
    ????? */
    ???? public void sort(int[] data) {
    ???????? int[] temp=new int[data.length];
    ???????? mergeSort(data,temp,0,data.length-1);
    ???? }

    ???? private void mergeSort(int[] data, int[] temp, int l, int r) {
    ???????? int i, j, k;
    ???????? int mid = (l + r) / 2;
    ???????? if (l == r)
    ???????????? return;
    ???????? if ((mid - l) >= THRESHOLD)
    ???????????? mergeSort(data, temp, l, mid);
    ???????? else
    ???????????? insertSort(data, l, mid - l + 1);
    ???????? if ((r - mid) > THRESHOLD)
    ???????????? mergeSort(data, temp, mid + 1, r);
    ???????? else
    ???????????? insertSort(data, mid + 1, r - mid);

    ???????? for (i = l; i <= mid; i++) {
    ???????????? temp[i] = data[i];
    ???????? }
    ???????? for (j = 1; j <= r - mid; j++) {
    ???????????? temp[r - j + 1] = data[j + mid];
    ???????? }
    ???????? int a = temp[l];
    ???????? int b = temp[r];
    ???????? for (i = l, j = r, k = l; k <= r; k++) {
    ???????????? if (a < b) {
    ???????????????? data[k] = temp[i++];
    ???????????????? a = temp[i];
    ???????????? } else {
    ???????????????? data[k] = temp[j--];
    ???????????????? b = temp[j];
    ???????????? }
    ???????? }
    ???? }

    ???? /**
    ????? * @param data
    ????? * @param l
    ????? * @param i
    ????? */
    ???? private void insertSort(int[] data, int start, int len) {
    ???????? for(int i=start+1;i<start+len;i++){
    ???????????? for(int j=i;(j>start) && data[j]<data[j-1];j--){
    ???????????????? SortUtil.swap(data,j,j-1);
    ???????????? }
    ???????? }
    ???? }


    堆排序:

    package org.rut.util.algorithm.support;

    import org.rut.util.algorithm.SortUtil;

    /**
    * @author treeroot
    * @since 2006-2-2
    * @version 1.0
    */
    public class HeapSort implements SortUtil.Sort{

    ???? /* (non-Javadoc)
    ????? * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
    ????? */
    ???? public void sort(int[] data) {
    ???????? MaxHeap h=new MaxHeap();
    ???????? h.init(data);
    ???????? for(int i=0;i<data.length;i++)
    ???????????? h.remove();
    ???????? System.arraycopy(h.queue,1,data,0,data.length);
    ???? }

    ????? private static class MaxHeap{?????????
    ????????
    ???????? void init(int[] data){
    ???????????? this.queue=new int[data.length+1];
    ???????????? for(int i=0;i<data.length;i++){
    ???????????????? queue[++size]=data[i];
    ???????????????? fixUp(size);
    ???????????? }
    ???????? }
    ?????????
    ???????? private int size=0;

    ???????? private int[] queue;
    ????????????????
    ???????? public int get() {
    ???????????? return queue[1];
    ???????? }

    ???????? public void remove() {
    ???????????? SortUtil.swap(queue,1,size--);
    ???????????? fixDown(1);
    ???????? }
    ???????? //fixdown
    ???????? private void fixDown(int k) {
    ???????????? int j;
    ???????????? while ((j = k << 1) <= size) {
    ???????????????? if (j < size && queue[j]<queue[j+1])
    ???????????????????? j++;
    ???????????????? if (queue[k]>queue[j]) //不用交換
    ???????????????????? break;
    ???????????????? SortUtil.swap(queue,j,k);
    ???????????????? k = j;
    ???????????? }
    ???????? }
    ???????? private void fixUp(int k) {
    ???????????? while (k > 1) {
    ???????????????? int j = k >> 1;
    ???????????????? if (queue[j]>queue[k])
    ???????????????????? break;
    ???????????????? SortUtil.swap(queue,j,k);
    ???????????????? k = j;
    ???????????? }
    ???????? }

    ???? }

    }

    posted on 2007-06-10 18:47 jadmin 閱讀(79) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 4455永久在线观免费看| 久久av免费天堂小草播放| 最近免费mv在线电影| 亚洲国产精品成人久久| 三级片免费观看久久| 亚洲国产成人精品女人久久久 | 国产91精品一区二区麻豆亚洲| 久久精品国产亚洲AV| 国产在线98福利播放视频免费| 亚洲日韩在线中文字幕综合 | 亚洲娇小性色xxxx| 歪歪漫画在线观看官网免费阅读| 亚洲欧洲日产国码在线观看| 国产亚洲免费的视频看| 成全视成人免费观看在线看| 亚洲理论电影在线观看| 久久精品电影免费动漫| 亚洲免费闲人蜜桃| 国内一级一级毛片a免费| 久久精品国产亚洲AV| 国产亚洲精品资在线| 男女作爱在线播放免费网站| 亚洲欧洲在线观看| 国产成人午夜精品免费视频| 亚洲AV无码专区在线电影成人 | 久久久久久免费视频| 亚洲男人天堂2018av| 免费日韩在线视频| 全黄大全大色全免费大片| 国产最新凸凹视频免费| 九九综合VA免费看| 91亚洲国产在人线播放午夜| 最近中文字幕无吗免费高清| 日韩毛片免费一二三| 久久综合日韩亚洲精品色| 无码国产精品久久一区免费 | 国产免费一区二区视频| 亚洲人成网站色在线观看| 亚洲精品视频免费观看| 亚欧免费视频一区二区三区| 国产亚洲视频在线观看网址 |