首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Dart中是否有用于对排序列表进行二进制搜索的标准库函数?

在Dart中,没有专门用于对排序列表进行二进制搜索的标准库函数。然而,您可以使用内置的List类提供的indexOf()方法来执行二进制搜索。以下是一个示例代码,演示如何使用二进制搜索在排序列表中查找一个元素:

代码语言:txt
复制
int binarySearch(List<int> sortedList, int target) {
  int min = 0;
  int max = sortedList.length - 1;

  while (min <= max) {
    int mid = min + ((max - min) ~/ 2); // 取中间位置

    if (sortedList[mid] == target) {
      return mid; // 找到目标元素,返回索引
    } else if (sortedList[mid] < target) {
      min = mid + 1; // 目标元素在右侧
    } else {
      max = mid - 1; // 目标元素在左侧
    }
  }

  return -1; // 没有找到目标元素
}

void main() {
  List<int> sortedList = [1, 3, 5, 7, 9, 11, 13];
  int target = 7;

  int index = binarySearch(sortedList, target);
  if (index != -1) {
    print('目标元素 $target 的索引为 $index');
  } else {
    print('未找到目标元素 $target');
  }
}

上述代码中,binarySearch()函数通过迭代方式实现了二进制搜索算法。它接受一个已排序的整数列表 sortedList 和目标元素 target,并返回目标元素在列表中的索引(如果存在)。如果未找到目标元素,则返回 -1。

请注意,这只是一个基本示例,用于说明如何实现二进制搜索。在实际应用中,您可能需要根据具体情况进行修改和优化。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分33秒

088.sync.Map的比较相关方法

7分58秒
1分10秒

DC电源模块宽电压输入和输出的问题

领券