您的位置:首页 > 新闻 > 资讯 > 时间复杂度

时间复杂度

2024/10/17 9:52:07 来源:https://blog.csdn.net/qq_39940205/article/details/141299593  浏览:    关键词:时间复杂度

大欧表示法

常数阶O(1)
HashMap 和 数据库主键查询
对数阶O(logN)
    /*** 使用二分查找算法在有序数组中查找指定元素的索引* * @param nums 一个已按升序排列的整数数组* @param target 要查找的目标整数* @return 如果目标整数存在于数组中,则返回其索引;否则返回-1*/public static int binarySearch(int[] nums, int target) {// 初始化左指针为数组的起始位置int left = 0;// 初始化右指针为数组的结束位置int right = nums.length - 1;// 当左指针小于等于右指针时,执行二分查找while (left <= right) {// 计算中间位置的索引,避免大数溢出int mid = left + (right - left) / 2;// 如果中间位置的元素等于目标元素,返回中间位置的索引if (nums[mid] == target) {return mid;} else if (nums[mid] < target) {// 如果中间位置的元素小于目标元素,将左指针更新为中间位置的右侧left = mid + 1;} else {// 如果中间位置的元素大于目标元素,将右指针更新为中间位置的左侧right = mid - 1;}}// 如果没有找到目标元素,返回-1return -1;}
线性阶O(N)
    public void circle(int n) {for (int i = 0; i < n; i++) {System.out.println(i);}}
线性对数阶O(nlogN)
    /*** 将一个复杂度为O(logN)的代码重复执行n次, 时间复杂度是O(NlogN)* @param n*/public void logarithm(int n) {int count = 1;for (int i = 0; i < n; i++) {while (count < n) {count *= 2;}}}
平方阶O(n2)
  public void square(int n) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {System.out.println(i + j);}}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com