2021-常见问题收集整理
2021-常见问题收集整理-篇章1
一往情深深几许?深山夕照深秋雨。
简介:2021-常见问题收集整理-篇章1,完善自身技能树,有备无患。
一、顺序查找和二分查找法的时间复杂度分别为多少?
二分查找VS顺序查找图
1、顺序查找
顺序查找的平均时间复杂度为O(logn),n 是待查数列的长度,因为顺序查找是从头到尾查找,而且是查找了整个数组。当然最好的情况是数组的第 1 个元素就是我们要找的元素,这样可以直接找到,最坏的情况是到最后一个元素时才找到或者没有找到要找的元素。
顺序查找代码:
1 /** 2 * 顺序查找 3 */ 4 public class SequentialSearch { 5 private int[] array; 6 public SequentialSearch(int[] array) { 7 this.array = array; 8 } 9 10 /** 11 * 直接顺序查找 12 * @param key 13 * @return 14 */ 15 public int search(int key) { 16 for (int i = 0; i < array.length; i++) { 17 if (array[i] == key) { 18 // 找到了的话返回数组下标 19 return i; 20 } 21 } 22 return -1; 23 } 24 }