什么是希爾排序?其排序過(guò)程是怎樣的?如果你對(duì)這些問題還不了解,那就趕緊來(lái)看看高頓小編整理的2024計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)高頻考點(diǎn)希爾排序的具體信息吧!
2024計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)高頻考點(diǎn):希爾排序
  一、含義
  希爾排序是插入排序的一種又稱“縮小增量排序”,是直接插入排序算法的一種更高效的改進(jìn)版本。希爾排序是非穩(wěn)定排序算法。該方法因D.L.Shell于1959年提出而得名。
  希爾排序是把記錄按下標(biāo)的一定增量分組,對(duì)每組使用直接插入排序算法排序;隨著增量逐漸減少,每組包含的關(guān)鍵詞越來(lái)越多,當(dāng)增量減至1時(shí),整個(gè)文件恰被分成一組,算法便終止。
  二、排序過(guò)程
  縮小增量
  希爾排序?qū)儆诓迦腩惻判?是將整個(gè)有序序列分割成若干小的子序列分別進(jìn)行插入排序。
  排序過(guò)程:先取一個(gè)正整數(shù)d1數(shù)組元素放一組,組內(nèi)進(jìn)行直接插入排序;然后取d2
  三趟結(jié)果
  04 13 27 38 49 49 55 65 76 97
  Shell排序
  Shell排序的算法實(shí)現(xiàn):
  1.不設(shè)監(jiān)視哨的算法描述
  void ShellPass(SeqList R,int d)
  {//希爾排序中的一趟排序,d為當(dāng)前增量
  for(i=d+1;i
  if(R[i].key
  R[0]=R<i>;j=i-d;//R[0]只是暫存單元,不是哨兵
  do{//查找R的插入位置
  R[j+d]=R[j];//后移記錄
  j=j-d;//查找前一記錄
  }while(j&gt;0&&R[0].key
  R[j+d]=R[0];//插入R到正確的位置上
  }//endif
  本文內(nèi)容整理自網(wǎng)絡(luò),僅供參考。
  以上就是【2024計(jì)算機(jī)考研數(shù)據(jù)結(jié)構(gòu)高頻考點(diǎn):希爾排序】的全部?jī)?nèi)容,如果你想要學(xué)習(xí)更多考研方面的知識(shí),歡迎大家前往高頓考研考試頻道!
  小編為2024考研的小伙伴們準(zhǔn)備了豐富的學(xué)習(xí)資料,點(diǎn)擊下方藍(lán)色圖片即可領(lǐng)取哦~
考研備考資料