久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java如何實現插入排序算法

142次閱讀
沒有評論

共計 1061 個字符,預計需要花費 3 分鐘才能閱讀完成。

這篇文章主要介紹了 java 如何實現插入排序算法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

    插入排序,這種排序在平時生活中很常見,打撲克時拿到凌亂的手牌捋順序,整理手上大大小小的鈔票等等。

    插入即是將目標元素插入到已經排序好的元素之中。

    所以需要兩層循環。第一層循環取各個為排序的元素,第二層循環將要排序的元素插入到正確的位置。

    這么說好像挺簡單。其實對于第二層循環將元素插入到正確的位置。我覺得有兩種方法。第一種,將要插入的元素使用冒泡的方法兩兩比較循環找到正確的位置,另一種是比較要排序的元素和各個已經排序的元素,得到正確的角標,最后實現插入。

    對于第一種方法,感覺這不像是插入,因為他循環比較并且是通過移動獲得正確的位置的。第二種方法由于只是比較大小,最后通過插入到正確的位置而結束。效率比第一種提高一倍。

    那么看代碼實現吧

    第一種實現,效率地下

@Override
 public void sort(int[] a) {
 int len=a.length;
 for(int i=1;i i++){ // 首先是最外層循環,表示插入多少次
 int j=i-1;// 已經排序好的部分的右端點
 while(j =0 SortUtils.less(a[j+1], a[j])){// 開始比較
 SortUtils.exch(a, j, j+1);// 交換要排序的元素和已經排序好的元素
 j--;
 }

    第二種實現,效率較高

@Override
 public void sort(int[] a) {
 int len=a.length;
 for(int i=1;i i++){ // 首先是最外層循環,表示插入多少次
 int j=i-1;// 已經排序好的部分的右端點
 int e=a[i];// 首先將要排序的元素儲存起來
 while(j =0 SortUtils.less(e, a[j])){// 開始比較
 a[j+1]=a[j]; // 單單移動元素,比上面一種方法快捷
 j--; // 循環找到要排序元素的正確位置  j+1 
 a[j+1]=e;
// 為什么是  j+1 
// 因為內層 while 循環結束條件是找到第一個比要插入元素小的數組元素, 這個元素的角標即是 j
// 所以要插入元素的正確位置就是  j+1
 }

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“java 如何實現插入排序算法”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1061字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乌鲁木齐市| 嵩明县| 阳新县| 托克逊县| 三亚市| 安多县| 读书| 迭部县| 阿瓦提县| 资中县| 德化县| 峡江县| 新晃| 永福县| 海宁市| 安西县| 广德县| 仁布县| 兴化市| 凤冈县| 尚志市| 兴安县| 盐山县| 弋阳县| 九寨沟县| 瑞昌市| 株洲县| 陆良县| 曲靖市| 凤翔县| 彭水| 原平市| 扎兰屯市| 双辽市| 托克托县| 宣化县| 广宗县| 吴堡县| 扎兰屯市| 镇巴县| 宁化县|