最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

2個(gè)java希爾排序示例

 更新時(shí)間:2014年05月07日 09:23:01   作者:  
java希爾排序示例,希爾排序是插入排序的一種類型,也可以用一個(gè)形象的叫法縮小增量法,需要的朋友可以參考下

java希爾排序

希爾排序是插入排序的一種類型,也可以用一個(gè)形象的叫法縮小增量法?;舅枷刖褪前岩粋€(gè)數(shù)組分為好幾個(gè)數(shù)組,有點(diǎn)像分治法,不過這里的劃分是用一個(gè)常量d來控制。

這個(gè)0<d<n,n為數(shù)組的長度。這個(gè)算法有了插入排序的速度,也可以算是一個(gè)改進(jìn)算法,在插入算法中,如果有一個(gè)最小的數(shù)在數(shù)組的最后面,用插入算法就會(huì)重最后一個(gè)

位置移動(dòng)到第一個(gè),這樣就會(huì)浪費(fèi)很大,使用這個(gè)改進(jìn)的希爾排序可以實(shí)現(xiàn)數(shù)據(jù)元素的大跨度的移動(dòng)。也就是這個(gè)算法的優(yōu)越之處。

復(fù)制代碼 代碼如下:

package cn.cqu.coce.xutao;

public class shell3 {
 public static void main(String args[]){
  int a[]={7,43,23,5,3,2,0,6,74,9};
  int n=a.length;
  for(int i=0;i<n;i++)
   System.out.print(a[i]+"\t");
  System.out.println();
     for(int gap=n/2;gap>0;gap/=2){
      for(int i=gap;i<n;i++){
       for(int j=i-gap;j>=0&&a[j]>a[j+gap];j-=gap){
        int temp=a[j+gap];
        a[j+gap]=a[j];
        a[j]=temp;
       }
      }
     }
  for(int i=0;i<n;i++)
   System.out.print(a[i]+"\t");
  System.out.println();
 }
}



第二個(gè)示例

復(fù)制代碼 代碼如下:

class Shell
{
    public void shell_sort(int [] arrays){
        for(int d=5;d>0;d=d-2){
            for(int c=0;c<arrays.length-d;c++){
                for(int i=c;i<arrays.length;i=i+d){
                    for(int j=i;j>0;j=j-d){
                        if(j<d)
                            break;
                        if(arrays[j]<arrays[j-d]){
                            int tmp;
                            tmp=arrays[j];
                            arrays[j]=arrays[j-d];
                            arrays[j-d]=tmp;

                        }
                    }
                }

            }
            snp(arrays);
        }

    }
    public void snp(int[] arrays){
        for(int i=0;i<arrays.length;i++){
            System.out.print(arrays[i]+" ");

        }
        System.out.println();
    }
    public static void main(String[] args)
    {
        Shell s=new Shell();
        int[] a={45,20,80,40,26,58,66,70};
        s.shell_sort(a);

    }
}

運(yùn)行結(jié)果:

復(fù)制代碼 代碼如下:

---------- java ----------
20 70 40 26 58 66 80
20 58 45 26 70 66 80
26 40 45 58 66 70 80

輸出完成 (耗時(shí) 0 秒) - 正常終止

相關(guān)文章

  • java字符串求并集的方法

    java字符串求并集的方法

    這篇文章主要介紹了java字符串求并集的方法,涉及Java字符串操作中union方法的使用,是Java字符串操作中非常實(shí)用的基本技巧,需要的朋友可以參考下
    2014-11-11
  • 最新評(píng)論

    定兴县| 故城县| 凤阳县| 游戏| 麟游县| 阿荣旗| 栖霞市| 阿尔山市| 黔江区| 英超| 彭州市| 韶山市| 凤凰县| 孝感市| 满城县| 邛崃市| 天气| 定安县| 金乡县| 卓资县| 海原县| 石家庄市| 杭州市| 中方县| 法库县| 延边| 孙吴县| 泽普县| 淄博市| 西平县| 沙河市| 和静县| 永吉县| 灵寿县| 广西| 定日县| 遂川县| 琼海市| 巴塘县| 即墨市| 青岛市|