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

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

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

1.實驗內容

  • 1.定義一個Searching和Sorting類,並在類中實現linearSearch,SelectionSort方法,最後完成測試。
    要求很多於10個測試用例,提交測試用例設計狀況(正常,異常,邊界,正序,逆序),用例數據中要包含本身學號的後四位
    提交運行結果圖。html

  • 2.重構你的代碼
    把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1823.G2301)
    把測試代碼放test包中
    從新編譯,運行代碼,提交編譯,運行的截圖(IDEA,命令行兩種)java

  • 3.參考http://www.cnblogs.com/maybe2030/p/4715035.html ,學習各類查找算法並在Searching中補充查找算法並測試
    提交運行結果截圖算法

  • 4.補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)
    測試實現的算法(正常,異常,邊界)
    提交運行結果截圖(若是編寫多個排序算法,即便其中三個排序程序有瑕疵,也能夠酌情得滿分)數組

  • 5.編寫Android程序對實現各類查找與排序算法進行測試
    提交運行結果截圖
    推送代碼到碼雲(選作,加分)數據結構

2. 實驗過程及結果

  • 1.先編寫searching和sorting類,在這兩個類中分別實現線性查找和選擇排序方法。分別編寫test類進行測試.

  • 2.將第一部分中的兩個類移動至要求的包中,並將測試代碼放入test包中,在test代碼中import cn.edu.besti.cs1823.S2305並進行測試。

    學習

  • 3.參考已給的博客連接,學習各類查找算法並在Searching中補充查找算法並測試
    這一實驗題稍有難度,首先要仔細閱讀這個博客來理解學習博客中的查找算法,再將這些算法消化吸取本身去編寫。由於博客中的代碼不是Java語言編寫,咱們要先學習理解這些代碼,搞懂這一部分是什麼意思,對數據有什麼操做,徹底理解以後,咱們才能進行本身的編寫。在IDEA上對第一題的Searching類進行補充擴展,這一過程會出現不少錯誤,須要一點一點糾正。
    測試

  • 4.補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等
    與上一個實驗差很少,先複習回想這些排序方法,再去實現他們,尤爲要注意的是,這些排序方法的使用格式不同,有些排序方法須要對排序的範圍進行輸入限制。雖然都是所有進行排序,可是由於代碼功能的限制,必須手動輸入上下限。
    命令行

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

  • 問題1:在編寫linearSearch方法時,將目標元素設置爲哨兵後,將關鍵字序列數組一一放入哨兵後的數組,可是在查找時卻出現的NullPointException的報錯提示。設計

  • 問題1解決方案:單步調試了幾遍時候發現,是我在將關鍵字數組a置入有哨兵的數組b時出現問題。倒置最後一位關鍵字數組放入後循環並無終止,而是繼續試圖將下一位放入數組b中。可是那個位置並無數據,因此自動拋出空指針異常。指針

  • 問題2: 在實驗中遇到了

    這個問題,反覆查看代碼,卻找不到解決的辦法。
  • 問題2解決方案:後來從新捋了一下思路,發現本身對循環的使用有些問題,致使實際處理起來pop方法時出現彈出元素後造成空棧,可是循環沒有中止,繼續-1並對數組進行操做。致使出現了-1的數字。

相關文章
相關標籤/搜索