数据结构与算法好学吗,数据结构与算法这本书难吗

首页 > 教育培训 > 作者:YD1662023-06-18 18:30:49

曾有人说,数据结构这个东西,如果你不去学,可能一辈子都感受不到它的好。但一旦掌握,就会被它的强大威力所折服。

它是底层开发的重要一环,保证底层系统的稳定性和高效性;......

总的来说,从功利角度,它是大厂必考,你不可避免,从长远角度,它将决定你的技术上限。

一旦拿下了数据结构与算法,就如同站在巨人的肩膀上,在开发江湖占有一席之地。所以说难也得好好学

一. 初识算法1.1 什么是算法?

定义

在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算

In mathematics and computer science, an algorithm (/ˈælɡərɪðəm/) is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation.

Introduction to Algorithm

不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间内,产生一些值作为输出。

Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output in a finite amount of time.

1.2 什么是数据结构?

定义

在计算机科学领域,数据结构是一种数据组织、管理和存储格式,通常被选择用来高效访问数据

In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data

Introduction to Algorithm

数据结构是一种存储和组织数据的方式,旨在便于访问和修改

A data structure is a way to store and organize data in order to facilitate access and modifications

接下来我们通过对一个非常著名的二分查找算法的讲解来认识一下算法

1.3 二分查找

二分查找算法也称折半查找,是一种非常高效的工作于有序数组的查找算法。不妨用它作为入门。

二分查找基础版

需求:在有序数组 AA 内,查找值 targettarget

算法描述

前提

给定一个内含 nn 个元素的有序数组 AA,满足 A_{0}\leq A_{1}\leq A_{2}\leq \cdots \leq A_{n-1}A0≤A1≤A2​≤⋯≤An−1​,一个待查值 targettarget

1

设置 i=0i=0,j=n-1j=n−1

2

如果 i \gt ji>j,结束查找,没找到

3

设置 m = floor(\frac {i j}{2})m=floor(2i j​) ,mm 为中间索引,floorfloor 是向下取整(\leq \frac {i j}{2}≤2i j​ 的最小整数)

4

如果 target < A_{m}target<Am​ 设置 j = m - 1j=m−1,跳到第2步

5

如果 A_{m} < targetAm​<target 设置 i = m 1i=m 1,跳到第2步

6

如果 A_{m} = targetAm​=target,结束查找,找到了

java 实现

数据结构与算法好学吗,数据结构与算法这本书难吗(1)



上面应该看懂了吧,入门数据结构与算法下面这个课程比较丰富,最近新扒拉来的。刚刷了20来小节,极易吸收,一起卷吧,涉及数据结构与算法的各个方面,包括数组、链表、递归、队列、栈、堆、二叉树、查找算法、排序算法、回溯、贪心、分治、动态规划等等。


除了学习刷题也是很重要的,力扣经典算法题

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.