心理

當前位置 /首頁/完美生活/心理/列表

希爾排序的步長怎麼取

希爾排序的步長怎麼取

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

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

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

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

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

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

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

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

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

TAG標籤:步長 希爾 #