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

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

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
    
  

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩色综合 | 高清毛片一区二区三区 | 亚洲国产精品综合一区在线 | 亚洲男人的天堂网 | 精品在线视频一区 | 全程粗语对白视频videos | 99国产精品免费视频 | 无码一区二区三区视频 | www红色一片在线观看版 | 操破苍穹在线 | 亚洲国产精品91 | 成人影院免费看 | 欧美人伦禁忌.5 | 91短视频在线播放 | 日本免费v片一二三区 | 奇米9999| 欧美一区二区三区免费观看视频 | 亚洲精品www久久久久久久软件 | 国产精品女同久久免费观看 | 亚洲精品国产在线观看 | 国产二区精品视频 | 国产精品嫩草影院一二三区 | 国产精品视频一区二区三区不卡 | 九九久久国产精品大片 | 青青青青青操 | x8x8在线永久免费观看 | 好姑娘完整版在线观看中文 | 国产精品一区二区三区免费 | 无遮18禁在线永久免费观看挡 | 99精品免费在线 | 亚洲视频中文 | 视频免费观看在线播放高清 | 日本免费在线 | 古代翁熄系小说辣文 | 好大好爽好硬我要喷水了 | 日韩免费在线视频观看 | 国产精品青青青高清在线观看 | 俄罗斯美女破苞 | 国产精品亚洲午夜一区二区三区 | 色老板影视 | 青青青手机在线观看 |