
算法思维——一种问题驱动的思维方式
文章平均质量分 59
《算法思维——一种问题驱动的思维方式》是来自英文版书籍“Algorithmic thinking : a problem-based introduction"的算法改编或阅读心得。使用常见算法设计策略高效解决算法设计中碰到的问题,包括:哈希表、搜索树、递归、记忆、动态编程、图搜索等。
梦-无-殇
@如果下一秒想进入未来视界,那一定是抱着科学君去火星。。。
展开
-
《算法思维——一种问题驱动的思维方式》之第6篇:数据结构之动态链表篇——采用C#编程语言实现
《算法思维——一种问题驱动的思维方式》之第6篇:数据结构之动态链表篇——采用C#编程语言实现在数据结构的学习中,动态链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围广。在创建动态链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始试着用C#编程语言来实现基本的链表操作,包括:在动态链表中插入节点在动态链表中删除节点求动态链表的长度打印输出动态链表的全部元素动态链表的节点,可以按如下方式定义: // 作者:文方俊 //原创 2020-11-28 14:48:47 · 217 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第4篇:数据结构之动态链表篇——采用Java编程语言实现
《算法思维——一种问题驱动的思维方式》之第4篇:数据结构之链表篇——Java语言实现在数据结构的学习中,链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围广。在创建链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始试着用Java编程语言来实现基本的链表操作:链表的节点,可以按如下方式定义: private class Node{ private Node(int value){ this.value = v原创 2020-11-28 14:33:14 · 114 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第3篇:数据结构之动态链表篇——采用Python编程语言实现
《算法思维——一种问题驱动的思维方式》之第3篇:数据结构之链表篇——Python语言实现在数据结构的学习中,链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围广。在创建链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始试着用Python语言来实现基本的链表操作:链表的节点,可以按如下方式定义:节点Node的形象表示:# -*- coding: cp936 -*-# linkedlist.pyclass Node: def __ini原创 2020-11-28 14:24:08 · 118 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第1篇:C\C++语言中static关键字的内涵和常见使用场景总结
《算法思维——一种问题驱动的思维方式》之第一篇:C\C++语言中static关键字的内涵和常见使用场景总结1.阅读须知本篇假定读者能熟练使用C、C++、Java或Python编程语言进行编程。毕竟,和不会编程的人解释通过算法设计来解决问题是一件非常愉快的事情是非常尴尬的。比如,课本中常见的算法设计问题有Fibonacci数字序列、Towers of Hanoi谜题等问题。当然,解决这些问题也没有多少乐趣可言。。。本篇旨在通过算法设计解决一些课本上不常见的新问题。一些基本的算法和数据结构的术语,先简原创 2020-11-27 16:41:11 · 208 阅读 · 0 评论 -
@教你一招,怎么用python编程语言做出漂亮的微信二维码?
人们认为计算机科学是天才的艺术,但是实际情况相反,只是许多人在其它人基础上做一些东西,就像一面由石子垒成的墙。 —— 高德纳原创 2023-06-28 22:44:08 · 489 阅读 · 0 评论 -
如何写出优雅的C语言快速排序代码???你不会的这里都有???
如何写出优雅的C语言快速排序代码???你不会的这里都有???最近,在查找C99标准库的过程中,找到了一个超级好用的快速排序C函数。。。学会使用后,顺便做点笔记。。。库函数原型声明如下:void qsort( void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *) );Parametersptr - pointer to the array to sortcount -原创 2021-03-10 11:16:07 · 322 阅读 · 0 评论 -
使用C语言比较两个元素的值,你真的学会了吗???
使用C语言比较两个元素的值,你真的学会了吗???最近看到如下的一段比较两个元素的值的C代码,对void*类型变量似是而非,疑惑不解???int compare_ints(const (void*) m,const (void*) n){ int a=*(const int*)m; int b=*(const int*)n; if(a>b){ return 1; }else if(a<b){ return -1; }else{ return 0; }}不过,这并不原创 2021-03-10 10:38:14 · 547 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第11篇:数据结构之动态栈篇——采用C#编程语言实现
《算法思维——一种问题驱动的思维方式》之第11篇:数据结构之动态栈篇——采用C#编程语言实现在数据结构的学习中,动态栈是最常见的一种线性数据结构,使用范围广。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈是允原创 2020-12-01 10:24:02 · 111 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第10篇:数据结构之动态栈篇——采用Python编程语言实现
《算法思维——一种问题驱动的思维方式》之第10篇:数据结构之动态栈篇——采用Python编程语言实现在数据结构的学习中,动态栈是最常见的一种线性数据结构,使用范围广。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。原创 2020-12-01 09:13:41 · 113 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第9篇:数据结构之动态栈篇——采用JavaScript编程语言实现
《算法思维——一种问题驱动的思维方式》之第9篇:数据结构之动态栈篇——采用JavaScript编程语言实现在数据结构的学习中,动态栈是最常见的一种线性数据结构,使用范围广。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出原创 2020-11-30 21:03:39 · 100 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第8篇:数据结构之动态栈篇——采用Java编程语言实现
《算法思维——一种问题驱动的思维方式》之第8篇:数据结构之动态栈篇——采用Java编程语言实现在数据结构的学习中,动态栈是最常见的一种线性数据结构,使用范围广。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈是原创 2020-11-30 15:48:16 · 176 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第7篇:数据结构之动态链表篇——使用JavaScript语言实现
《算法思维——一种问题驱动的思维方式》之第7篇:数据结构之动态链表篇——使用JavaScript语言实现在数据结构的学习中,动态链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围广。在创建动态链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始试着用JavaScript编程语言来实现基本的链表操作,包括:在动态链表中插入节点在动态链表中删除节点求动态链表的长度打印输出动态链表的全部元素动态链表的节点,可以按如下方式定义:// Node.原创 2020-11-28 17:06:24 · 93 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第5篇:数据结构之动态链表篇——采用C++编程语言实现
《算法思维——一种问题驱动的思维方式》之第5篇:数据结构之链表篇——C++语言实现在数据结构的学习中,链表是动态数据结构的最基本的形式,也是最常见的一种线性数据结构,使用范围广。在创建动态链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始用C++编程语言来实现基本的链表操作,包括:链表的插入、链表的删除、链表的求长、链表的打印输出等。。。链表的节点,可以按如下方式定义:C++类头文件:Node.h/*作者:文方俊日期:2020年11月18日 */#pr原创 2020-11-28 14:41:04 · 153 阅读 · 0 评论 -
《算法思维——一种问题驱动的思维方式》之第2篇:数据结构之动态链表篇——采用C编程语言实现
《算法思维——一种问题驱动的思维方式》之第2篇:数据结构之链表篇——C语言实现链表是最常见的一种线性数据结构,使用范围广。在创建链表时,对不同节点之间的链接关系梳理清楚,这一点十分重要。。。比如,下面开始试着用C语言来实现简单的链表操作:链表的节点,可以按如下方式定义:节点Node形象表示:struct Node{ int value; struct Node* next;};链表中插入节点,void insertNode(int value){ /*建立新节点*/原创 2020-11-27 17:19:41 · 112 阅读 · 0 评论