靚麗時尚館

位置:首頁 > 健康生活 > 心理

希爾排序的步長怎麼取

心理1.5W
希爾排序的步長怎麼取

  希爾排序的思想是:先選擇一個小於排序數據個數n的整數di(稱為步長,一般為小於n的質數),將間隔di的數為一組,對每組的元素進行直接插入排序,即將需要排序的數據插入到已經排序好的序列中。當步長為1時,完成整個數據的排序。排序的流程為:

1、根據步長的個數,對於每個步長進行分組

2、對每組進行插入排序,主要操作如下:

1)如果待插入數據比前一個數據小,將該數據存儲到臨時遍歷temp中

2)將前面比他大的數據全部向後移動一位

3)再將temp的數據插入到最後移動的數據位置

給你到問題是,將標準輸入的n個整數採用希爾排序,步長取5,3,1,並需要顯示出每次需要插入的數,並完成該數據的排序。

輸入:標準輸入,輸入的第一行為整數的個數n值,第二行為n個整數,每個整數之間為一個空格。

輸出:標準輸出,輸出第一行依次輸出排序過程中需要插入的數,每個輸出數據之間使用一個空格隔開,第二行輸出排序後的序列,每個輸出數據之間使用一個空格隔開

標籤:步長 希爾