活动地址:优快云21天学习挑战赛
零、写在前面
- 优快云21天学习挑战赛的第一天
- 本人蒟蒻一枚,文章若有不足之处请大家批评指出,欢迎大家留言。
一、算法是什么?
算法是指解决方案的准确而完整的描述,是一系列解决问题的清晰指令。也就是为解决一个问题而采取的方法和步骤
一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
二、顺序查找算法
顺序查找,也称线性查找,是最简单的查找方法。从头到尾遍历,逐个元素比较,若与给定值相等,则查找成功,给出该记录在表中的位置;若整个表检索完仍未找到与给定值相等的元素,则查找失败,给出失败信息。
三、算法实践
- 题目描述
给定一个整型数组,查找给定值,返回给定值的索引。
- 输入数据
int[] arr = {10, 9, 7, 19, 99, 24, 71, 2, 25, 31};
int key = 24;
- java 代码
public static int SequentialSearch(int[] arr, int key){
for(int i = 0; i < arr.length; ++i) {
if(arr[i] == key) {
return i;
}
}
return -1;
}
- 输出结果:5
四、时间复杂度和空间复杂度
1. 时间复杂度 O(n)。成功时,(n+1)/2 = O(n); 不成功,n + 1 = O(n);
2. 空间复杂度 。没有用到额外的空间。
五、顺序查找的优缺点
优点:在查找前,不需要对其进行任何处理。
缺点:查找速度慢,特别是当待查找集合中元素较多时。