欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

希爾排序的算法代碼

 更新時(shí)間:2013年03月09日 21:56:02   作者:  
希爾排序也是一種插入排序方法,實(shí)際上是一種分組插入方法。

希爾排序的時(shí)間復(fù)雜度為O(n*log2n) 空間復(fù)雜度為O(1)是一種不穩(wěn)定的排序算法

思想:希爾排序也是一種插入排序方法,實(shí)際上是一種分組插入方法。先取定一個(gè)小于n的整數(shù)d1作為第一個(gè)增量,把表的全部記錄分成d1個(gè)組,所有距離為d1的倍數(shù)的記錄放在同一個(gè)組中,在各組內(nèi)進(jìn)行直接插入排序;然后,取第二個(gè)增量d2(<d1),重復(fù)上述的分組和排序,直至所取的增量dt=1(dt<dt-1<…<d2<d1),即所有記錄放在同一組中進(jìn)行直接插入排序?yàn)橹埂?nbsp;  

復(fù)制代碼 代碼如下:

void ShellSort(int* data ,int length)
{
    if( data == NULL || length <= 0 )
        return;

    int d = length/2;  //步長(zhǎng)
    while( d )
    {
        for(int i = 0 ; i < d ; ++i) //根據(jù)步長(zhǎng)分成組,對(duì)每組進(jìn)行插入排序
        {
            //插入排序
            for(int j = i+d; j <length ; j +=d )
            {
                if( data[j] < data[j -d])
                {
                    int temp = data[j]; //哨兵
                    int k = j-d;
                    for(; k >=0&& temp < data[k]; k -=d)
                    {
                        data[k+d] =data[k];
                    }
                    data[k+d] =temp;
                }
            }
        }
        d = d/2;
    }
}

相關(guān)文章

  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(28)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(28)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07
  • Spring Boot如何實(shí)現(xiàn)定時(shí)任務(wù)的動(dòng)態(tài)增刪啟停詳解

    Spring Boot如何實(shí)現(xiàn)定時(shí)任務(wù)的動(dòng)態(tài)增刪啟停詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot如何實(shí)現(xiàn)定時(shí)任務(wù)的動(dòng)態(tài)增刪啟停的相關(guān)資料,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JavaI/O深入學(xué)習(xí)之輸入和輸出

    JavaI/O深入學(xué)習(xí)之輸入和輸出

    這篇文章主要介紹了JavaI/O深入學(xué)習(xí)之輸入和輸出,Java類(lèi)庫(kù)中的I/O類(lèi)分成輸入和輸出兩部分,可以在JDK文檔里的類(lèi)層次結(jié)構(gòu)中查看到。,需要的朋友可以參考下
    2019-06-06
  • javaWeb用戶(hù)權(quán)限控制簡(jiǎn)單實(shí)現(xiàn)過(guò)程

    javaWeb用戶(hù)權(quán)限控制簡(jiǎn)單實(shí)現(xiàn)過(guò)程

    這篇文章主要為大家詳細(xì)介紹了javaWeb用戶(hù)權(quán)限控制簡(jiǎn)單實(shí)現(xiàn)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java變量的初始化及靜態(tài)方法的實(shí)現(xiàn)

    Java變量的初始化及靜態(tài)方法的實(shí)現(xiàn)

    這篇文章主要介紹了Java變量的初始化及靜態(tài)方法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java靜態(tài)代理的含義及用法

    java靜態(tài)代理的含義及用法

    在本篇文章里小編給大家整理的是一篇關(guān)于java靜態(tài)代理的含義及用法,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-06-06
  • java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法

    java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法

    這篇文章主要介紹了java獲取百度網(wǎng)盤(pán)真實(shí)下載鏈接的方法,涉及java針對(duì)URL操作及頁(yè)面分析的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java中的Static class詳解及實(shí)例代碼

    Java中的Static class詳解及實(shí)例代碼

    這篇文章主要介紹了 Java中的Static class詳解及實(shí)例代碼的相關(guān)資料,在Java中我們可以有靜態(tài)實(shí)例變量、靜態(tài)方法、靜態(tài)塊。類(lèi)也可以是靜態(tài)的,需要的朋友可以參考下
    2017-03-03
  • Java8?LocalDateTime時(shí)間日期類(lèi)使用實(shí)例詳解

    Java8?LocalDateTime時(shí)間日期類(lèi)使用實(shí)例詳解

    本文從 LocalDateTime 類(lèi)的創(chuàng)建、轉(zhuǎn)換、格式化與解析、計(jì)算與比較以及其他操作幾個(gè)方面詳細(xì)介紹了 LocalDateTime 類(lèi)在 Java 8 中的使用,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • springboot集成fastDfs過(guò)程代碼實(shí)例

    springboot集成fastDfs過(guò)程代碼實(shí)例

    這篇文章主要介紹了springboot集成fastDfs過(guò)程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論