沖刺必會代碼100題
沖刺必會代碼100題順序表1、已知線性表(a1,a2,…,a)按順序結(jié)構(gòu)存儲且每個元素為不相等的整數(shù)。設(shè)計把所有奇數(shù)移動到所有偶數(shù)前邊的算法(要求時間最少,輔助空間最少)。【算法思......
以下是【bjwj007】分享的內(nèi)容全文:
以下是【bjwj007】分享的內(nèi)容全文:
沖刺必會代碼100題
順序表
1、已知線性表(a1,a2,…,an)按順序結(jié)構(gòu)存儲且每個元素為不相等的整數(shù)。設(shè)計把所
有奇數(shù)移動到所有偶數(shù)前邊的算法(要求時間最少,輔助空間最少)。
【算法思想】:對于順序表L,從左向右找到偶數(shù)L.data[i],從右向左找到奇數(shù)
L.data[j],將兩者交換。循環(huán)這個過程直到i 大于j 為止。對應(yīng)的算法如下:
void move(SqList &L)
{
int i = 0, j = L.length-1, k;
ElemType temp;
while(i <= j)
{
while(L.data[i]%2 == 1)
i++; //i 指向一個偶數(shù)
while(L.data[j]%2 == 0)
j--; //j 指向一個偶數(shù)
if(i < j)
{
temp = L.data[i]; //交換L.data[i]和L.data[j]
L.data[i] = L.data[j];
L.data[j] = temp;
}
}
}
本算法的時間復(fù)雜度為O(n),空間復(fù)雜度為O(1)。
2、設(shè)計一個高效算法,將順序表L 中所有元素逆置,要求算法的空間復(fù)雜度為O(1)。
【算法思想】:掃描順序表L 的前半部分元素,對于元素L.datai,將其與后半部分對
應(yīng)元素L.data[L. length-i-1]進行交換。對應(yīng)的算法如下:
void reverse(

金聰線報提示:[ 沖刺必會代碼100題 ] 僅為會員分享交流,僅供學(xué)習(xí)、參考使用,請勿用于其他用途,如果想商業(yè)使用或者代理,請自行聯(lián)系版權(quán)方獲取授權(quán)。任何未獲取授權(quán)的商業(yè)使用與本站無關(guān),請自行承擔相應(yīng)責任。
本站不存儲任何資源文件,敬請周知!
本網(wǎng)站采用 BY-NC-SA 協(xié)議進行授權(quán) 轉(zhuǎn)載請注明原文鏈接:沖刺必會代碼100題
本站不存儲任何資源文件,敬請周知!
此資源僅供個人學(xué)習(xí)、研究使用,禁止非法轉(zhuǎn)播或商業(yè)用途,請在獲取后24小時內(nèi)刪除,如果你覺得滿意,請尋求購買正版或獲取授權(quán)!
免責申明:本站僅提供學(xué)習(xí)的平臺,所有資料均來自于網(wǎng)絡(luò)分享線索,版權(quán)歸原創(chuàng)者所有!本站不提供任何保證,并不承擔任何法律責任,如果對您的版權(quán)或者利益造成損害,請?zhí)峁┫鄳?yīng)的資質(zhì)證明,我們將于3個工作日內(nèi)予以處理。版權(quán)申訴相關(guān)說明本網(wǎng)站采用 BY-NC-SA 協(xié)議進行授權(quán) 轉(zhuǎn)載請注明原文鏈接:沖刺必會代碼100題

侵權(quán)舉報/版權(quán)申訴



