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

java數(shù)據(jù)結(jié)構(gòu)之希爾排序

 更新時(shí)間:2017年11月09日 16:42:15   作者:阿木俠  
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之希爾排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進(jìn)版本。希爾排序是非穩(wěn)定排序算法。

希爾排序是基于插入排序的以下兩點(diǎn)性質(zhì)而提出改進(jìn)方法的:

        插入排序在對(duì)幾乎已經(jīng)排好序的數(shù)據(jù)操作時(shí),效率高,即可以達(dá)到線性排序的效率;
        但插入排序一般來(lái)說(shuō)是低效的,因?yàn)椴迦肱判蛎看沃荒軐?shù)據(jù)移動(dòng)一位。

實(shí)現(xiàn)

       先取一個(gè)正整數(shù)d1 < n, 把所有相隔d1的記錄放一組,每個(gè)組內(nèi)進(jìn)行直接插入排序;然后d2 < d1,重復(fù)上述分組和排序操作;直至di = 1,即所有記錄放進(jìn)一個(gè)組中排序?yàn)橹埂?/p>

簡(jiǎn)單例子:

import java.util.Arrays;
public class Demo4 {
 public static void main(String[] args) {
 int old[] = { 2, 5, 3, 8, 6, 9, 4 };
 int i,j,temp; 
 int gap = 1; 
 int len = old.length; 
 while (gap < len / 3) { 
  gap = gap * 3 + 1; 
 } 
 for (; gap > 0; gap /= 3) { 
  for (i = gap; i < len; i++) { 
   temp = old[i]; 
   for (j = i - gap; j >= 0 && old[j] > temp; j -= gap) { 
    old[j + gap] = old[j]; 
   } 
   old[j + gap] = temp; 
  } 
 } 
 System.out.println("new:"+Arrays.toString(old)); 
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot Starter依賴原理與實(shí)例詳解

    SpringBoot Starter依賴原理與實(shí)例詳解

    SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,應(yīng)用者只需要在maven中引入starter依賴,SpringBoot就能自動(dòng)掃描到要加載的信息并啟動(dòng)相應(yīng)的默認(rèn)配置。starter讓我們擺脫了各種依賴庫(kù)的處理,需要配置各種信息的困擾
    2022-09-09
  • Quarkus中的依賴注入DI和面向切面aop編程

    Quarkus中的依賴注入DI和面向切面aop編程

    這篇文章主要為大家介紹了Quarkus中的依賴注入DI和面向切面aop的編程規(guī)范思想,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決

    springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決

    這篇文章主要介紹了springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring中property-placeholder的使用與解析詳解

    Spring中property-placeholder的使用與解析詳解

    本篇文章主要介紹了Spring中property-placeholder的使用與解析詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-05-05
  • java返回json請(qǐng)求中文變成問號(hào)的問題及解決

    java返回json請(qǐng)求中文變成問號(hào)的問題及解決

    這篇文章主要介紹了java返回json請(qǐng)求中文變成問號(hào)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 從零實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Spring Bean容器的代碼案例

    從零實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Spring Bean容器的代碼案例

    Spring是一個(gè)非常流行的Java?Web開發(fā)框架,它提供了強(qiáng)大的依賴注入、面向切面編程、聲明式事務(wù)管理等功能,為開發(fā)者提供了高效、快速地構(gòu)建Web應(yīng)用程序的工具,在這篇文章中,咱們將一步一步地構(gòu)建一個(gè)簡(jiǎn)單的SpringBean容器,需要的朋友可以參考下
    2023-06-06
  • SpringBoot超詳細(xì)講解Thymeleaf模板引擎

    SpringBoot超詳細(xì)講解Thymeleaf模板引擎

    這篇文章主要分享了Spring Boot整合使用Thymeleaf,Thymeleaf是新一代的Java模板引擎,類似于Velocity、FreeMarker等傳統(tǒng)引擎,關(guān)于其更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-07-07
  • MyBatis-plus更新對(duì)象時(shí)將字段值更新為null的實(shí)現(xiàn)方式

    MyBatis-plus更新對(duì)象時(shí)將字段值更新為null的實(shí)現(xiàn)方式

    mybatis-plus在執(zhí)行更新操作,當(dāng)更新字段為 空字符串 或者 null 的則不會(huì)執(zhí)行更新,如果要將指定字段更新null,可以通過以下三種方式實(shí)現(xiàn),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2023-10-10
  • 詳解在SpringBoot中使用MongoDb做單元測(cè)試的代碼

    詳解在SpringBoot中使用MongoDb做單元測(cè)試的代碼

    這篇文章主要介紹了詳解在SpringBoot中使用MongoDb做單元測(cè)試的代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java中int初始化可以為0,但不能為NULL問題

    java中int初始化可以為0,但不能為NULL問題

    這篇文章主要介紹了java中int初始化可以為0,但不能為NULL問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評(píng)論