20172319 2018.11.19-11.25
實驗三《查找與排序》 實驗報告
課程名稱:《程序設計與數據結構》
學生班級:1723班
學生姓名:唐才銘
學生學號:20172319
實驗教師:王志強老師
課程助教:張師瑜學姐、張之睿學長
實驗時間:2018年11月19日——2018年11月25日
必修/選修:必修
目錄
實驗內容
- 實驗三-查找與排序-1: 定義一個Searching和Sorting類,並在類中實現linearSearch(教材P162 ),SelectionSort方法(P169),最後完成測試。
- 實驗三-查找與排序-2: 重構你的代碼。
- 實驗三-查找與排序-3: 在Searching中補充查找算法並測試。
- 實驗三-查找與排序-4: 補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)。
- 實驗三-查找與排序-5(選作,加分): 編寫Android程序對各類查找與排序算法進行測試。
返回目錄html
實驗要求
- 完成藍墨雲上與實驗二《樹》相關的活動,及時提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分。
- 完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導。
- 嚴禁抄襲,有該行爲者實驗成績歸零,並附加其餘懲罰措施。
返回目錄java
實驗步驟
- 實驗三-查找與排序-1:
定義一個Searching和Sorting類,並在類中實現linearSearch(教材P162 ),SelectionSort方法(P169),最後完成測試。
要求很多於10個測試用例,提交測試用例設計狀況(正常,異常,邊界,正序,逆序),用例數據中要包含本身學號的後四位
提交運行結果圖。
(2分)
- 實驗三-查找與排序-2:
重構你的代碼
把Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1723.G2301)
把測試代碼放test包中
從新編譯,運行代碼,提交編譯,運行的截圖(IDEA,命令行兩種)
(2分)
- 實驗三-查找與排序-3:
參考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中補充查找算法並測試
提交運行結果截圖
(3分)
- 實驗三-查找與排序-4:
補充實現課上講過的排序方法:希爾排序,堆排序,二叉樹排序等(至少3個)
測試實現的算法(正常,異常,邊界)
提交運行結果截圖
(3分,若是編寫多個排序算法,即便其中三個排序程序有瑕疵,也能夠酌情得滿分)
- 實驗三-查找與排序-5(選作,加分):
編寫Android程序對各類查找與排序算法進行測試
提交運行結果截圖
推送代碼到碼雲
(加分3,加到實驗中)
前期準備:
- 預先下載安裝好IDEA 。
需求分析:
- 須要瞭解各類查找及排序算法的相關知識;
- 須要理解掌握各類查找及排序算法的相關實現;
返回目錄git
代碼實現及解釋
本次實驗一共分爲五個提交點:
- 實驗三-查找與排序-1:
- 要實現的方法有:
linearSearch
;SelectionSort
;
linearSearch
具體代碼以下:
public static Comparable linearSearch(Comparable[] data,Comparable target)
{
int index = 0;
Comparable result = null;
while (result==null && index < data.length)
{
if (data[index].compareTo(target)==0){
result = data[index];
}
else {
index++;
}
}
return result;
}
public static <T extends Comparable<T>> String selectionSort(int[] data)
{
int min;
T temp;
for (int index = 0; index < data.length-1; index++)
{
min = index;
for (int scan = index+1; scan < data.length; scan++) {
if (data[scan]<data[min]) {
min = scan;
}
}
swap(data, min, index);
}
String result = "";
for (int num : data)
{
result += num + " ";
}
return result;
}
- 實驗三-查找與排序-5:
- 實現結果截圖:僅展現部分截圖
返回目錄
測試過程及遇到的問題
返回目錄
分析總結
返回目錄
代碼託管
返回目錄
參考資料
Intellj IDEA 簡易教程
返回目錄