Algs4-2.1.11希尔排序序列改为存数组
2.1.11将希尔排序中实时计算递增序列改为预先计算并存储在一个数组中。public class Shell2{??? public static void sort(Comparable[] a)??? {??????? int N=a.length;??????? int h=1;??????? int[] SN=new int[20];??????? int hMaxIndex=0;??????? while (h<N/3) ??????? {?????????? SN[hMaxIndex]=h;??????????? h=3*h+1;??????????? hMaxIndex++;??????? }??????? ??????? for (int hIndex=hMaxIndex;hIndex>0;hMaxIndex--)??????? {??????????? h=SN[hIndex];??????????? for (int i=h;i<N;i++)??????????? {??????????????? for (int j=i;j>=h && less(a[j],a[j-h]);j-=h)??????????????????? exch(a,j,j-h);??????????? }??????? }??? }??? ??? private static boolean less(Comparable v,Comparable w)??? { return v.compareTo(w)<0;}??? ??? private static void exch(Comparable[] a,int i,int j)??? {??????? Comparable t=a[i];??????? a[i]=a[j];??????? a[j]=t;??? }??? ??? private static void show(Comparable[] a)??? {??????? for (int i=0;i<a.length;i++)??????????? StdOut.print(a[i]+" ");??????? StdOut.println();??? }??? ??? public static boolean isSorted(Comparable[] a)??? {??????? for (int i=0;i<a.length;i++)??????????? if(less(a[i],a[i-1])) return false;??????? return true;??? }??? ?? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – Bootstrap文本框未拉伸全宽
- 如何在VIM中导航Ruby方法?
- angular – 如何在离子2中使用pdfmake?
- angular – Component是两个模块声明的一部分:AppRoutingM
- angular – Observable .catch不是一个函数
- angular2 table pipe ---orderby
- bash – 如何通过shell在外部文件中进行迭代?
- Linux Namespace : UTS
- 看懂论文的机器学习基本知识(四)--bootstrap
- ruby-on-rails – 如何设置dokku-persistent-storage的容量