激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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
    
  

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中国毛片在线观看 | 宅男噜噜噜66一区二区 | 日本视频在线免费观看 | 高清国产在线 | 免费看成年人网站 | 99最新网址 | 日本残忍极度灌浣肠视频 | 欧美精品一区二区蜜臀亚洲 | 国产青草网 | 91超在线 | 成年人性视频 | 在线看免电影网站 | 99在线在线视频免费视频观看 | 依人在线视频 | 亚洲性在线视频 | a一级黄色毛片 | 日本精品久久久久 | 在线 日本 制服 中文 欧美 | 狠狠干b | 亚洲乱妇19p | 欧美一级片一区 | 国产精品成人免费一区久久羞羞 | 99re久久最新地址获取 | 一区二区三区在线观看免费视频 | 美女wc| 黄色网址在线视频 | 久久中文字幕在线观看 | 三级国产三级在线 | 7777网站| 亚洲成人精品视频 | 中文字幕欧美亚洲 | 成人一级免费 | 毛片视频网站 | 日本久久视频 | 成人综合区一区 | 日本在线播放一区二区 | 国产99久久久久 | 亚洲一区二区在线 | 亚洲国产视频在线 | 国产亚洲激情 | 日日狠狠久久 |