使用 dart 语言实现二分法
时间: 2023-11-11 13:06:01 浏览: 171
二分法是一种常用的搜索算法,它的时间复杂度为 O(log n)。在 Dart 语言中,可以使用以下代码实现一个简单的二分法:
```dart
int binarySearch(List<int> arr, int target) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = (low + high) ~/ 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
```
上述代码中,`binarySearch()` 函数接受一个整数列表和一个目标值作为参数,并返回目标值在列表中的索引。在函数中,我们先初始化 `low` 和 `high` 分别为列表的起始和结束索引,然后在一个循环中进行二分查找,直到找到目标值或者列表被完全遍历。如果找到目标值,就返回其索引,否则返回 -1。
需要注意的是,在实际应用中,我们可能需要根据具体情况调整代码,例如处理可能出现的边界情况、自定义比较函数等等。
阅读全文