亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

用Java實現希爾排序的示例

2019-11-26 15:54:21
字體:
來源:轉載
供稿:網友
一.理論準備
 希爾排序(Shell Sort)是插入排序的一種,是針對直接插入排序算法的改進,是將整個無序列分割成若干小的子序列分別進行插入排序,希爾排序并不穩定。該方法又稱縮小增量排序,因DL.Shell于1959年提出而得名。
基本思想:先取一個小于n的整數d1作為第一個增量,把文件的全部記錄分成d1個組。所有距離為d1的倍數的記錄放在同一個組中。先在各組內進行直接插入排序;然后,取第二個增量d2<d1重復上述的分組和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有記錄放在同一組中進行直接插入排序為止。
希爾排序的時間性能優于直接插入排序的原因:
①當文件初態基本有序時直接插入排序所需的比較和移動次數均較少。
②當n值較小時,n和n2的差別也較小,即直接插入排序的最好時間復雜度O(n)和最壞時間復雜度0(n2)差別不大。
③在希爾排序開始時增量較大,分組較多,每組的記錄數目少,故各組內直接插入較快,后來增量di逐漸縮小,分組數逐漸減少,而各組的記錄數目逐漸增多,但由于已經按di-1作為距離排過序,使文件較接近于有序狀態,所以新的一趟排序過程也較快。
 因此,希爾排序在效率上較直接插人排序有較大的改進。
增量序列的選擇:Shell排序的執行時間依賴于增量序列。
好的增量序列的共同特征(查到的資料都這么講):
① 最后一個增量必須為1;
② 應該盡量避免序列中的值(尤其是相鄰的值)互為倍數的情況。     
看到了這個,我想試試希爾排序,就學學。
復制代碼 代碼如下:

public class ShellSort {
 public static void main(String[] args) {

  int[] arr = new int[]{44,33,99,10,30,20,59,78,23,48};
  System.out.print("排序前:");
  for(int o: arr) {
   System.out.print(o+" ");
  }
  System.out.println();
  shellSort(arr);
  System.out.print("排序后:");
  for(int o: arr) {
   System.out.print(o+" ");
  }
  System.out.println();
 }
 private static void shellSort(int[] arr) {

  int j;
  int len = arr.length;
  for(int val=len>>1; val>0; val>>=1) {
   //下面是對本次的所有分組做直接插入排序
   for(int i=val; i<len; i++) {
    int temp = arr[i];
    /*
     * 為什么每次都用temp比較呢?
     * 因為直接插入就是找到temp的合適位置。
     * 為什么temp<arr[j-val]這個條件可以放在for內呢?
     * 因為原來的組內數據已經有序,找到位置就停止便是。
     * 不甚理解的去看直接插入排序吧。
     */
    for(j=i; j>=val&&temp<arr[j-val]; j-=val) {
     /*
      * 為什么是arr[j-val]不是arr[j]呢?
      * 因為j=i開始的,而且條件是j>=val&&temp<arr[j-val]
      */
     arr[j] = arr[j-val];
    }
    /*
     * 注意不是arr[i] = temp
     * 直接插入排序也是這樣的。
     * 為什么呢?
     * 因為j是位置,i是待插入元素
     */
    arr[j] = temp;
   }
  }
 }
}

