亚洲AV乱码一区二区三区女同,欧洲在线免费高清在线a,中文字幕丝袜四区,老少配老妇熟女中文高清

<s id="38axe"><nobr id="38axe"></nobr></s><abbr id="38axe"><u id="38axe"></u></abbr>

<sup id="38axe"></sup>
    <acronym id="38axe"></acronym>
  • <s id="38axe"><abbr id="38axe"><ins id="38axe"></ins></abbr></s>
    
    
        <s id="38axe"></s>

        2025上半年程序員第二期??荚嚲恚☉?yīng)用技術(shù))

        程序員 責(zé)任編輯:陳湘君 2025-05-13

        添加老師微信

        備考咨詢

        加我微信

        摘要:希賽網(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)二分查找。

        【流程圖】

        d1.png

        試題答案:

        (1)N-1

        (2)high=nid-1

        (3)key>a[mid]

        (4)low=mid+1

        (5)k=mid

        (6)k>=0

        最終流程圖如下圖所示:

        d2.png

        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)

        溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

        軟考備考資料免費(fèi)領(lǐng)取

        去領(lǐng)取

        !
        咨詢在線老師!