20182330 2019-2020-1 《數據結構與面向對象程序設計》實驗七報告

20182330 2019-2020-1 《數據結構與面向對象程序設計》實驗七報告

課程:《程序設計與數據結構》
班級: 1823
姓名: 魏冰妍
學號:20182330
實驗教師:王志強
實驗日期:2019年11月4日
必修/選修: 必修html

1.實驗內容

  1. 定義一個Searching和Sorting類,並在類中實現linearSearch,SelectionSort方法,最後完成測試。 要求很多於10個測試用例,提交測試用例設計狀況(正常,異常,邊界,正序,逆序),用例數據中要包含本身學號的後四位。提交運行結果圖。
  2. 重構你的代碼。把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1823.G2301)。把測試代碼放test包中。 從新編譯,運行代碼,提交編譯,運行的截圖(IDEA,命令行兩種)
  3. 參考http://www.cnblogs.com/maybe2030/p/4715035.html ,學習各類查找算法並在Searching中補充查找算法並測試提交運行結果截圖
  4. 補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)。測試實現的算法(正常,異常,邊界)提交運行結果截圖(若是編寫多個排序算法,即便其中三個排序程序有瑕疵,也能夠酌情得滿分)

2. 實驗過程及結果

實驗一

用Junit測試幾種狀況以下圖。


java

實驗二

將文件移入cn.edu.besti.cs1823.G2330的package中,並在虛擬機裏運行文件如圖

算法

實驗三

補充了插值查找、 斐波那契查找、樹表查找、分塊查找、哈希查找如圖
數組

實驗四

補充了希爾排序,堆排序,二叉樹排序如圖
數據結構

3. 實驗過程當中遇到的問題和解決過程

  • 問題1:斐波那契查找的理解?
  • 問題1解決方案:查找要先從斐波那契數列開始。斐波那契數列從第3項開始,每一項都等於前兩項之和。即F(n)=F(n-1)+F(n-2)。
  • 斐波那契查找:也叫黃金分割法查找。就是在二分查找的基礎上根據斐波那契數列進行分割的。在斐波那契數列找一個等於略大於查找表中元素個數的數F[n],將原查找表擴展爲長度爲Fn,完成後進行斐波那契分割,即F[n]個元素分割爲前半部分F[n-1]個元素,後半部分F[n-2]個元素,找出要查找的元素在那一部分並遞歸,直到找到。
    學習

  • 問題2:實驗四運行代碼計算result時數組下標越界(忘了截圖)
  • 問題2解決方案:數組的長度決定了它所能裝載的數據的量。數組計數是從零開始的。要申明數組的時候就要初始化並肯定長度,長度不可變,並且它只能存儲同一類型的數據,好比申明爲String類型的數組,那麼它只能存儲S聽類型數據
    而ArrayList則是一個集合,須要先申明,而後再添加數據,長度是根據內容的多少而改變的,ArrayList能夠存放不一樣類型的數據,在存儲基本類型數據的時候要使用基本數據類型的包裝類測試

其餘(感悟、思考等)

我的以爲查找和排序只是理解就有點難度,實現更難了。我須要主動學習,重點掌握幾個易於理解的常常使用的方法,知足基本須要,在這個基礎上學習更多的。.net

參考資料

相關文章
相關標籤/搜索