成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java排序算法之——希爾排序

Enlightenment / 1505人閱讀

摘要:算法簡述希爾排序也叫作排序或縮小增量排序,據(jù)說是一個叫的人發(fā)明出來的,顧取名排序。這種排序是基于插入排序思想的,也比較適用于數(shù)據(jù)量大時。

算法簡述

希爾排序也叫作shell排序或縮小增量排序,據(jù)說是一個叫D.L.Shell的人發(fā)明出來的,顧取名shell排序。這種排序是基于插入排序思想的,也比較適用于數(shù)據(jù)量大時。

我剛開始看到時候?qū)τ诓迦肱判蛞彩前肫孔哟祝苯訉?dǎo)致我看不懂了,抓狂,so...我就去默默的補(bǔ)習(xí)一下插入排序嘍。

插入排序簡介

插入排序的核心思想是比較和插入,就是從第二個數(shù)開始,依次插入到前面合適的位置。排序步驟如下:

1. 首先對數(shù)組的前兩個數(shù)據(jù)進(jìn)行從小到大的排序
2. 接著將第3個數(shù)據(jù)與排序好的兩個數(shù)據(jù)進(jìn)行比較,插入合適的位置
3. 然后,將第4個數(shù)據(jù)插入已經(jīng)排好的前3個數(shù)據(jù)中
4. 不斷重復(fù)上述的過程,完成排序
代碼實現(xiàn)
private void insertSort(int[] a)
    {
        int i,j,t,h;
        for(i =1;i=0&&t

簡單的介紹了一下插入排序,下面就講一下這個希爾排序。

排序步驟
1.將有n個元素的數(shù)組分為n/2個數(shù)字序列,第1個數(shù)據(jù)和第n/2+1個數(shù)據(jù)為一對。。。
2.一次循環(huán)使每一個序列對排好順序(對每個序列使用插入排序算法,實質(zhì)是一種分組插入)
3.然后,再變?yōu)閚/4個序列,再次排序
4.不斷重復(fù)上述過程,隨著序列減少最后變?yōu)橐粋€,也就完成了整個排序。
實例講解

比如對{12,31,11,20,17,30}進(jìn)行希爾排序:

1. 第一次排序,首先將數(shù)組分為6/2=3個數(shù)字序列,第一個數(shù)據(jù)12和第四個數(shù)據(jù)20為一對,第二個數(shù)據(jù)和第五個數(shù)據(jù)為一對,第三個數(shù)據(jù)和第六個數(shù)據(jù)為一對,每一對進(jìn)行排序后數(shù)據(jù)為:12,17,11,20,31,30
2. 第二次排序,將數(shù)組劃分為6/4=1(這里取整),此時逐個對數(shù)據(jù)比較,按照插入排序算法進(jìn)行排序,排序后的數(shù)據(jù)為:11,12,17,20,30,31
代碼片段
private void shellSort(int[] a)
    {
        int i,j,h;
        int r,temp;
        int x = 0;
        for(r = a.length/2;r>=1;r/=2)
        {
            for(i = r;i=0&&temp

至此希爾排序就完成了,時間復(fù)雜度為O(nlog2n).

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64424.html

相關(guān)文章

  • 糊涂算法「八大排序」總結(jié)——用兩萬字,8張動圖,450行代碼跨過排序這道坎(建議收藏)

    摘要:今天,一條就帶大家徹底跨過排序算法這道坎,保姆級教程建議收藏。利用遞歸算法,對分治后的子數(shù)組進(jìn)行排序。基本思想堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)而設(shè)計的一種排序算法,堆排序是一種選擇排序,它的最壞,最好,平均時間復(fù)雜度均為,它也是不穩(wěn)定排序。 ...

    greatwhole 評論0 收藏0
  • 基本算法學(xué)習(xí)(一)希爾排序(JS)

    摘要:動態(tài)定義間隔序列參考來源詳細(xì)介紹了十種算法大家可以去學(xué)習(xí)下以后大概會盡量每天更新一個算法學(xué)習(xí)吧溫故而知新 參考書:嚴(yán)蔚敏-數(shù)據(jù)結(jié)構(gòu) 希爾排序(Shells Sort) 希爾排序又稱縮小增量排序,歸屬于插入排序一類,簡單來說,和我們的插入排序比,它更快. 奇妙的記憶點(diǎn): 內(nèi)排序(內(nèi)存排序就夠了) 不穩(wěn)定(排序后原始順序無法保證) 希爾排序重點(diǎn)在于分割. 基本思想: 將整個待排序記錄序...

    cooxer 評論0 收藏0
  • 排序算法Java)——那些年面試常見的排序算法

    摘要:下面會介紹的一種排序算法快速排序甚至被譽(yù)為世紀(jì)科學(xué)和工程領(lǐng)域的十大算法之一。我們將討論比較排序算法的理論基礎(chǔ)并中借若干排序算法和優(yōu)先隊列的應(yīng)用。為了展示初級排序算法性質(zhì)的價值,我們來看一下基于插入排序的快速的排序算法希爾排序。 前言   排序就是將一組對象按照某種邏輯順序重新排列的過程。比如信用卡賬單中的交易是按照日期排序的——這種排序很可能使用了某種排序算法。在計算時代早期,大家普遍...

    Harpsichord1207 評論0 收藏0
  • 七大排序算法總結(jié)(java)

    摘要:前面介紹了七大算法的思想與實現(xiàn)步驟,下面來做一個歸總。直到無序區(qū)中的數(shù)為零,結(jié)束排序。步驟以從小到大為例,排序數(shù)組大小為。比較完以后則排序結(jié)束。堆排序思想堆排序是采用樹的形式的數(shù)據(jù)結(jié)構(gòu)來進(jìn)行排序的,其中每一個堆都是完全二叉樹。 前面介紹了七大算法的思想與實現(xiàn)步驟,下面來做一個歸總。 排序方法 平均復(fù)雜度 最壞復(fù)雜度 最好復(fù)雜度 輔助空間 穩(wěn)定性 直接選擇排序 O(n^2...

    cartoon 評論0 收藏0
  • 希爾排序就這么簡單

    摘要:這時就用簡單插入排序?qū)?shù)列直至已序從直觀上看希爾排序就是把數(shù)列進(jìn)行分組不停使用插入排序,直至從宏觀上看起來有序,最后插入排序起來就容易了無須多次移位或交換。 一、希爾排序介紹 來源百度百科: 希爾排序(Shells Sort)是插入排序的一種又稱縮小增量排序(Diminishing Increment Sort),是直接插入排序算法的一種更高效的改進(jìn)版本。希爾排序是非穩(wěn)定排序算法。該方...

    paulli3 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<