不拘一格程式設計序 迴圈列印演算法

2021-05-26 21:07:17 字數 1070 閱讀 6636

不拘一格程式設計序之一

迴圈列印演算法

**中經常有人說某某將領打仗天馬行空,不拘一格,讓敵人防不勝防,比如《尋秦記》中的李牧;比如《大唐雙龍傳》中的寇少。

程式設計序時也要有怎樣的思想,不能被條條框框所束縛,比如這個例子:

【例1】編寫乙個函式void fun(int t),要求在螢幕上列印t個「*」號,其中t的長度不會大於50。

【設計1】:

int t)

}以上方法雖然笨拙,但是時間複雜度為o(1),快!這是犧牲空間換取時間。

當然,編寫設計一的人員一般不多,絕大多數人使用設計2。

【設計2】:

int t)

以上演算法是最正宗的演算法!優點是:程式相當簡單,思路相當清晰。缺點是時間複雜度為o(t)。

設計3】:

int t)

乍一看,真麻煩,但是時間複雜度o(1)。有人說,那前面的memcpy等**就不耗費時間了嗎?答曰:1、memecpy的時間花費遠遠printf等螢幕顯示類函式底。2、就算是空迴圈體的for迴圈再編譯後也會產生若干行代表,比memcpy要慢。

但是這裡增加了p和buf的儲存空間。

【設計4】

int t)    

與設計3類似,但與其相比,減少了多餘的空間浪費,但是去增加了malloc記憶體分配操作和memset記憶體設定操作,相對增加了時間耗費。時間複雜度o(1)。

編寫軟體不拘一格,並不是要你編什麼程式都劍走偏鋒,而是說當走普通的路不通的時候,或者非常難走時,別完了試試其它的路。就像以上演算法,各自有其優缺點,都有其自己的適用範圍,切勿只用一種包打天下,也切勿為了眩耀而使用不適用的演算法。

不拘一格程式設計序之二俄羅斯方塊新增行演算法

不拘一格遍程式之三

變數取值交換演算法

不拘一格程式設計序之四

迴圈的各種形式

當當網:

卓越網:

互動出版:

我在豆瓣的主頁為:

希望大家一如既往的支援!

不拘一格程式設計序之二

題目 乙個陣列int a 10 要求為每個元素隨機賦值0或者1,但是這10個元素不能全0,也不能全1。方法一 隨機產生10個元素,如果都是0,或者都是1,就重新生成。其中如何判斷都是0,還是都是1?方法一.方法一 用變數n1標誌全0,n1 0表示非全0,n1 1表示全0。用變數n2標誌全1,n2 0...

C 實現設計模式應該不拘一格

如同每個人都有其個性一樣,每種開發語言也有自己的個性。專案中,我們固然可以機械地將一種語言的開發經驗套用到另一種語言,但效果不一定好,因為 語言有自己的短處 用短處去實現不僅費時費力,結果也不理想 語言有自己的長處 但為了沿用以前的經驗削足適履,沒有用到語言的精要,結果是暴殄天物 相信你也發現了,用...

變數取值交換的方法 不拘一格程式設計序之三

不拘一格程式設計序之三 變數取值交換演算法 題目 已知兩變數a和b,設計乙個演算法,交換a與b的值。方法1 最傳統,最廣泛,最著名的方法,增加乙個變數,如下 方法2 不增加第三個變數,交換a和b的值,如下 分析,設a和b的原始值為a,b 執行 變數a 變數b int a,b a b a a b a ...