為幫助廣大軟考中級軟件設計師考生更好備考,信管網特整理匯總了軟件設計師部分《案例分析》真題、答案及解析供考生查閱,并提供免費在線模擬答題、歷年真題免費下載等服務,了解軟件設計師更多備考信息請關注信管網。
相關推薦:
免費練習:軟件設計師考試題庫(模擬試題、章節(jié)練習、每日一練)
【說明】
希爾排序算法又稱最小增量排序算法,其基本思想是:
步驟1 :構造一個步長序列delta1、delta2...、deltak ,其中delta1=n/2 ,后面的每個delta是前一個的1/2 , deltak=1;
步驟2 :根據(jù)步長序列、進行k趟排序;
步驟3 :對第i趟排序,根據(jù)對應的步長delta,將等步長位置元素分組,對同一組內元素在原位置上進行直接插入排序。
【C代碼】
下面是算法的C語言實現(xiàn)。
(1)常量和變量說明
data:待排序數(shù)組data,長度為n,待排序數(shù)據(jù)記錄在data[0]、data[1]、...、data[n-1]中。
n:數(shù)組a中的元素個數(shù)。
delta:步長數(shù)組。
(2)C程序
#include
void shellsort(int data[ ], int n){
int *delta,k,i,t,dk,j;
k=n;
delta=(int *)nalloc(sizeof(int)*(n/2));
if(i=0)
do{
( 1 ) ;
delta[i++]=k;
}while ( 2 ) ;
i=0;
while((dk=delta[i])>0){
for(k=delta[i];k
if( ( 3 ) ) {
t=data[k];
for(j=k-dk;j>=0&&t
data[j+dk]=data[j];
}/*for*/
( 4 ) ; //data[j+dk]=t;
}/*if*/
++i;
}/*while*/
}
【問題1】(8分)
根據(jù)說明和c代碼,填充c代碼中的空(1) ~ (4)。
【問題2】(4分)
根據(jù)說明和c代碼,該算法的時間復雜度(5)O(n2) (小于、等于或大于)。該算法是否穩(wěn)定(6) ( 是或否)。
【問題3】(3分)
對數(shù)組(15、9、7、8、20、-1、 4)用希爾排序方法進行排序,經過di-趟排后得到的數(shù)組為(7)。
信管網參考答案:
【問題1】(8分)
(1) k=k/2
(2) k>1
(3) data[k]
(4) data[j+dk]=t
【問題2】 (4分)
(5)小于
(6)否
【問題3】(3分)
(7)(4,9,-1,8,20,7,15)
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |