亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - 希爾排序的疑問

瀏覽:110日期:2023-10-30 18:01:28

問題描述

public static void sort(long[] arr){int h = 1; // 初始化間隔// 計算最大間隔while(h < arr.length / 3){ h = 3 * h + 1;}while(h > 0){ long temp = 0; for(int i = h; i < arr.length; i++){temp = arr[i]; // temp等于數組第i個元素的值int j = i;while(j > h - 1 && arr[j - h] > temp){ arr[j] = arr[j - h]; j-=h;}arr[j] = temp; } // 下一個h值 h = (h - 1) / 3;} }

疑問:while(j > h - 1 && arr[j - h] > temp) 這行代碼,j > h - 1; 不懂為啥 j > 0 會出現數組越界異常,而 j > h - 1 就不會。

@奔跑如風 ,能幫忙看看嗎?謝謝~

問題解答

回答1:

j > h - 1 && arr[j - h] > temp

這兩句合起來看,你的j>0無法保證j - h是大于等于0的。

回答2:

我也覺得可能是j>0無法滿足j-h>=0的情況。你可以把arr數組開的很大,如果還錯的話那就肯定是這個原因,但是從代碼上看,我覺得j-h始終是大于等于0的。回頭幫你調試下分析分析。

標簽: java
相關文章:
主站蜘蛛池模板: 91在线短视频| 最新在线观看精品国产福利片 | 欧美亚洲中日韩中文字幕在线 | 91福利一区二区在线观看 | 国产成人a毛片在线 | 中文字幕色 | 久久精品色 | 1024在线观看 | 亚洲色图综合图片 | 国产欧美激情一区二区三区 | 国产片免费观看 | 性感美女香蕉视频 | 国产精品美女网站在线看 | 亚洲人成网国产最新在线 | 亚洲网站在线免费观看 | 青青草国产三级精品三级 | 蜜桃视频一区二区在线观看 | 美国一级片网站 | 91中文字幕在线观看 | 伊人精品在线 | 国产一区视频在线播放 | 久久www免费人成看片入口 | 五月天婷婷网亚洲综合在线 | 亚洲欧美日本人成在线观看 | 香蕉视频在线网站 | 亚洲欧美久久 | 欧美中文字幕一二三四区 | 国产v欧美v日韩在线观看 | asian极品呦女xx农村 | 成年人黄色片视频 | 18禁片一级毛片视频播放免费看 | 国产淫语对白在线视频 | 请以你的名字呼唤我免费观看 | 国产一区中文字幕 | 亚洲男人的天堂网站 | 亚洲草逼 | jizjizjiz亚洲人| 中文字幕午夜乱理片 | 五月激激激综合网色播免费 | 国产妇女性爽视频免费 | 韩国福利影视一区二区三区 |