数据结构学习笔记

本文探讨了数据结构中的集合、列表(线性列表)和数组的概念。特别强调了数组的操作,包括索引的重要性,并分享了使用二分法在排序数组中查找目标值的Java代码,以及关于二维数组的注意事项,如打印数组的方法和数组长度的获取。
摘要由CSDN通过智能技术生成
奈何最近未找到合适的记录软件,就暂时把自己的博客改造成学习笔记。由于出发点是供个人学习,可能层次不清,还望见谅。
目前的学习网站是leecode 
https://leetcode-cn.com/leetbook/read/array-and-string/ybfut/

集合,列表和数组

集合:由一个或多个确定的元素所构成的整体。
{1. 集合里的元素类型不一定相同 2. 集合里的元素没有顺序 }
列表(线性列表):是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。

列表最常见的表现形式有数组和链表,而栈和队列则是两种特殊类型的列表。

数组有一个非常重要的概念,索引

数组的操作
	数组的四种操作: 读取元素, 查找元素, 插入元素, 删除元素
	读取元素: 通过访问索引的方式来读取的,索引一般从0开始。计算机内存储数组会在一段**连续**的空间,并且会记下索引为0处的内存地址。
	1.找到该数组的索引0的内存地址
	2.将内存地址加上索引值。
	时间复杂程度是常数级别,O(1)

	查找元素
	从头到尾O(N)

	插入元素
	挪一挪,腾地方
	![元素插入数组的过程](https://img-blog.csdnimg.cn/202008051007571.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhcnBlZGllbV9zaXN5,size_16,color_FFFFFF,t_70)
	(链表可以解决这个问题)

	删除元素
	![删除元素,填补空缺](https://img-blog.csdnimg.cn/20200805100952943.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhcnBlZGllbV9zaXN5,size_16,color_FFFFFF,t_70)

看一道题目:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。

对于我自己的写法,那就是if else走天下,查到了一位小伙伴用二分法的java代码:

class Solution{
   
	public int searchInsert(int[] nums, int target){
   
		
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值