数据结构和算法

DSA 主页 DSA 概述 DSA 环境设置 DSA 算法基础 DSA 渐近分析

数据结构

DSA 数据结构基础 DSA 数据结构和类型 DSA 数组数据结构

链接列表

DSA 链接列表数据结构 DSA 双向链接列表数据结构 DSA 循环链表数据结构

堆栈 &队列

DSA 堆栈数据结构 DSA 表达式解析 DSA 队列数据结构

搜索算法

DSA 搜索算法 DSA 线性搜索算法 DSA 二分搜索算法 DSA 插值搜索 DSA 跳跃搜索算法 DSA 指数搜索 DSA 斐波那契搜索 DSA 子列表搜索 DSA 哈希表

排序算法

DSA 排序算法 DSA 冒泡排序算法 DSA 插入排序算法 DSA 选择排序算法 DSA 归并排序算法 DSA 希尔排序算法 DSA 堆排序 DSA 桶排序算法 DSA 计数排序算法 DSA 基数排序算法 DSA 快速排序算法

图形数据结构

DSA 图形数据结构 DSA 深度优先遍历 DSA 广度优先遍历 DSA 生成树

树数据结构

DSA 树数据结构 DSA 树遍历 DSA 二叉搜索树 DSA AVL 树 DSA 红黑树 DSA B树 DSA B+ 树 DSA 伸展树 DSA 尝试 DSA 堆数据结构

递归

DSA 递归算法 DSA 使用递归的汉诺塔 DSA 使用递归的斐波那契数列

分而治之

DSA 分而治之 DSA 最大最小问题 DSA 施特拉森矩阵乘法 DSA Karatsuba 算法

贪婪算法

DSA 贪婪算法 DSA 旅行商问题(贪婪方法) DSA Prim 最小生成树 DSA Kruskal 最小生成树 DSA Dijkstra 最短路径算法 DSA 地图着色算法 DSA 分数背包问题 DSA 作业排序截止日期 DSA 最佳合并模式算法

动态规划

DSA 动态规划 DSA 矩阵链乘法 DSA Floyd Warshall 算法 DSA 0-1 背包问题 DSA 最长公共子序列算法 DSA 旅行商问题(动态方法)

近似算法

DSA 近似算法 DSA 顶点覆盖算法 DSA 集合覆盖问题 DSA 旅行商问题(近似方法)

随机算法

DSA 随机算法 DSA 随机快速排序算法 DSA Karger 最小割算法 DSA Fisher-Yates 洗牌算法

DSA 有用资源

DSA 问答 DSA 快速指南


数据结构与算法 - 环境设置

在线编辑器与编译器

我们已为您设置了一个在线环境,您可以使用四种不同的编程语言(C、C++、Java、Python)编译和运行数据结构与算法程序。

#include <stdio.h>
int main(){
   int LA[3] = {}, i;
   for(i = 0; i < 3; i++) {
      LA[i] = i + 2;
      printf("LA[%d] = %d 
", i, LA[i]);
   }
   return 0;
}
#include <iostream>
using namespace std;
int main(){
   int LA[3] = {}, i;
   cout << "Array:" << endl;
   for(i = 0; i < 5; i++) {
      LA[i] = i + 2;
      cout << "LA[" << i <<"] = " << LA[i] << endl;
   }
   return 0;
}
public class ArrayDemo {
   public static void main(String []args) {
      int LA[] = new int[3];
      System.out.println("Array:");
      for(int i = 0; i < 3; i++) {
         LA[i] = i+3;
         System.out.println("LA[" + i + "] = " + LA[i]);
      }
   }
}
LA = [0, 0, 0]
x = 0
print("Array: ")
for x in range(len(LA)):
   LA[x] = x+1;
   print("LA", [x], " = " , LA[x])

本地环境设置

如果您仍愿意自行设置 C 语言编程语言环境,则需要在您的计算机上安装以下两个工具:(a) 文本编辑器和 (b) C 编译器。

文本编辑器

这将用于编写您的程序。一些编辑器的示例包括 Windows 记事本、OS Edit 命令、Brief、Epsilon、EMACS 以及 vim 或 vi。

文本编辑器的名称和版本在不同的操作系统上可能有所不同。例如,Windows 系统会使用记事本,而 vim 或 vi 则可在 Windows、Linux 或 UNIX 系统上使用。

您使用编辑器创建的文件称为源文件,其中包含程序源代码。 C 程序的源文件通常以".c"为扩展名。

开始编程之前,请确保您已安装好一个文本编辑器,并且具备编写计算机程序、将其保存为文件、进行编译并最终执行的经验。

C 编译器

源文件中编写的源代码是程序的可读源代码。它需要经过"编译",转换为机器语言,以便 CPU 能够按照给定的指令实际执行该程序。

此 C 编程语言编译器将用于将您的源代码编译成最终的可执行程序。我们假设您具备编程语言编译器的基本知识。

最常用且免费的编译器是 GNU C/C++ 编译器。否则,如果您有相应的操作系统 (OS),则可以从 HP 或 Solaris 安装编译器。

以下部分将指导您如何在各种操作系统上安装 GNU C/C++ 编译器。我们之所以同时提到 C/C++,是因为 GNU GCC 编译器适用于 C 和 C++ 编程语言。

在 UNIX/Linux 上安装

如果您使用的是 Linux 或 UNIX,请在命令行中输入以下命令来检查系统上是否安装了 GCC −

$ gcc -v

如果您的计算机上安装了 GNU 编译器,那么它应该会打印如下消息 −

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix = /usr .......
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)

如果未安装 GCC,则需要按照 https://gcc.gnu.org/install/

上的详细说明自行安装。

本教程基于 Linux 编写,所有示例均在 Cent OS 版本的 Linux 系统上编译。

在 Mac OS 上安装

如果您使用的是 Mac OS X,获取 GCC 的最简单方法是从 Apple 网站下载 Xcode 开发环境,然后按照简单的安装说明进行操作。设置好 Xcode 后,您就可以使用 GNU 编译器来编写 C/C++ 了。

Xcode 目前可在 developer.apple.com/technologies/tools/

获取。

Windows 系统安装

要在 Windows 系统上安装 GCC,您需要安装 MinGW。要安装 MinGW,请访问 MinGW 主页 www.mingw.org,然后点击链接进入 MinGW 下载页面。下载最新版本的 MinGW 安装程序,其名称应为 MinGW-<version>.exe。

安装 MinGW 时,至少必须安装 gcc-core、gcc-g+++、binutils 和 MinGW 运行时,但您可能希望安装更多程序。

将 MinGW 安装的 bin 子目录添加到 PATH 环境变量中,以便您可以在命令行中通过其简单名称指定这些工具。

安装完成后,您将能够从 Windows 命令行运行 gcc、g+++、ar、ranlib、dlltool 和其他几个 GNU 工具。