灵气在经脉中的运行(算法及其他)

虽然在上篇讲到了程序的构成,但是要想修炼,还得有好的灵气走向,那么寻找好的算法就是寻找一个更好的流遍身体的灵气走向。

接下来,让我们深入探索算法的奇妙世界,揭开它神秘的面纱。

:(这篇就用很通俗的话来描述算法

目录

算法:计算的核心灵魂

算法的多样表现形式

人类与计算机:思维方式的本质差异

常见简单算法解析

枚举法:穷尽所有可能

二分法:高效的搜索策略

算法世界的无限可能

四种不同语言的Hello,world

python:简洁优雅

Java:稳健强大的通用语言

JavaScript:前端开发

C++:性能优选

C:奠定基础的经典语言

小结


在本专栏的上一篇也就是“灵气的运行”中讲到过算法的基本定义,也写了第一个C语言程序。

算法:计算的核心灵魂

计算机的本质在于计算,计算的步骤就是算法。简单来说,算法就是解决问题的一系列明确指令,它指导计算机如何从输入数据出发,经过一系列处理,最终得出所需的输出结果。

算法的多样表现形式

算法并非仅局限于代码编写这一种方式。在日常生活中,我们常用的自然语言、直观的流程图以及简洁的伪代码,都能有效地表达算法。

  • 自然语言:用人们日常使用的语言描述算法,优点是通俗易懂,缺点是有些表达可能会有歧义
  • 流程图:用图形符号和流程线来表达算法执行的过程,之后的文章中我也会使用到以用来解释一些较为复杂的代码
  • 伪代码:伪代码是一种介于自然语言和正式编程语言之间的表达方式,它兼具两者的优点,既能简洁地表达算法思路,又具有一定的编程结构,便于向实际代码转换

人类与计算机:思维方式的本质差异

人类和计算机在思维方式上存在着根本性的区别,以数学计算为例:

人类在进行数学运算时,通常会借助各种公式和经验,比如我们从小就烂熟于心的九九乘法表。而计算机的世界则简单纯粹得多,它只认识 0 和 1,通过电路的开与关来进行信息处理和运算。


常见简单算法解析

了解了算法的基本概念以及人类与计算机的思维差异后,我们以数学问题为切入点,介绍两种常见的简单算法。

枚举法:穷尽所有可能

考虑方程 2x = 4 的求解过程
人类求解思路计算机枚举过程

运用代数运算规则

将方程变形为:

x = 4 / 2

从而快速得出:

x = 2

采用枚举法,从可能的取值范围中逐个尝试。

先假设 x = 1,计算 2x 得到 2,不等于 4;

再尝试 x = 2,此时 2x = 4,找到了正确答案

枚举法就是这样一种简单直接的算法,它将所有可能的结果一一列举出来,直到找到符合条件的解。

:真人,这样虽然简单又粗暴,但是一旦要计算的内容庞大起来,不就太消耗计算机的算力了吗?

  • 算力:是计算机或其他计算设备进行数据处理和运算的能力,算力是有限的资源

要一个没那么麻烦的算法吗?有的兄弟,有的。

二分法:高效的搜索策略

现在换一道数学题:求解方程 2x + 1 = 5,并限定 x 的取值范围在 (0, 10) 之间

2x+1=5

首先,我们取范围的中间值,假设 x = 5,计算 2 * 5 + 1 = 11,结果大于 5,这表明 x 的实际值应该小于 5
于是,我们将搜索范围缩小到 (0, 5)。接着,再次取中间值,比如 x = 2,计算 2 * 2 + 1 = 5,恰好等于目标值,从而找到了方程的解

二分法的核心思想是,对于有序的数据集合(在这个例子中是给定范围内的数值),通过不断将搜索区间缩小一半,快速定位到目标值。

这种方法在处理大规模数据时,能够显著提高搜索效率,所以常用在方程求根、数据查找等领域。

算法世界的无限可能

随着时代的飞速发展,算法领域也在不断创新和拓展,涌现出了许多算法。在后续的学习旅程中,我们将了解这些算法。

四种不同语言的Hello,world

现代编程语言很多,但它们之间的差异相较于几十年前已经大大缩小。为了直观感受不同语言的特点,我们以经典的 “Hello, World” 程序为例进行展示。


python:简洁优雅

print("Hello, world")

Python 以其简洁明了的语法著称,仅需一行代码就能完成输出任务,非常适合初学者快速上手。

Java:稳健强大的通用语言

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world");
    }
}

Java 具有严格的语法规范和强大的面向对象特性,适用于开发大型企业级应用和安卓应用等。

  • 面向对象:把现实里的东西变成程序的一部分
  • 对象:对现实事物的抽象表示

JavaScript:前端开发

console.log("Hello, world");

JavaScript 主要用于网页前端开发,能够为网页添加丰富的交互功能,在浏览器环境中运行,为用户带来更加生动的体验。

  • 前端开发:创建 Web 页面或 app 等前端界面给用户的过程

C++:性能优选

#include <iostream>
int main() {
    cout << "Hello, world" << endl;
    return 0;
}

C++ 结合了高级语言的便利性和低级语言对硬件的直接操控能力,在系统软件、游戏开发等对性能要求极高的领域表现出色。

C:奠定基础的经典语言

#include <stdio.h>

int main() {
    printf("Hello, world\n");
    return 0;
}

C是现代很多编程语言的基础。具有高效、灵活等特点,广泛应用于嵌入式系统开发、操作系统底层实现等领域,正如我之前所说,只要计算机的架构不变,C语言就永远流行。


上述举例的这几种语言输出"Hello,world"时,有的简单,有的容易。在实际应用中,我们应根据具体的需求和领域,选择最合适的编程语言,以达到事半功倍的效果。

同时,掌握一门编程语言后,再学习其他现代语言也会变得更加轻松,因为它们在很多概念和编程思想上是相通的。

小结

如果你简单理解了这一篇,恭喜你,修仙界(计算机)的炼气的大门向你敞开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值