国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java 復習003 之排序篇

2019-11-14 21:02:08
字體:
來源:轉載
供稿:網友
java 復習003 之排序篇

由java 復習003跳轉過來的C語言實現版見some-sort-algorithms

  1. 快速排序(不穩定 O(n log n))

    packagevell.bibi.sort_algorithms;importvell.bibi.sort_algorithms.util.vell001;publicclassQuickSort{publicstaticintpartition(int[]a,intlow,inthigh){intcup;cup=a[low];//保存關鍵字while(high>low){while(high>low&&a[high]>=cup)high--;//由high開始找,找到小于關鍵字的位置a[low]=a[high];while(high>low&&a[low]<=cup)low++;//由low開始找,找到大于關鍵字的位置a[high]=a[low];}a[low]=cup;returnlow;}publicstaticvoidsort(int[]a,intlow,inthigh){if(high<=low)return;intmid=partition(a,low,high);//分成兩個區sort(a,low,mid-1);sort(a,mid+1,high);}publicstaticvoidmain(String[]args){int[]a=vell001.getRandomList(10,100);vell001.PRintList(a);sort(a,0,a.length-1);vell001.printList(a);}}
  2. 冒泡排序 (穩定 O(n2))

    packagevell.bibi.sort_algorithms;importvell.bibi.sort_algorithms.util.vell001;publicclassBubbleSort{publicstaticvoidsort(int[]a){inti,j,cup;booleanflag;for(i=a.length,flag=true;flag&&i>0;i--){flag=false;for(j=0;j<i-1;j++){if(a[j]>a[j+1]){cup=a[j];a[j]=a[j+1];a[j+1]=cup;flag=true;}}}}publicstaticvoidmain(String[]args){int[]a=vell001.getRandomList(10,100);vell001.printList(a);sort(a);vell001.printList(a);}}
  3. 希爾排序(不穩定 O(n log n))

    packagevell.bibi.sort_algorithms;importvell.bibi.sort_algorithms.util.vell001;publicclassShellSort{publicstaticvoidsort(int[]a){inti,j,d,cup;for(d=a.length/2;d>0;d=d/2){for(i=d;i<a.length;i++){cup=a[i];for(j=i-d;j>=0&&a[j]>cup;j=j-d){a[j+d]=a[j];}a[j+d]=cup;}}}publicstaticvoidmain(String[]args){int[]a=vell001.getRandomList(10,100);vell001.printList(a);sort(a);vell001.printList(a);}}
  4. 堆排序(不穩定 O(n log n))

    packagevell.bibi.sort_algorithms;importvell.bibi.sort_algorithms.util.vell001;publicclassHeapSort{publicstaticvoidheapAdjust(int[]a,intfather,intlength){intchild,cup;for(child=father*2+1,cup=a[father];child<length;father=child,child=father*2+1){if(child+1<length&&a[child+1]>a[child])child++;if(a[child]>cup){a[father]=a[child];a[child]=cup;}elsebreak;}}publicstaticvoidsort(int[]a){intcup;for(inti=a.length/2;i>=0;i--){heapAdjust(a,i,a.length);}for(inti=a.length-1;i>0;i--){cup=a[0];a[0]=a[i];a[i]=cup;heapAdjust(a,0,i);}}publicstaticvoidmain(String[]args){int[]a=vell001.getRandomList(10,100);vell001.printList(a);sort(a);vell001.printList(a);}}
  5. 歸并排序(穩定 O(n log n) 需要O(n)額外空間)

    packagevell.bibi.sort_algorithms;importvell.bibi.sort_algorithms.util.vell001;publicclassMergeSort{publicstaticvoidmerge(int[]a,intlow,intmid,inthigh){inti=low,j=mid,k=0;int[]cup=newint[high-low];while(i<mid&&j<high){if(a[i]<=a[j])cup[k++]=a[i++];elsecup[k++]=a[j++];}while(i<mid)cup[k++]=a[i++];while(j<high)cup[k++]=a[j++];for(k=0;k<cup.length;k++){a[low+k]=cup[k];}}publicstaticvoidsort(int[]a,intlow,inthigh){if(high-low<=1)return;intmid=(high+low)/2;sort(a,low,mid);sort(a,mid,high);merge(a,low,mid,high);}publicstaticvoidmain(String[]args){int[]a=vell001.getRandomList(10,100);vell001.printList(a);sort(a,0,a.length);vell001.printList(a);}}
  6. vell001.java (我的小工具庫)

    packagevell.bibi.sort_algorithms.util;publicclassvell001{publicstaticvoidprintList(int[]a){for(inti=0;i<a.length;i++){System.out.print(a[i]+"");}System.out.println();}publicstaticint[]getRandomList(intn,intmax){int[]a=newint[n];for(inti=0;i<n;i++){a[i]=(int)(Math.random()*max);}returna;}}

原文地址:http://vview.ml/2014/04/13/some-sort-algorithms-java.htmlwritten byVell Bibiposted atVBlog


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙江县| 宾阳县| 澎湖县| 巧家县| 白山市| 磐安县| 凤城市| 东山县| 江达县| 南召县| 深泽县| 达孜县| 珲春市| 佳木斯市| 临江市| 屯昌县| 襄垣县| 县级市| 丰县| 宁陵县| 甘德县| 安新县| 常州市| 铁岭县| 邳州市| 鄂伦春自治旗| 武强县| 阿拉善盟| 呼图壁县| 康马县| 佳木斯市| 叶城县| 镇雄县| 宁津县| 托克托县| 靖州| 苗栗县| 闵行区| 锡林郭勒盟| 卫辉市| 龙南县|