算法第二章實驗報告
阿新 • • 發佈:2018-10-14
查找算法 學習二 找到 二分 實驗 輸出 描述 學習 如果
int middle = (left + right) / 2; //找到中間
t++; //增加搜索次數
if (key == a[middle])
{
cout << middle<<endl;
cout << t;
return middle; //找到要搜索的數 返回
}
if (key > a[middle])left = middle + 1; //如果要搜索的數比中間大則將左下表移動到原來中間的下一個
else { right = middle - 1; } //如果要搜索的數比中間小則將右下表移動到原來中間的上一個 }
實踐題目:二分查找
問題描述:
輸入n值(1<=n<=1000)、n個非降序排列的整數以及要查找的數x,使用二分查找算法查找x,輸出x所在的下標(0~n-1)及比較次數。若x不存在,輸出-1和比較次數。
算法描述:
while (left <= right) {int middle = (left + right) / 2; //找到中間
t++; //增加搜索次數
if (key == a[middle])
{
cout << middle<<endl;
cout << t;
return middle; //找到要搜索的數 返回
}
if (key > a[middle])left = middle + 1; //如果要搜索的數比中間大則將左下表移動到原來中間的下一個
else { right = middle - 1; } //如果要搜索的數比中間小則將右下表移動到原來中間的上一個 }
心得體會:
通過學習二分查找,使我對算法更感興趣。與同學的交流,也增加了打代碼的能力。
算法第二章實驗報告