
数据结构与算法
数据结构与算法总结
Techblog of HaoWANG
来源于生活,低于生活。
NDVC Lab——Nonlinear Dynamics and Vibration Control Laboratory, Hong Kong,China;
JH Lab ---- 季华实验室(广东省先进制造科学与技术实验室);
Major In Robotics: Modelling、Control Technology and Vision.
展开
-
深度好文-- 《算法与数据结构对程序员的重要性》
原文已不知出处,那就致谢优快云吧!https://www.youkuaiyun.com/曾经有个说法,程序=数据结构+算法。这在面向过程的编程语言流行的年代是很受推崇的。然而,随着时代的发展,各种编程语言的出现,各种编程模式的发明,面向对象、设计模式、框架、模型等各种概念早已淹没了当年那个简单的提法。那么,在这个多样化的年代,如果想立志做编程开发,还有没有必要学好数据结构和算法呢?我的回答...转载 2019-03-15 16:28:31 · 409 阅读 · 0 评论 -
数据结构与算法 知识点总结(上)--数据结构基础
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是整理的常用数据结构与算法相关内容,如有错误,欢迎指出。目录:一、线性表 1.数组实现 2.链表二、栈与队列三、树与二叉树 1.树 2.二叉树基本概念 3.二叉查找树 4.平衡二叉树 5.红黑树四、图...原创 2019-02-28 10:54:44 · 6249 阅读 · 0 评论 -
数据结构与算法 知识点总结(中)---线性表,堆栈,队列
Table of Contents数据结构概念常见数据结构. 数组数组下标运算法:数组程序设计. 线性表链表Linked List单向链表:双向链表:循环链表单向、双向、循环链表区别:链表的应用:C代码:接口声明接口实现. 堆栈2.1 操作2.2 特点2.3 抽象定义2.4 软件堆栈2.4.1 数组堆栈2.4....原创 2019-03-09 14:03:01 · 1345 阅读 · 0 评论 -
数据结构与算法 知识点总结(下)--树与图(ING)
本文延续《数据结构与算法 知识点总结》系列,上、中可查看本人另外两篇文章。链接:https://blog.youkuaiyun.com/hhaowang/article/details/88016180、https://blog.youkuaiyun.com/hhaowang/article/details/88365333【知识体系】4. 树(Trees)5. 图...原创 2019-03-24 10:46:25 · 505 阅读 · 0 评论 -
算法笔记(1)--排序算法
Table of Contents排序1 排序算法思想1.1 排序算法背后的计算机科学思想1.2 排序算法应用1.3 八大排序算法2 排序算法实现及可视化2.1 冒泡排序2.2 选择排序2.3 插入排序2.4 归并排序Merge3 分而治之思想3.1 分治思想(D&C)3.2 分治与归并排序3.3 快速排序3.4 随机快速排序...原创 2019-03-15 19:03:43 · 1977 阅读 · 0 评论 -
算法笔记(2)---栈与递归
栈与递归 函数的递归调用和普通函数调用是一样的,当程序执行到某个函数时,将这个函数进行入栈操作,在入栈之前,通常需要完成三件事。 1、将所有的实参、返回地址等信息传递给被调函数保存。 2、为被调函数的局部变量分配存储区。 3、将控制转移到北调函数入口。当一个函数完成之后会进行出栈操作,出栈之前同样要完成三件事。 1、保存被调函数的计算结果。 2、释放被调函数...原创 2019-03-16 20:26:44 · 273 阅读 · 0 评论 -
算法笔记(3)---算法时间复杂度速查表
导读:文章覆盖了计算机科学里面常见算法的时间和空间的Big-O 复杂度。这篇文章覆盖了计算机科学里面常见算法的时间和空间的Big-O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。最近这几年,我面试了几家硅谷的初创企业和一些更大一些的公司,如 Yahoo、eBay、LinkedIn 和 Google,每次我都需要准备这个,...原创 2019-03-15 20:50:28 · 1343 阅读 · 1 评论 -
数据结构与算法基础(0) 基本算法原理篇
一、概述二、查找算法三、排序算法四、其它算法五、常见算法题六、总结一、概述以前看到这样一句话,语言只是工具,算法才是程序设计的灵魂。的确,算法在计算机科学中的地位真的很重要,在很多大公司的笔试面试中,算法掌握程度的考察都占据了很大一部分。不管是为了面试还是自身编程能力的提升,花时间去研究常见的算法还是很有必要的。下面是自己对于算法这部分的学习总结。算法简介...原创 2019-02-28 13:14:52 · 648 阅读 · 0 评论 -
数据结构与算法基础01-基本概念
内容转自如下链接:[(https://blog.youkuaiyun.com/bingbeichen/article/details/70670123)]原创 2018-09-09 15:45:45 · 213 阅读 · 0 评论 -
数据结构与算法基础-02-分而治之
二分查找注:本题目源自《浙江大学-数据结构》课程,题目要求实现二分查找算法。函数接口定义Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType...原创 2018-09-03 11:06:58 · 561 阅读 · 0 评论 -
数据结构与算法基础-03-二分查找
算法中查找算法和排序算法可谓是最重要的两种算法,是其他高级算法的基础。在此系列文章中,将逐一学习和总结这两种基础算法中常见的算法实现。首先,第一种算法——二分(折半)查找的学习和练习。1、概念二分查找,是逐次将查找范围折半,缩小搜寻的范围,直到找到那个需要的结果。它是一种效率较高的查找算法,但是要使用它来完成查找任务,有一个前提,那就是所要搜寻的范围的数据结构是采用线性存储结构的线性表,且...原创 2018-11-04 20:06:06 · 268 阅读 · 0 评论 -
数据结构与算法基础04-- 线性结构及线性表
【摘要】线性表是一种常用的线性结构,诸如堆栈、队列和串也都属于线性结构。非空线性结构具有两个特点:它具有唯一的第一个数据元素和最后一个数据元素;并且除了第一个元素和最后一个元素以外,其他元素都只有一个直接前驱和一个后继。线性表主要的存储结构有两种:顺序存储结构和链式存储结构。本文总结了线性表的定义、存储方式的描述和基本运算操作以及基于C语言的算法实现。1. 线性表(Linear L...原创 2018-11-08 18:09:50 · 541 阅读 · 0 评论 -
数据结构与算法基础05--线性表 “两个有序链表序列的合并” 问题
题目要求:本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNo...原创 2018-11-07 12:22:11 · 484 阅读 · 0 评论 -
数据结构与算法基础 06 -- 图(上)
Table of Contents一、图的存储结构1.1 邻接矩阵1.2 邻接表1.3 十字链表二、图的遍历2.1 深度优先遍历2.2 广度优先遍历一、图的存储结构1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个...原创 2019-02-28 10:26:27 · 1020 阅读 · 0 评论 -
数据结构基本操作总结(C语言版)---链表、栈与队列
第一章 链表单链表无头节点01.函数声明linkedList.h02.数值检查check_list.cpp03.显示show.cpp04.插入操作insert.cpp05. 删除操作delete.cpp06. 输入数值input.cpp07. 释放内存free.cpp08. 节点计数itm_cunt.cpp09. 冒泡排序sort.cpp单链表有头结点...原创 2019-03-12 18:00:37 · 608 阅读 · 0 评论 -
数据结构基本操作总结(C++版)---链表,栈与队列
1、 线性表ListLinkedList链表:头文件名:list.h#ifndef LIST_H#define LIST_H#include "generic.h"namespace algo { template <typename Object> class List { private: // private c...原创 2019-03-12 18:01:26 · 360 阅读 · 0 评论 -
00. 浙大 《 数据结构与算法》——课程目录
DataStructure_Algorithm_ZJU中国大学慕课上陈越老师和何钦铭老师主讲的数据结构课程课程链接,本项目整理课程相关内容,并利用Python将课程相关作业进行实现,相关视频内容视频链接,具体题目信息可以直接搜索题目名字进行查询。第一讲 基本概念通过研究很多例子去理解究竟什么是“数据结构”、为什么在教数据结构的时候要讲算法、以及相关的基本概念和常用术语。希望这次课的学习...原创 2019-06-04 01:12:39 · 1867 阅读 · 0 评论 -
01. 浙大《数据结构与算法》——基本概念 之 数据结构与算法
什么是数据结构例1:如何在书架上摆放图书问题:空间如何分配?类别应该分多细?递归函数跑出来的结果,前面100000是输入,它什么都没做,直接罢工了。到底发生了什么?递归程序对空间的占用是很恐怖的。。。为什么说第二种算法比第一种要好呢?因为第一种算法慢很多这两个函数跑的实在是太快了,解决方法就是在循环中重复多跑几...原创 2019-06-04 01:16:04 · 453 阅读 · 0 评论 -
02. 浙大《数据结构与算法》——基本概念 之 算法
由于第一章比较简单,就不会写的很详细了...空间复杂度太大,可能程序直接爆掉,时间复杂度太大,可能等了很长时间都等不出结果。这个例子是我们前面看过的一个打印N个整数的,递归写出来的程序,我们说递归的程序在N=100000的时候,在机器上就非正常跳出了,到底发生了什么事情呢?我们这来仔细的看一下,假设在内存里面有这么一块空间,这个程序可以用的,我们开始调用Prin...原创 2019-06-04 01:18:28 · 366 阅读 · 0 评论 -
数据结构与算法基础00———常用算法思想
常用算法思想:1. 递推法递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。2. 递归法程序调用自身的编程技巧称为递归(recursion)。一个过程或函数在其定义或说明中有直接或间接调...原创 2019-07-11 10:09:41 · 1389 阅读 · 0 评论