三.問題
希爾排序一定正確么?換句話說如何選取增量序列才能保證正確(包括長度、值)?是的,最后一次只要保證增量是1就ok(不管序列長度,只不過效率就低了),若是序列只有1,那就是直接插入排序了,不知道對否。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频999| xxxx性欧美| 久久深夜福利免费观看| 日本一区二区在线播放| 不卡av在线播放| 爱福利视频一区| 中文字幕亚洲无线码a| 亚洲欧美日韩天堂| 国产噜噜噜噜久久久久久久久| 国产精品免费观看在线| 欧洲成人免费视频| 欧美亚洲国产另类| 欧美激情视频一区| 成年无码av片在线| 成人看片人aa| 夜夜嗨av一区二区三区免费区| 在线播放国产精品| 国产精品久久久久99| 国产精品成人在线| 亚洲第一页在线| 国产精品丝袜视频| 国产有码在线一区二区视频| 黑人巨大精品欧美一区二区一视频| 精品香蕉在线观看视频一| 亚洲成年网站在线观看| 国产日韩欧美中文在线播放| 欧美一级免费看| 91美女高潮出水| 亚洲乱码一区二区| 国产精品精品久久久| 国产精品久久久久久久av大片| 亚洲国产一区二区三区在线观看| 91精品国产91久久| 日韩电影中文字幕| 亚洲欧美中文日韩在线| 亚洲黄色在线观看| 国产999精品久久久影片官网| 久久精品久久久久久国产 免费| 日韩视频精品在线| 国产成人自拍视频在线观看| 久久久久免费视频| 亚洲www在线| 成人黄色免费在线观看| 日韩精品在线免费| 久久成人国产精品| 国产日韩欧美在线| 不用播放器成人网| 精品欧美国产一区二区三区| 国产精品对白刺激| 日韩av电影在线播放| 91av在线播放| 九九精品视频在线| 国产精品成人播放| 亚洲全黄一级网站| 国产欧美久久一区二区| 亚洲欧美变态国产另类| 欧美激情在线有限公司| 色老头一区二区三区在线观看| 免费91麻豆精品国产自产在线观看| 亚洲精品久久久久国产| 国产精品第一区| 欧美疯狂性受xxxxx另类| 国产精品日韩欧美大师| 精品久久香蕉国产线看观看gif| 97视频在线观看视频免费视频| 亚洲乱码国产乱码精品精天堂| 亚洲成人av片| 热久久免费视频精品| 日韩在线欧美在线国产在线| 国产一区二区日韩| 国产精品国语对白| 韩国日本不卡在线| 欧美视频中文字幕在线| 激情亚洲一区二区三区四区| 国产精品久久久久久久一区探花| 国产精品偷伦视频免费观看国产| 在线视频免费一区二区| 69影院欧美专区视频| 国外日韩电影在线观看| 国产在线视频不卡| 国产精品小说在线| 欧美日韩在线一区| 精品无人国产偷自产在线| 欧美在线性视频| 中文字幕亚洲在线| 国产999视频| 欧美日韩中文字幕在线| 影音先锋欧美精品| 国产精品日日摸夜夜添夜夜av| 国产精品免费福利| 欧美在线亚洲在线| 亚洲午夜未删减在线观看| 97视频国产在线| 久久久久久久国产精品| 国产激情久久久| 亚洲护士老师的毛茸茸最新章节| 爱福利视频一区| 欧美小视频在线观看| 国语自产偷拍精品视频偷| 日韩经典第一页| 日韩av在线一区| 日韩成人在线视频网站| 91在线直播亚洲| 欧美激情第6页| 国产精品亚洲片夜色在线| 久久精品中文字幕一区| www.国产一区| 欧美丰满少妇xxxxx做受| 亚洲图片在线综合| 国产精品网址在线| 国产一区二区三区在线看| 大胆欧美人体视频| 国产亚洲免费的视频看| 国产视频在线观看一区二区| 综合久久五月天| 国产亚洲精品美女久久久久| 国产精品日韩欧美综合| 伊人久久男人天堂| 91社影院在线观看| 国产精品久久久久久一区二区| 成人激情视频在线播放| 日韩av在线网页| 91久久久久久久久久| 久久精品国产久精国产思思| 国产精品久久久久高潮| 日韩欧美成人精品| 91日韩在线播放| 欧美极品美女视频网站在线观看免费| 国产精品女人久久久久久| 欧美视频在线视频| 国产午夜精品免费一区二区三区| 富二代精品短视频| 久久天堂av综合合色| 欧美黑人极品猛少妇色xxxxx| 国产精品电影久久久久电影网| 国产在线999| 精品久久久久久久久久| 国产精品一二三视频| 91精品久久久久久久| 91久久精品国产| 亚洲丝袜在线视频| 亚洲成人网久久久| 欧美激情一区二区三级高清视频| 97国产精品视频人人做人人爱| 亚洲精品美女在线观看播放| 国产亚洲欧洲高清| 欧美亚洲成人免费| 亚洲国内精品在线| www日韩中文字幕在线看| 欧美伊久线香蕉线新在线| 亚洲影影院av| 国产精品久久久999| 亚洲图片在区色| 亚洲欧洲美洲在线综合| 亚洲精品美女久久久| 国产精品久久久久久久久久东京| 亚洲国产精品一区二区久| 日本aⅴ大伊香蕉精品视频| 亚洲美女在线视频| 精品国产一区二区三区久久| 欧美国产日韩中文字幕在线| 69久久夜色精品国产69乱青草| 91精品国产自产在线观看永久| 久久久成人精品视频|