希爾排序的算法代碼
希爾排序的時(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;
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)文章
Springboot logback-spring.xml無(wú)法加載問(wèn)題
這篇文章主要介紹了Springboot logback-spring.xml無(wú)法加載問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
從內(nèi)存方面解釋Java中String與StringBuilder的性能差異
我們通常會(huì)發(fā)現(xiàn)使用StringBuffer或StringBuilder創(chuàng)建出來(lái)的字符串在拼接時(shí)回避String要來(lái)得快,尤其是StringBuilder,本文就從內(nèi)存方面解釋Java中String與StringBuilder的性能差異,需要的朋友可以參考下2016-05-05
elasticsearch節(jié)點(diǎn)的transport請(qǐng)求發(fā)送處理分析
這篇文章主要為大家介紹了elasticsearch節(jié)點(diǎn)的transport請(qǐng)求發(fā)送處理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
如何使用MyBatis框架實(shí)現(xiàn)增刪改查(CRUD)操作
本文主要介紹了如何使用MyBatis框架實(shí)現(xiàn)增刪改查(CRUD)操作。首先介紹了MyBatis框架的基本概念和使用方法,然后分別介紹了如何使用MyBatis實(shí)現(xiàn)增刪改查操作。最后,通過(guò)一個(gè)簡(jiǎn)單的示例演示了如何使用MyBatis框架實(shí)現(xiàn)CRUD操作。2023-05-05
使用idea搭建spring項(xiàng)目,利用xml文件的形式進(jìn)行配置方式
本文介紹了如何使用SpringIOC和SpringDI的思想開(kāi)發(fā)一個(gè)打印機(jī)模擬程序,實(shí)現(xiàn)了靈活配置彩色墨盒或灰色墨盒以及打印頁(yè)面大小的功能,通過(guò)創(chuàng)建接口和實(shí)現(xiàn)類(lèi),并在配置文件中進(jìn)行依賴注入,實(shí)現(xiàn)了控制反轉(zhuǎn)2024-11-11
SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收的詳細(xì)步驟
這篇文章主要介紹了SpringBoot整合RocketMQ實(shí)現(xiàn)消息發(fā)送和接收功能,我們使用主流的SpringBoot框架整合RocketMQ來(lái)講解,使用方便快捷,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
Java?基于Hutool實(shí)現(xiàn)DES加解密示例詳解
這篇文章主要介紹了Java基于Hutool實(shí)現(xiàn)DES加解密,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
基于Mock測(cè)試Spring MVC接口過(guò)程解析
這篇文章主要介紹了基于Mock測(cè)試Spring MVC接口過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

