一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 算法之希爾排序詳解及實現代碼

java 算法之希爾排序詳解及實現代碼

2020-08-22 10:53Java教程網 Java教程

這篇文章主要介紹了java 算法之希爾排序詳解及實現代碼的相關資料,需要的朋友可以參考下

java 算法希爾排序

一、思想

希爾排序:使數組中任意間隔為h的元素都是有序的。在進行排序的時候,如果h很大,我們就能將元素移動到很遠的地方,為實現更小的h有序創造方便。用這種方式,對任意以1結尾的h序列,我們都能夠將數據排序; 

 二、概念

h有序數組:任意間隔為h的元素都是有序的數組; 

三、高效原因

對于大規模亂序數組插入排序很慢,因為它只會交換相鄰的元素,因此元素只能一點一點地從數組的一端移動到另一段;

  希爾排序更高效的原因:它權衡了子數組的規模和有序性,在排序之初,各個子數組都很短;在排序之后子數組都是部分有序的,這兩種情況很適合插入排序;  

四、代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * 希爾排序
 
 * @author pengcx
 
 */
public class Shell extends Sort { 
  public static void main(String[] args) { 
    String[] a = { "d", "a", "w", "b", "q" }; 
    Shell.sort(a); 
    show(a); 
  
  
  /**
  * 排序數組a
  
  * @param a
  *      排序的數組a
  */
  protected static void sort(Comparable[] a) { 
    int N = a.length; 
    int h = 1
    while (h < N / 3) { 
      h = 3 * h + 1
    
  
    while (h >= 1) { 
      for (int i = 0; i < N; i++) { 
        for (int j = i; j >= h && less(a[j], a[j - h]); j -= h) { 
          exch(a, j, j - h); 
        
      
      h = h / 3
    
  

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人狂躁女人下面狂叫图片 | 给我一个黄色网址 | 国产一级毛片潘金莲的奶头 | 暖暖的韩国免费观看 | 久久se视频精品视频在线 | 韩国三级视频网站 | 99超级碰碰成人香蕉网 | 国内精品99 | 国产自产一区c | 国产99视频精品免费视频7 | 免费观看一级特黄三大片视频 | 99热精品在线播放 | 精品无人区一区二区三区 | 日本三级s级在线播放 | 91一个人的在线观看www | 精品无码一区二区三区中文字幕 | 日韩福利一区 | 91制片厂果冻传媒杨柳作品 | 精品国产精品国产偷麻豆 | 娇妻被老外疯狂调教 | 久久精品黄AA片一区二区三区 | 亚洲人尿尿 | 免费被黄网站在观看 | 奇米影视中文字幕 | 狠狠做五月深爱婷婷天天综合 | 亚洲国产精品嫩草影院久久 | 欧美白虎逼 | 亚洲天堂在线视频观看 | 国产一区二区三区免费在线视频 | 把美女屁股眼扒开图片 | 青青青手机视频 | 高清视频在线播放ww | 黄网久久 | 99精品国产美女福到在线不卡 | 冰山美人调教耻辱h | 4hu影院永久在线播放 | 国产美女久久精品香蕉69 | 美女扒开胸罩露出奶 | 精品一成人岛国片在线观看 | 99久久免费国产精品热 | 99香蕉网|