資料結構 課後作業 陣列元素迴圈左移

2021-08-22 00:00:16 字數 1100 閱讀 5430

(1)演算法的基本設計思想

建立另外乙個陣列_r,將排序後的元素放在_r中,然後利用_r更新r。

時空複雜度都賊雞兒丟人。

(2)**如下

#include void main()

int _r[10];

for (count = 0; count <= 9; count++)

for (count = 0; count <= 9; count++)

}

(3)複雜度

時間複雜度o(n)

空間複雜度o(n)

(4)改進

設定_r的大小為p而不是n,僅儲存前p個元素,然後第p個之後的元素往前移,再把_r中的元素放在r之後。

時間複雜度o(n)

空間複雜度o(p)

(1)演算法的基本設計思想

設陣列元素逆置函式reverse(*r,a,b),r為想要逆置的陣列名稱,a為要逆置的第乙個元素,b為要逆置的最後乙個元素。

本質上是把r分為兩個陣列a和b,然後把ab變為ba。

演算法為先分別逆置a和b,得到a'和b',然後將逆置後的陣列a'b'整體再逆置。

效果如下:

以0123456789,p=5為例:

r=0123456789

a=01234

b=56789

a'=43210

b'=98765

a'b'=4321098765

r'=5678901234

(2)**如下

#include void reserve(int *r, int rstart, int rend);

void main()

reserve(r,0,p-1);

reserve(r, p, 9);

reserve(r, 0, 9);

for (count = 0; count <= 9; count++) }

void reserve(int *r, int rstart, int rend)//注意陣列作為引數傳入時的方式

}

(3)複雜度

時間複雜度o(n)

空間複雜度o(1)

資料結構 約瑟夫問題課後作業

1 2 課後作業 編號為1 n的n個人按順時針方向圍坐一圈,沒人持有乙個密碼 正整數,可以自由輸入 開始人 3選乙個正整數作為報數上限值m,從第乙個人安順十中方向自1開始順序報數,報到m時停止報數。報m的人出列 4,將他的密碼作為新的m值,從他順時鐘方向上的下乙個人開始從1報數,如此下去,直至所有人...

課後作業 情境三 程式結構與陣列 3 迴圈

1.使用for完成,一張紙的厚度大約是0.08mm,對折多少次之後能達到珠穆朗瑪峰的高度 8848.13公尺 2.使用while迴圈輸出以下結果 2 5 10 4 10 40 6 15 90 100 3.while迴圈和do while迴圈的區別是 a 沒有區別,這兩個結構任何情況下的效果都一樣 b...

資料結構之陣列元素的迴圈左移(c )

博主最近在學習資料結構,遇到一道很有意思的題目,拿來與諸位分享下。題目如下 請大家注意,迴圈位移的位數可能超過陣列中元素個數 輸入與輸出的資料均以空格分割,其中輸入的資料中第乙個是迴圈移位的位數,第二個是陣列中資料的個數,後面的是陣列中的資料。實現 如下 include include includ...