Ⅰ 計算機演算法設計與分析怎麼樣
這本書作為這個學期的演算法課教材,這才讓我有機會看了下此書,剛看的時候,雲里來霧里去的,看完後,更是無奈。不明白為什麼這樣的書會作為教材,毫無道理。原因如下: 1.書中所講內容大部分出自演算法導論和Levitin的演算法設計與分析基礎(見P86頁講貪心演算法用做舉例的找零問題中的二角五分硬幣,當時看到二角五分硬幣就瞬間無語了.....因為只有米國才有25分的硬幣 = =),有些地方讓人感覺是刪減後照搬過來的,因此讀起來特別費勁,自覺愚鈍,跟不上作者跳躍的思維。 2.講的東西難度適中,當是表達方式實際上給讀者增加了難度。書中經常用a[],b[]這樣的名字來命名所需的數據結構,可見作者絲毫沒有用心在寫書,根本不為讀者著想,無力形式化描述使讀起此書頗有難度。 3.最關鍵的在於書中的演算法代碼。沒有採用偽代碼而採用c++實現本身沒什麼問題,但是代碼的風格實在是不敢恭維。從變數命名上多採用s,k,r之類讓人無語的名字,根本無法清晰表達變數的意思,而且要命的大部分演算法只有很少的注釋或者根本沒有,注釋固然不能太多,但那也是建立在代碼能自文檔化的基礎上的,面對這樣的代碼,只能搖頭。除此之外,書中代碼還出現風格不統一的情況,關於花括弧的使用,一會是K&R風格,一會是懸掛式風格,有時乾脆兩種風格混在同一段代碼中,及其容易誤導他人,使其養成不良的代碼風格。 綜上,要是學演算法的話,這本書並不是很理想,我覺得Levitin的那本演算法設計與分析基礎不錯,而這本只能算不是教材的教材吧.
Ⅱ 關於演算法設計與分析的問題
《演算法設計與分析》這門課我們已經學過了,但是與你所說的一樣,很難的一門課。當時我們的老師說這門課後面一部分是研究生要學的。所以難度就可想而知了。既然你想學好這門課那麼這本書里的每個例題的思想都要求牢牢掌握。你說你也學數據結構,那麼要想能編寫《演算法設計與分析》就必須把數據結構這本書學好。因為數據結構里又演算法中的鏈表和指針的相關問題!
Ⅲ 演算法設計與分析
#include<iostream.h>
void main()
{
int a,b,c,d;
for(int i=1000;i<10000;i++)
{
a=i/1000;
b=(i%1000)/100;
c=(i%100)/10;
d=i%10;
if(a==b||a==c||a==d||b==c||b==d||c==d)
continue;
if(a==0||b==0||c==0||d==0)
continue;
if(i%a==0&&i%b==0&&i%c==0&&i%d==0)
cout<<i<<" ";
}
cout<<endl;
}
Ⅳ 演算法設計與分析問題。
看內存。內存多大,時間復雜度就多達。
額
折磨短的代碼,應該不會很大。
具體要看時間復雜度的話,不同的編譯器的不一樣
Ⅳ 《演算法設計與分析》是學什麼的和《數據結構》一樣嗎謝謝!
三者都不一樣
通俗點說,演算法就是解決問題的方法,因為和計算密切相關,所以不交方法,叫演算法
數據結構是數據的組織方式。
演算法通過操作和處理數據來解決問題,所以演算法和數據結構是不分家的!
而計算方法是另一門課程。基本上是存數學的東西,看這里http://ke..com/view/754503.htm?fr=ala0_1_1
Ⅵ 計算機演算法設計與分析的目錄
第1章演算法概述
1.1演算法與程序
1.2演算法復雜性分析
習題1
第2章遞歸與分治策略
2.1遞歸的概念
2.2分治法的基本思想
2.3二分搜索技術
2.4大整數的乘法
2.5Strassen矩陣乘法
2.6棋盤覆蓋
2.7合並排序
2.8快速排序
2.9線性時間選擇
2.10最接近點對問題
2.11循環賽日程表
習題2
第3章動態規劃
3.1矩陣連乘問題
3.2動態規劃演算法的基本要素
.3.3最長公共子序列
3.4最大子段和
3.5凸多邊形最優三角剖分
3.6多邊形游戲
3.7圖像壓縮
3.8電路布線
3.9流水作業調度
3.100-1背包問題
3.11最優二叉搜索樹
3.12動態規劃加速原理
習題3
第4章貪心演算法
第5章回溯法
第6章分支限界法
第7章隨機化演算法
第8章線性規劃與網路流
第9章NP完全性理論與近似演算法
附錄AC++概要
參考文獻