国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Enlightenment / 1506人閱讀

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

算法簡(jiǎn)述

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

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

插入排序簡(jiǎn)介

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

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

簡(jiǎn)單的介紹了一下插入排序,下面就講一下這個(gè)希爾排序。

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

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

1. 第一次排序,首先將數(shù)組分為6/2=3個(gè)數(shù)字序列,第一個(gè)數(shù)據(jù)12和第四個(gè)數(shù)據(jù)20為一對(duì),第二個(gè)數(shù)據(jù)和第五個(gè)數(shù)據(jù)為一對(duì),第三個(gè)數(shù)據(jù)和第六個(gè)數(shù)據(jù)為一對(duì),每一對(duì)進(jìn)行排序后數(shù)據(jù)為:12,17,11,20,31,30
2. 第二次排序,將數(shù)組劃分為6/4=1(這里取整),此時(shí)逐個(gè)對(duì)數(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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64424.html

相關(guān)文章

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

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

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

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

    cooxer 評(píng)論0 收藏0
  • 排序算法Java)——那些年面試常見(jiàn)的排序算法

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

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

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

    cartoon 評(píng)論0 收藏0
  • 希爾排序就這么簡(jiǎn)單

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

    paulli3 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<