摘要:希賽網(wǎng)5月10日-11日舉行了2025上半年程序員第二期??蓟顒?dòng),現(xiàn)將2025上半年程序員第二期模考試卷(應(yīng)用技術(shù))分享給大家。有需要的同學(xué)可以在本文資料處下載??荚嚲淼腜DF版本。
希賽網(wǎng)2025上半年程序員第二期??蓟顒?dòng)已結(jié)束,現(xiàn)將2025上半年程序員第二期??荚嚲恚☉?yīng)用技術(shù))分享給大家。??荚嚲鞵DF版本可在本文文首本文資料處或文末的資料下載欄目下載。
2025上半年程序員第二期??荚嚲恚☉?yīng)用技術(shù))部分試題如下:
1、
N有有序整數(shù)數(shù)組存放在a中,利用二分查找法查找整數(shù)key在數(shù)組中的位置,若找到,則輸出其值和對應(yīng)的下標(biāo),反之,則輸出“Not be found!”
二分查找的基本思想是:將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時(shí)查找不成功。
問題內(nèi)容:請完成下列流程圖,使該流程圖實(shí)現(xiàn)二分查找。
【流程圖】
試題答案:
(1)N-1
(2)high=nid-1
(3)key>a[mid]
(4)low=mid+1
(5)k=mid
(6)k>=0
最終流程圖如下圖所示:
2、
用快速排序中的劃分思想進(jìn)行實(shí)現(xiàn)如下功能:在n個(gè)元素的整型數(shù)組中,確定其第i(1≤i≤n)小的數(shù)。
具體算法如下:
首先以第一個(gè)數(shù)為基準(zhǔn),進(jìn)行快速排序??焖倥判蚝螅瑫曰鶞?zhǔn)值為界,左側(cè)的元素都比基準(zhǔn)值要小,右側(cè)的元素比基準(zhǔn)值大。且排序完成后可以確定基準(zhǔn)值是排在第k位,判斷k與i的關(guān)系,如果i<k則下次只需對快速排序結(jié)果中排在基準(zhǔn)值左側(cè)的進(jìn)行下一次遞歸;如果k=i,表示剛好查找到第i小的元素;如果i>k則下次只需對快速排序結(jié)果中排在基準(zhǔn)值右側(cè)的進(jìn)行下一次遞歸。C代碼實(shí)現(xiàn)如下(請將空白區(qū)域代碼補(bǔ)充完整)。
【C代碼】
#include <stdio.h>
#include<stdlib.h>
int partition(int *a,int low,int high)
{//以第一個(gè)為基準(zhǔn),利用快速排序找到它排序后所對應(yīng)的下標(biāo)
int pivot=a[low];
while(low<high)
{
while(low<high&&a[high]>=pivot)
high--;
a[low]=a[high];
while(low<high&&a[low]<=pivot)
low++;
a[high]=a[low];
}
a[low]=pivot;
return low;
}
int select(int *a,int low,int high,int i)
{//select函數(shù)實(shí)現(xiàn)查找a數(shù)組中,從low~high范圍內(nèi)找第i個(gè)最小值
if(low==high)
return ( 1 );//當(dāng)只含有一個(gè)元素值,返回這個(gè)值
int pivot= partition(a,low,high);//通過快速排序查找第一個(gè)元素的下標(biāo)位置
int k= ( 2 );//確定第一個(gè)元素值從小到大排第幾
if(k==i)
return ( 3 );//剛好一致時(shí),返回對應(yīng)元素值
else if(i<k )
return ( 4 ); //i<k時(shí),用遞歸找其左側(cè)范圍內(nèi)第i個(gè)最小值
else
return ( 5 ); //反之,用遞歸找其右側(cè)范圍內(nèi)第i個(gè)最小值
}
int main()
{
int a[]={1,34,5,16,37,28,9,13,26};
int result= select(a,0,sizeof(a)/sizeof(int)-1,2);
printf("%d\n",result);
return 0;
}
問題內(nèi)容:
試題答案:
(1)a[low]或者a[high]
(2)pivot-low+1
(3)a[pivot]
(4)select(a,low,pivot-1,i)
(5)select(a,pivot+1,high,i-k)
軟考科目怎么選?
微信掃碼下方二維碼找答案
▼ ▼ ▼
熱門:系統(tǒng)集成項(xiàng)目管理工程師備考 | 2025下半年軟考高級選科
推薦:系統(tǒng)規(guī)劃與管理師網(wǎng)絡(luò)課堂 | 2025下半年軟考報(bào)名時(shí)間及入口
備考:軟考學(xué)習(xí)資料 | 軟考在線題庫 | 軟考AI大模型
課程:系統(tǒng)規(guī)劃與管理師報(bào)考指南 | PMP課程 | 25下半年系統(tǒng)集成備考經(jīng)驗(yàn)
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題