演算法分析實驗報告
A. 分析i+i*i,使用演算法優先分析其過程,實驗報告問題,求解答,急急急~~~
按照優先順序來說*在+之前,所以會先計算i*i,然後算出結果之後在用這個結果去加上之前的i,舉個例子
假設i的值等於2,那麼i+i*i的結果就是:
先計算i*i,也就是2*2,等於4
然後在用i去加上這個值,也就是2+4
最後等於6
B. 演算法課程設計報告
題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:
課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績
這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。
C. 排序演算法實驗報告怎麼寫
應該有試驗報告紙和試驗預習報告紙。有的話照著填。沒有的話這樣:
預習報告:
1.試驗目的。(這個大學物理試驗書上抄,哪個試驗就抄哪個)。
2。實驗儀器。照著書上抄。
3.重要物理量和公式:把書上的公式抄了:一般情況下是抄結論性的公式。再對這個公
式上的物理量進行分析,說明這些物理量都是什麼東東。這是沒有充分預習的做法,如 果你充分地看懂了要做的試驗,你就把整個試驗里涉及的物理量寫上,再分析。
4.試驗內容和步驟。抄書上。差不多抄半面多就可以了。
5.試驗數據。做完試驗後的記錄。這些數據最好用三線圖畫。注意標上表號和表名。
6.試驗現象.隨便寫點。
試驗報告:
1.試驗目的。方法同上。
2.試驗原理。把書上的歸納一下,抄!差不多半面紙。在原理的後面把試驗儀器寫
上。
3。試驗數據及其處理。書上有模板。照著做。一般情況是求平均值,標准偏差那些。
書上有。注意:小數點的位數一定要正確。
4.試驗結果:把上面處理好的數據處理的結果寫出來。
5.討論。如果那個試驗的後面有思考題就把思考提回答了。如果沒有就自己想,寫點總
結性的話。或者書上抄一兩句比較具有代表性的句子。
實驗報告大部分是抄的。建議你找你們學長學姐借他們當年的實驗報告。還有,如果試
驗數據不好,就自己捏造。尤其是看到壞值,什麼都別想,直接當沒有那個數據過,仿
著其他的數據寫一個。
建議還是借學長學姐的比較好,網路上的不一定可以得高分。學校多半會有自己的格
式要求,要遵守,要照老師的習慣寫報告。
D. 對歐幾里得演算法的實驗報告時間復雜度怎麼分析
歐幾里得定義是什麼? 歐幾里德 是人,沒有定義。是幾何學的開創者。 什麼是歐幾里得的輾轉相除演算法? 是一種求兩個正整數的最大公約數的演算法。 比如求144 和 270 的最大公約數 先用大數除以小數 270÷144 = 1……126 用小數除以余數 144÷126 = 1……18 每次用上一回的除數除以余數 126÷18 = 7 能夠整除了 那麼18就是他們的最大公約數
E. 寫一個數據結構的實驗報告。要求研究數據結構的一個典型演算法,有實驗內容,實驗步驟(代碼),分析,總結
課程設計任務書及成績評定
課題名稱
宿舍管理查詢軟體
Ⅰ、題目的目的和要求:
鞏固和加深對數據結構的理解,通過上機實驗、調試程序,加深對課本知識的理解,最終使學生能夠熟練應用數據結構的知識寫程序。
(1)通過本課程的學習,能熟練掌握幾種基本數據結構的基本操作。
(2)能針對給定題目,選擇相應的數據結構,分析並設計演算法,進而給出問題的正確求解過程並編寫代碼實現。
第四章詳細設計
#include "fstream"
#include "iostream"
#include "cstring"
using namespace std;
/************************學生信息定義**********************************/
typedef struct Stu
{ char name[8];
char num[6];
char room[5];
}Stu;
typedef struct{
Stu *elem;
int length;
}Snode;
/*****************************學生信息處理及用戶交互****************/
int Init_Stu(Snode &st); //創建學生信息
int Sort_Stu(Snode &st,intlow,int high); //快速排序演算法
int Search_Stu(Snode st, char sn[]); //學生姓名二分查找並輸出
void s(Stu &s1,Stu s2); //結構體s2賦給s1
int display(Snode st); //學生數據輸出
void SavePass(); //密碼問題
int quanxian(); //管理員登陸
/*******************************主函數程序****************************/
int main()
{ int suc=0;
charch1,choice,look[10];
Snode stu;
while(suc==0)
{ suc=quanxian();
if(suc==0)
{ cerr<<"您輸入的用戶信息不存在,請重新輸入:"<<endl<<"退出輸入'y'或 'Y',否則'n'或'N':"<<endl<<endl;
cin>>ch1;
if(ch1=='y'||ch1=='Y')
return0;
}
cout<<endl<<endl<<endl<<endl;
}
cout<<"\t\t****\n\n\t\t\t歡迎進入學生宿舍管理查詢系統 \n\n\t\t****\n\n";
cout<<"\t\t\t***************主菜單***************\n\n";
F. 演算法與數據結構實驗順序表的應用實驗報告
者visual c++都行。
看看這個也許你會明白的更多一些。
實驗一 多項式相加
一、實驗目的
熟悉鏈表的使用。
掌握如何使用C語言實現鏈表的說明、創建以及結點的插入和刪除等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
對於兩個一元多項式中所有指數相同的項,對應系數相加,若其和不為零,則構成「和多項式」的一項;對於兩個一元多項式中所有指數不相同的項,則分別復抄到「和多項式」中去。
四、實驗步驟
1. 用鏈表作一元多項式的數據結構,用C語言對鏈表作說明
2. 生成輸入一元多項式的函數
3. 輸入一元多項式A(x)和B(x)
4. 以一元多項式A(x)為和多項式,將B(x)多項式中系數加入到A(x)中去
實驗二 後綴表達式計算
一、實驗目的
熟悉棧的使用。
掌握如何使用C語言實現棧的說明、創建以及進棧和出棧等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
先將中綴表達式(就是我們通常所見的)轉換為後綴表達式,比如 a+b*c+d 要變成 abc*+d+;轉換的方法用棧來實現,涉及到運算符的優先順序;然後用另一個棧來對後綴表達式計算結果
四、實驗步驟
1.讀入字母/數字--〉字母/數字進棧
2.讀入運算符--〉退出兩個字母/數字,用運算符計算結果,並將結果進棧
3.棧能剛好退完,則最後的即為結果。否則表明表達式有誤
實驗三 Kmp演算法
一、實驗目的
熟悉字元串的使用。
掌握如何kmp演算法實驗字元串的模式匹配。
二、實驗要求
熟悉C語言編程。
三、實驗內容
求出子串(模式串)的next,利用kmp演算法實驗模式與主串的匹配演算法。
四、實驗步驟
1.生成模式串的next函數
2.從第1個字元開始,進行模式串與主串的比較,
3.如果出現失配,將模式串的第next[j]位置開始,繼續與主串進行比較。
實驗四 Huffman 編碼
一、實驗目的
熟悉Huffman編碼方法。
了解並弄懂Huffman編碼實現信息的無損壓縮原理。
二、實驗要求
熟悉C語言編程。
三、實驗內容
1.根據給定的n個權值(w1, w2, …, wn)構成n棵二叉樹的集合F=,其中每棵二叉樹Ti中只有一個帶樹為Ti的根結點
2.在F中選取兩棵根結點的權值最小的樹作為左右子樹構造一棵新的二叉樹,且置其根結點的權值為其左右子樹權值之和
3.在F中刪除這兩棵樹,同時將新得到的二叉樹加入F中
4.重復2, 3,直到F只含一棵樹為止
四、實驗步驟
1.用C語言實現二叉樹的說明
2.輸入n個權值,並生成n個二叉樹
3.對n個二叉樹逐步生成Huffman樹
4.對Huffman樹的每個葉子結點生成編碼
實驗五 關鍵路徑
一、實驗目的
熟悉關鍵路徑的實現方法。
了解AOE-網以及關鍵路徑在工程實踐中的應用。
二、實驗要求
熟悉C語言編程。
三、實驗內容
根據輸入的弧,生成AOE-網。從始點開始,找出到終點的多條路徑,求這些路徑上的關鍵活動。由關鍵活動組成的從始點到終點的路徑,即為關鍵路徑。
四、實驗步驟
1.輸入e條弧,生成AOE-網的存儲結構。
2.從始點v0出發,令ve[0]=0,按拓撲有序求ve[j]
3.從終點vn-1出發,令vl[n-1]=ve[n-1],按逆拓撲有序求vl[i]
4.根據各頂點的ve和vl值,求每條弧(活動)ai的最早開始時間e[ai]和最遲開始時間l[ai]
5.如果e[ai]=l[ai],則ai為關鍵活動
實驗六 最短路經
一、實驗目的
熟悉最短路徑的實現方法。
了解AOE-網以及最短路徑在求解實際問題中的應用。
二、實驗要求
熟悉C語言編程。
三、實驗內容
從始點v0開始,逐步求v0到其它可達的各頂點的最短路徑,直到所有頂點計算完成為止。
四、實驗步驟
1.輸入e條弧,生成AOE-網的存儲結構。
2.初始化: S ← ;
dist[j] ← Edge[0][j], j = 1, 2, …, n-1; // n為圖中頂點個數
3.求出最短路徑的長度:
dist[k] ← min , i V- S ;
S ← S U ;
4.修改從v0到V-S集合中各頂點的最短路徑:
dist[i] ← min,
對於每一個 i 屬於 V- S ;
5.判斷:若 S = V, 則演算法結束,否則轉 2。
實驗七 二叉排序樹
一、實驗目的
熟悉二叉排序樹的使用。
掌握如何使用C語言實現二叉樹的說明、創建以及二叉排序樹的生成等操作。
二、實驗要求
熟悉C語言編程。
三、實驗內容
給定一個記錄關鍵字的值,與二叉排序樹的根結點值比較,如果小於根結點的值,則向左子樹查找;如果大於根結點的值,則向右子樹查找。如果查找到葉子結點leaf,仍沒有找到記錄,則:如果關鍵字的值小於leaf的值,則插入該leaf結點的左邊,做leaf的左孩子,否則做leaf的右孩子。
四、實驗步驟
1.用C語言實現二叉樹的說明
2.直接將輸入的值作為根結點的值
3.與根結點比較,小於則放到左子樹上,大於則放到右子樹上。
實驗八 希爾排序
一、實驗目的
熟悉希爾排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
先將整個待排記錄序列分割成為若乾子序列分別進行直接插入排序,待整個序列中的記錄「基本有序」時,再對全體記錄進行一次直接插入排序。
四、實驗步驟
1.輸入待排序記錄
2.首先取一個整數 gap < n(待排序記錄數) 作為間隔, 將全部記錄分為 gap 個子序列, 所有距離為 gap 的記錄放在同一個子序列中
3.在每一個子序列中分別施行直接插入排序。
4.然後縮小間隔 gap, 例如取 gap = gap/2
5.重復上述的子序列劃分和排序工作,直到最後取gap = 1, 將所有記錄放在同一個序列中排序為止。
實驗九 快速排序
一、實驗目的
熟悉快速排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
通過一趟將待排記錄分割成獨立的兩個部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小。再對兩個部分分別進行快速排序。
四、實驗步驟
1.輸入待排序的記錄,並選擇第一個記錄作為pivotkey記錄
2.從high指向的記錄開始,向前找到第一個關鍵字的值小於Pivotkey的記錄,將其放到low指向的位置,low+1
3.從low指向的記錄開始,向後找到第一個關鍵字的值大於Pivotkey的記錄,將其放到high指向的位置,high-1
4.重復2,3,直到low=high,將樞軸記錄放在low(high)指向的位置
5.重復2,3,4,直到整個記錄有序為止
實驗十 堆排序
一、實驗目的
熟悉堆排序的使用。
掌握如何使用C語言實現若干記錄的排序。
二、實驗要求
熟悉C語言編程。
三、實驗內容
首先將一個無序序列建成一個堆;然後輸出堆頂元素;在輸出堆頂元素之後,調整剩餘的元素成為一個新堆。
四、實驗步驟
1.輸入記錄,按順序創建一個完全二叉樹
2.根據篩選演算法,從最後一個結點開始,一直到根結點,逐步篩選,建造初始堆。
3.輸出堆頂記錄,將最後一個結點放到堆頂,並做篩選,重新建造一個堆
4.直到所有記錄輸出為止
G. 高手幫做實驗報告:《演算法設計與分析基礎》三種演算法C++實現--歐幾里德輾轉相除、連續整數檢測、質因數相乘
你太強人所難了,不會問問可以,讓別人給你完成作業,有點過分,那你直接回家,等著拿畢業證多好。這些東西都不難,網上搜搜,自己調試一下,對照著實驗報告的模版自己謝謝實驗過程就ok了!
H. C語言實驗報告怎麼寫
#include <stdio.h>
int main()
{
unsigned long a;
char c;
printf("Input a binary number: ");
for(a=0;(c=getchar())!=' ';)
a=a*2+c-'0';
printf("The number is %lu in decimal ",a);
printf("The number is %lo in octal ",a);
printf("The number is %lX in Hexadecimal ",a);
return 0;
}