20172321 2018-2019-1 《程序設計與數據結構》實驗三報告
20172321 2018-2019-1 《程序設計與數據結構》實驗三報告
- 課程:《程序設計與數據結構》
- 班級: 1723
- 姓名: 吳恆佚
- 學號:20172321
- 實驗教師:王志強
- 實驗日期:2018年11月19日
- 必修/選修: 必修
1、實驗內容
實驗三-查找與排序-1
- 定義一個Searching和Sorting類,並在類中實現linearSearch(教材P162 ),SelectionSort方法(P169),最後完成測試。
- 要求很多於10個測試用例,提交測試用例設計狀況(正常,異常,邊界,正序,逆序),用例數據中要包含本身學號的後四位
- 提交運行結果圖。
實驗三-查找與排序-2
- 重構你的代碼
- 把Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1723.G2301)
- 把測試代碼放test包中
- 從新編譯,運行代碼,提交編譯,運行的截圖(IDEA,命令行兩種)
實驗三-查找與排序-3
- 參考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中補充查找算法並測試
- 提交運行結果截圖
實驗三-查找與排序-4
- 補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)
- 測試實現的算法(正常,異常,邊界)
- 提交運行結果截圖
實驗三-查找與排序-5(選作,加分)
- 編寫Android程序對各類查找與排序算法進行測試
- 提交運行結果截圖
- 推送代碼到碼雲
2、實驗過程及結果
實驗1
- 實驗3_1的要求不是很麻煩,代碼也是以前基本上都有了的,就是Junit很久沒用過了,差很少勉勉強強仍是能夠寫出來個大概。
- 測試正常,異常,邊界,正序,逆序五種狀況
結果




實驗2
- 實驗3_2是真的煩躁,要求我也不是很懂,放來放去的,不知道往哪裏放,之前好像創建過專門的test包,我找到了當年的藍墨雲和當時的參考博客,而後一步一步作出來了。
- 在命令行上測試,好像不能用JUnit那個了,只有重寫了個簡單的測試方法,而後拉到虛擬機上去測試。
結果


實驗3
- 過得過久了,我都有點忘了,我是用了直線查找
Searching
、折半查找binarySearch
、插值查找InsertionSearch
、斐波那契查找FibonacciSearch
、分塊查找blockSearch
、哈希查找hashSearch
。
結果








實驗4
- 用了
Sorting
、希爾排序shellsort
、二叉樹排序binarytreeSort
、堆排序heapSort
、桶排序bucketSort
。
結果





3、實驗過程當中遇到的問題和解決過程
- 問題1:我原本覺得Integer和Int差很少的,後來發現竟然是不同的,我不得不定義兩個數組在測試類裏,由於書上的代碼是Integer型可是我寫的是Int型。
- 解答:
- (1)Integer是int的包裝類;int是基本數據類型;
- (2)Integer變量必須實例化後才能使用;int變量不須要;
- (3)Integer實際是對象的引用,指向此new的Integer對象;int是直接存儲數據值 ;
- (4)Integer的默認值是null;int的默認值是0。

4、感想
- 確實有些忘記了,總之是學習了許多算法,複習了不少的知識,頗有幫助就是了。
5、參考資料
歡迎關注本站公眾號,獲取更多信息