【数据结构与算法】顺序排序


活动地址:CSDN21天学习挑战赛

1.基本概念

1.为什么要有算法

  • 算法就是计算过程。它将数据输入并经过一系列计算过程产生数据然后输出。
  • 计算过程可以有很多种解法,但好的算法可以大幅度提高程序的运行效率。

2.数据结构

  • 算法经常与数据结构一起出现,因为对于不同的数据结构,如数组,集合,链表,树…等。
  • 数据结构的不同对应的算法也不相同,所以我们学习算法也需要了解数据结构的使用。

2.顺序查找

  • 输入
    在长度为N的序列中,查找Key值是否存在

  • 输出
    查找成功:输出元素位置
    查找失败 :返回-1

  • 算法说明
    顺序查找是直接按照序列的长度,从头开始一个一个的比对查找,直到找到元素或到序列末尾。

  • 算法的优弊端
    简单直接,对于被查找的序列没有排序的限制
    平均查找长度过高,效率太低
    程序实现

public static void main(String[] args) {
        int[] nums = [1,42,42,41,47,32];
        int key = 41;
        //循环遍历数据
			 for(int i =0;i<nums.length;i++){
			 //判断数组下标为i的值是否为key
			 if(nums[i] == key){
			 //找到返回数组下标
				System.out.println(i);
				return 0;
			 }
			}
			//没有找到 返回-1
			System.out.println(-1);
    }

3.时间复杂度

最好的情况:只循环了一次,就找到了元素 时间复杂度o(1)
最坏的情况:遍历完整个序列,没有找到元素,此时循环被完整执行,时间复杂度o(n)

4.空间复杂度

使用了一个临时变量i 所以空间复杂度为o(1)

#4 使用场景
在序列较小的情况下推荐使用,且顺序查找无需在意排序情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值